Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoracuccuru2012-04-17 16:34:32 +0000
committeracuccuru2012-04-17 16:34:32 +0000
commit317be1eb6d9f9693dec3ba2b5329978af71ee762 (patch)
tree56ff8e95069a0626513285dfcefa2f1822db8093
parent15889762123dea5572d9a6a28778de389f97cf48 (diff)
downloadorg.eclipse.papyrus-317be1eb6d9f9693dec3ba2b5329978af71ee762.tar.gz
org.eclipse.papyrus-317be1eb6d9f9693dec3ba2b5329978af71ee762.tar.xz
org.eclipse.papyrus-317be1eb6d9f9693dec3ba2b5329978af71ee762.zip
Version 0.9 of the alf editor, compatible with Papyrus 0.8
-rw-r--r--extraplugins/alf09/.antlr-generator-3.0.1.jarbin0 -> 1227462 bytes
-rw-r--r--extraplugins/alf09/.antlr-generator-3.2.0.jarbin0 -> 1482584 bytes
-rw-r--r--extraplugins/alf09/.classpath9
-rw-r--r--extraplugins/alf09/.project34
-rw-r--r--extraplugins/alf09/.settings/net.sf.jautodoc.prefs7
-rw-r--r--extraplugins/alf09/.settings/org.eclipse.jdt.core.prefs12
-rw-r--r--extraplugins/alf09/META-INF/MANIFEST.MF42
-rw-r--r--extraplugins/alf09/build.properties7
-rw-r--r--extraplugins/alf09/build.xml95
-rw-r--r--extraplugins/alf09/plugin.properties8
-rw-r--r--extraplugins/alf09/plugin.xml34
-rw-r--r--extraplugins/alf09/plugin.xml_gen17
-rw-r--r--extraplugins/alf09/resources/alflibrary.di70
-rw-r--r--extraplugins/alf09/resources/alflibrary.notation10016
-rw-r--r--extraplugins/alf09/resources/alflibrary.uml3188
-rw-r--r--extraplugins/alf09/resources/fUMLlibrary.di50
-rw-r--r--extraplugins/alf09/resources/fUMLlibrary.notation3430
-rw-r--r--extraplugins/alf09/resources/fUMLlibrary.uml983
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/AbstractAlfRuntimeModule.java117
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/Alf.ecore559
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/Alf.genmodel409
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/Alf.xmi2198
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/AlfStandaloneSetupGenerated.java43
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AcceptBlock.java82
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AcceptClause.java82
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AcceptStatement.java108
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AccessCompletion.java55
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AdditiveExpression.java64
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AlfFactory.java956
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AlfPackage.java9052
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AndExpression.java47
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AnnotatedStatement.java81
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/Annotation.java77
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AnnotationKind.java281
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AssignmentCompletion.java85
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AssignmentOperator.java497
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/BOOLEAN_LITERAL.java57
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/Block.java55
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/BlockStatement.java54
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/BooleanValue.java227
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/BreakStatement.java22
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ClassExtentExpression.java22
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ClassificationClause.java109
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ClassificationExpression.java109
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ClassificationFromClause.java55
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ClassificationToClause.java55
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ClassifyStatement.java81
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/CollectOrIterateOperation.java57
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/CollectOrIterateOperator.java227
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/CompoundAcceptStatementCompletion.java74
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ConcurrentClauses.java47
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ConditionalAndExpression.java47
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ConditionalOrExpression.java47
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ConditionalTestExpression.java108
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/DoStatement.java81
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/DocumentedStatement.java82
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/EmptyStatement.java22
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/EqualityExpression.java64
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ExclusiveOrExpression.java47
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/Expression.java22
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/FinalClause.java55
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ForAllOrExistsOrOneOperation.java57
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ForAllOrExistsOrOneOperator.java254
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ForControl.java47
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ForStatement.java81
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/INTEGER_LITERAL.java22
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/IfStatement.java81
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/InclusiveOrExpression.java47
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/InlineStatement.java81
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/InstanceCreationExpression.java108
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/InstanceCreationInvocationStatement.java54
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/InstanceCreationTuple.java47
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/InstanceCreationTupleElement.java82
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/InvocationOrAssignementOrDeclarationStatement.java108
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/IsUniqueOperation.java22
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/LITERAL.java22
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/LinkOperationExpression.java84
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/LinkOperationKind.java254
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/LinkOperationTuple.java47
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/LinkOperationTupleElement.java109
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/LocalNameDeclarationStatement.java135
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/LoopVariableDefinition.java163
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/MultiplicativeExpression.java64
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/NUMBER_LITERAL.java54
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/NameExpression.java216
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/NamedTemplateBinding.java82
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/NonEmptyStatementSequence.java47
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/NonFinalClause.java82
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/NonLiteralValueSpecification.java23
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/NullExpression.java22
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/OperationCallExpression.java108
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ParenthesizedExpression.java108
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/PartialSequenceConstructionCompletion.java55
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/PrimaryExpression.java55
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/PropertyCallExpression.java108
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/QualifiedNameList.java47
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/QualifiedNamePath.java47
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/QualifiedNameWithBinding.java109
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ReclassifyAllClause.java23
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/RelationalExpression.java109
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ReturnStatement.java54
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/STRING_LITERAL.java54
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SelectOrRejectOperation.java57
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SelectOrRejectOperator.java227
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SequenceConstructionExpression.java72
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SequenceConstructionOrAccessCompletion.java136
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SequenceElement.java23
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SequenceExpansionExpression.java108
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SequenceOperationExpression.java108
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SequenceReductionExpression.java108
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SequentialClauses.java47
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ShiftExpression.java74
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SimpleAcceptStatementCompletion.java23
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/Statement.java23
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/StatementSequence.java47
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SuffixExpression.java23
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SuperInvocationExpression.java81
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SuperInvocationStatement.java54
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SwitchCase.java55
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SwitchClause.java74
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SwitchDefaultClause.java55
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SwitchStatement.java99
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/TemplateBinding.java47
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/Test.java108
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ThisExpression.java54
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ThisInvocationStatement.java81
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/Tuple.java47
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/TupleElement.java55
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/UNLIMITED_LITERAL.java22
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/UnaryExpression.java82
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/UnqualifiedName.java82
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ValueSpecification.java23
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/VariableDeclarationCompletion.java109
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/WhileStatement.java81
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AcceptBlockImpl.java270
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AcceptClauseImpl.java269
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AcceptStatementImpl.java341
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AccessCompletionImpl.java198
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AdditiveExpressionImpl.java225
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AlfFactoryImpl.java1535
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AlfPackageImpl.java4614
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AndExpressionImpl.java171
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AnnotatedStatementImpl.java269
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AnnotationImpl.java227
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AssignmentCompletionImpl.java270
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/BOOLEAN_LITERALImpl.java181
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/BlockImpl.java198
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/BlockStatementImpl.java197
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/BreakStatementImpl.java46
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ClassExtentExpressionImpl.java46
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ClassificationClauseImpl.java342
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ClassificationExpressionImpl.java341
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ClassificationFromClauseImpl.java198
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ClassificationToClauseImpl.java198
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ClassifyStatementImpl.java269
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/CollectOrIterateOperationImpl.java181
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/CompoundAcceptStatementCompletionImpl.java245
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ConcurrentClausesImpl.java171
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ConditionalAndExpressionImpl.java171
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ConditionalOrExpressionImpl.java171
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ConditionalTestExpressionImpl.java339
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/DoStatementImpl.java269
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/DocumentedStatementImpl.java269
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/EmptyStatementImpl.java46
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/EqualityExpressionImpl.java225
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ExclusiveOrExpressionImpl.java171
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ExpressionImpl.java46
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/FinalClauseImpl.java198
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ForAllOrExistsOrOneOperationImpl.java181
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ForControlImpl.java171
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ForStatementImpl.java269
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/INTEGER_LITERALImpl.java46
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/IfStatementImpl.java269
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/InclusiveOrExpressionImpl.java171
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/InlineStatementImpl.java236
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/InstanceCreationExpressionImpl.java341
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/InstanceCreationInvocationStatementImpl.java197
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/InstanceCreationTupleElementImpl.java269
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/InstanceCreationTupleImpl.java171
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/InvocationOrAssignementOrDeclarationStatementImpl.java341
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/IsUniqueOperationImpl.java46
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/LITERALImpl.java46
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/LinkOperationExpressionImpl.java269
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/LinkOperationTupleElementImpl.java340
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/LinkOperationTupleImpl.java171
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/LocalNameDeclarationStatementImpl.java396
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/LoopVariableDefinitionImpl.java483
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/MultiplicativeExpressionImpl.java225
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/NUMBER_LITERALImpl.java180
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/NameExpressionImpl.java596
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/NamedTemplateBindingImpl.java269
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/NonEmptyStatementSequenceImpl.java171
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/NonFinalClauseImpl.java270
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/NonLiteralValueSpecificationImpl.java48
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/NullExpressionImpl.java46
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/OperationCallExpressionImpl.java340
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ParenthesizedExpressionImpl.java341
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/PartialSequenceConstructionCompletionImpl.java198
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/PrimaryExpressionImpl.java198
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/PropertyCallExpressionImpl.java340
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/QualifiedNameListImpl.java171
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/QualifiedNamePathImpl.java171
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/QualifiedNameWithBindingImpl.java340
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ReclassifyAllClauseImpl.java48
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/RelationalExpressionImpl.java340
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ReturnStatementImpl.java197
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/STRING_LITERALImpl.java180
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SelectOrRejectOperationImpl.java181
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SequenceConstructionExpressionImpl.java244
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SequenceConstructionOrAccessCompletionImpl.java413
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SequenceElementImpl.java48
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SequenceExpansionExpressionImpl.java340
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SequenceOperationExpressionImpl.java341
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SequenceReductionExpressionImpl.java340
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SequentialClausesImpl.java171
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ShiftExpressionImpl.java244
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SimpleAcceptStatementCompletionImpl.java48
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/StatementImpl.java48
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/StatementSequenceImpl.java171
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SuffixExpressionImpl.java48
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SuperInvocationExpressionImpl.java269
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SuperInvocationStatementImpl.java197
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SwitchCaseImpl.java198
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SwitchClauseImpl.java245
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SwitchDefaultClauseImpl.java198
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SwitchStatementImpl.java316
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/TemplateBindingImpl.java171
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/TestImpl.java323
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ThisExpressionImpl.java197
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ThisInvocationStatementImpl.java269
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/TupleElementImpl.java198
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/TupleImpl.java171
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/UNLIMITED_LITERALImpl.java46
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/UnaryExpressionImpl.java269
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/UnqualifiedNameImpl.java269
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ValueSpecificationImpl.java48
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/VariableDeclarationCompletionImpl.java325
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/WhileStatementImpl.java269
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/util/AlfAdapterFactory.java2156
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/util/AlfSwitch.java2507
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/parseTreeConstruction/AlfParsetreeConstructor.java19276
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/parser/antlr/AlfAntlrTokenFileProvider.java15
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/parser/antlr/AlfParser.java39
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g7364
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.tokens212
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlfLexer.java4659
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlfParser.java19636
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/services/AlfGrammarAccess.java5756
-rw-r--r--extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/validation/AbstractAlfJavaValidator.java20
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/Alf.xtext640
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/AlfRuntimeModule.java22
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/AlfStandaloneSetup.java27
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/Copy (2) of Alf.xtext583
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/Copy of Alf.xtext1013
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/GenerateAlf.mwe2103
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/formatting/AlfFormatter.java37
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/scoping/AlfPartialScope.java76
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/scoping/AlfScopeProvider.java27
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/scoping/AlfScopingTool.java722
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/ASTCommonFactory.java5
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/ASTExpressionFactory.java1503
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/ASTStatementFactory.java317
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/ASTUnitFactory.java6
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/common/AssignedSource.java12
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/common/DocumentedElement.java9
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/common/ElementReference.java5
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/common/ExternalElementReference.java10
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/common/InternalElementReference.java8
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/common/SyntaxElement.java5
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ArithmeticExpression.java47
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/AssignmentExpression.java193
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/BehaviorInvocationExpression.java44
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/BinaryExpression.java52
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/BitStringUnaryExpression.java47
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/BooleanLiteralExpression.java17
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/BooleanUnaryExpression.java36
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/CastExpression.java61
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ClassExtentExpression.java36
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ClassificationExpression.java65
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/CollectOrIterateExpression.java30
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ConditionalLogicalExpression.java63
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ConditionalTestExpression.java77
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/EqualityExpression.java38
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/Expression.java45
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ExtentOrExpression.java24
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/FeatureInvocationExpression.java50
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/FeatureLeftHandSide.java42
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/FeatureReference.java42
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ForAllOrExistsOrOneExpression.java36
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/IncrementOrDecrementExpression.java119
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/InstanceCreationExpression.java81
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/InvocationExpression.java132
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/IsUniqueExpression.java36
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/IsolationExpression.java28
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/LeftHandSide.java24
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/LinkOperationExpression.java72
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/LiteralExpression.java28
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/LogicalExpression.java62
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/NameBinding.java11
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/NameExpression.java76
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/NameLeftHandSide.java34
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/NamedExpression.java35
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/NamedTemplateBinding.java9
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/NamedTuple.java10
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/NaturalLiteralExpression.java21
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/NumericUnaryExpression.java36
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/OutputNamedExpression.java35
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/PositionalTemplateBinding.java8
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/PositionalTuple.java10
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/PropertyAccessExpression.java75
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/QualifiedName.java198
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/RelationalExpression.java50
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SelectOrRejectExpression.java37
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SequenceAccessExpression.java46
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SequenceConstructionExpression.java45
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SequenceElements.java11
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SequenceExpansionExpression.java69
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SequenceExpressionList.java28
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SequenceOperationExpression.java95
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SequenceRange.java26
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SequenceReductionExpression.java81
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ShiftExpression.java47
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/StringLiteralExpression.java18
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SuperInvocationExpression.java70
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/TemplateBinding.java7
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/TemplateParameterSubstitution.java11
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ThisExpression.java28
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/Tuple.java76
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/UnaryExpression.java32
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/UnboundedLiteralExpression.java13
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/AcceptBlock.java35
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/AcceptStatement.java102
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/Annotation.java13
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/Block.java36
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/BlockStatement.java61
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/BreakStatement.java34
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/ClassifyStatement.java76
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/ConcurrentClauses.java29
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/DoStatement.java45
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/EmptyStatement.java19
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/ExpressionStatement.java27
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/ForStatement.java103
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/IfStatement.java74
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/InLineStatement.java19
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/LocalNameDeclarationStatement.java70
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/LoopVariableDefinition.java100
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/NonFinalClause.java58
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/QualifiedNameList.java13
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/ReturnStatement.java41
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/Statement.java55
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/SwitchClause.java52
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/SwitchStatement.java92
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/WhileStatement.java48
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ActiveClassDefinition.java18
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ActivityDefinition.java47
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/AssociationDefinition.java41
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ClassDefinition.java42
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ClassifierDefinition.java60
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ClassifierTemplateParameter.java29
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/DataTypeDefinition.java48
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ElementImportReference.java8
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/EnumerationDefinition.java42
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/EnumerationLiteralName.java15
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/FormalParameter.java24
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ImportReference.java33
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ImportedMember.java49
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/Member.java121
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/NamespaceDefinition.java46
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/OperationDefinition.java133
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/PackageDefinition.java49
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/PackageImportReference.java14
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/PropertyDefinition.java67
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ReceptionDefinition.java56
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/SignalDefinition.java41
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/SignalReceptionDefinition.java14
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/StereotypeAnnotation.java80
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/TaggedValue.java12
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/TaggedValueList.java12
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/TypedElementDefinition.java54
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/UnitDefinition.java66
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/AlfJavaValidator.java1441
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/NamingUtils.java43
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/PredefinedBehaviorsAndTypesUtils.java158
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/AssignmentPolicy.java54
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/DefaultConstructorFacade.java74
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/DefaultDestructorFacade.java34
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/ErrorTypeFacade.java50
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/MultiplicityFacade.java105
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/MultiplicityFacadeFactory.java65
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/OperationFacade.java18
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/PropertyFacade.java18
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/SignatureFacade.java301
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/SignatureFacadeFactory.java286
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/TypeExpression.java74
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/TypeExpressionFactory.java43
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/TypeFacade.java178
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/TypeFacadeFactory.java393
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/TypeInferenceException.java41
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/TypeUtils.java1799
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/VoidFacade.java34
400 files changed, 146259 insertions, 0 deletions
diff --git a/extraplugins/alf09/.antlr-generator-3.0.1.jar b/extraplugins/alf09/.antlr-generator-3.0.1.jar
new file mode 100644
index 00000000000..4332d046be1
--- /dev/null
+++ b/extraplugins/alf09/.antlr-generator-3.0.1.jar
Binary files differ
diff --git a/extraplugins/alf09/.antlr-generator-3.2.0.jar b/extraplugins/alf09/.antlr-generator-3.2.0.jar
new file mode 100644
index 00000000000..42434924055
--- /dev/null
+++ b/extraplugins/alf09/.antlr-generator-3.2.0.jar
Binary files differ
diff --git a/extraplugins/alf09/.classpath b/extraplugins/alf09/.classpath
new file mode 100644
index 00000000000..7fc44922b3b
--- /dev/null
+++ b/extraplugins/alf09/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="xtend-gen"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="src-gen"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jre6"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/alf09/.project b/extraplugins/alf09/.project
new file mode 100644
index 00000000000..2a2eff176b3
--- /dev/null
+++ b/extraplugins/alf09/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.alf</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/alf09/.settings/net.sf.jautodoc.prefs b/extraplugins/alf09/.settings/net.sf.jautodoc.prefs
new file mode 100644
index 00000000000..b916baca374
--- /dev/null
+++ b/extraplugins/alf09/.settings/net.sf.jautodoc.prefs
@@ -0,0 +1,7 @@
+#Tue Apr 17 18:18:00 CEST 2012
+add_header=true
+eclipse.preferences.version=1
+header_text=/*****************************************************************************\r\n * Copyright (c) 2011 CEA LIST.\r\n *\r\n * \r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n * CEA LIST - Initial API and implementation\r\n *\r\n *****************************************************************************/
+project_specific_settings=true
+replace_header=true
+replacements=<?xml version\="1.0" standalone\="yes"?>\n\n<replacements>\n<replacement key\="get" scope\="1" mode\="0">Gets the</replacement>\n<replacement key\="set" scope\="1" mode\="0">Sets the</replacement>\n<replacement key\="add" scope\="1" mode\="0">Adds the</replacement>\n<replacement key\="edit" scope\="1" mode\="0">Edits the</replacement>\n<replacement key\="remove" scope\="1" mode\="0">Removes the</replacement>\n<replacement key\="init" scope\="1" mode\="0">Inits the</replacement>\n<replacement key\="parse" scope\="1" mode\="0">Parses the</replacement>\n<replacement key\="create" scope\="1" mode\="0">Creates the</replacement>\n<replacement key\="build" scope\="1" mode\="0">Builds the</replacement>\n<replacement key\="is" scope\="1" mode\="0">Checks if is</replacement>\n<replacement key\="print" scope\="1" mode\="0">Prints the</replacement>\n<replacement key\="has" scope\="1" mode\="0">Checks for</replacement>\n</replacements>\n\n
diff --git a/extraplugins/alf09/.settings/org.eclipse.jdt.core.prefs b/extraplugins/alf09/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..9b2ea0eb505
--- /dev/null
+++ b/extraplugins/alf09/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,12 @@
+#Tue Apr 26 18:49:39 CEST 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/extraplugins/alf09/META-INF/MANIFEST.MF b/extraplugins/alf09/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..b0982b67ffc
--- /dev/null
+++ b/extraplugins/alf09/META-INF/MANIFEST.MF
@@ -0,0 +1,42 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.papyrus.alf
+Bundle-Vendor: Eclipse Modeling Project
+Bundle-Version: 0.9.0.qualifier
+Bundle-SymbolicName: org.eclipse.papyrus.alf; singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.xtext,
+ org.eclipse.xtext.generator;resolution:=optional,
+ org.apache.commons.logging;resolution:=optional,
+ org.eclipse.emf.codegen.ecore;resolution:=optional,
+ org.eclipse.emf.mwe.utils;resolution:=optional,
+ org.eclipse.emf.mwe2.launch;resolution:=optional,
+ com.ibm.icu;resolution:=optional,
+ org.eclipse.xtext.xtend;resolution:=optional,
+ org.eclipse.xtext.util,
+ org.eclipse.emf.ecore,
+ org.eclipse.emf.common,
+ org.antlr.runtime,
+ org.eclipse.uml2.uml;bundle-version="3.2.0",
+ org.eclipse.xtext.gmf.glue;bundle-version="0.8.0",
+ org.eclipse.papyrus.extensionpoints.uml2;bundle-version="0.8.0",
+ org.eclipse.papyrus.core;bundle-version="0.8.0",
+ org.eclipse.papyrus.properties.runtime;bundle-version="0.8.0",
+ org.junit
+Import-Package: org.apache.log4j
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.papyrus.alf,
+ org.eclipse.papyrus.alf.alf,
+ org.eclipse.papyrus.alf.alf.impl,
+ org.eclipse.papyrus.alf.alf.util,
+ org.eclipse.papyrus.alf.parseTreeConstruction,
+ org.eclipse.papyrus.alf.parser.antlr,
+ org.eclipse.papyrus.alf.parser.antlr.internal,
+ org.eclipse.papyrus.alf.scoping,
+ org.eclipse.papyrus.alf.services,
+ org.eclipse.papyrus.alf.syntax.common,
+ org.eclipse.papyrus.alf.syntax.expressions,
+ org.eclipse.papyrus.alf.syntax.statements,
+ org.eclipse.papyrus.alf.syntax.units,
+ org.eclipse.papyrus.alf.validation,
+ org.eclipse.papyrus.alf.validation.typing
diff --git a/extraplugins/alf09/build.properties b/extraplugins/alf09/build.properties
new file mode 100644
index 00000000000..a3a0c7e7946
--- /dev/null
+++ b/extraplugins/alf09/build.properties
@@ -0,0 +1,7 @@
+source.. = src/,\
+ src-gen/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ resources/
+
diff --git a/extraplugins/alf09/build.xml b/extraplugins/alf09/build.xml
new file mode 100644
index 00000000000..a20b25948e3
--- /dev/null
+++ b/extraplugins/alf09/build.xml
@@ -0,0 +1,95 @@
+<project name="org.eclipse.papyrus.alf" basedir=".">
+
+ <!-- Define the build directories-->
+ <property name="src.dir" value="${basedir}\src"/>
+ <property name="src.gen.dir" value="${basedir}\src-gen"/>
+ <property name="build.dir" value="${basedir}\bin"/>
+ <property name="build.infos.dir" value="${basedir}\buildinfos"/>
+ <property name="build.dir.jar" value="${basedir}\plugin"/>
+
+ <!-- Define the location were javac can find required plugins -->
+ <property environment="env"/>
+ <path id="eclipse.classpath">
+ <fileset dir="${env.ECLIPSE_HOME}\plugins">
+ <include name="*.jar"/>
+ </fileset>
+ </path>
+
+ <!-- Define the location were lib used by pmd are stored -->
+ <path id="pmd.classpath">
+ <fileset dir="${env.PMD_HOME}\lib">
+ <include name="*.jar"/>
+ </fileset>
+ </path>
+
+ <!-- Define the location of the jar file containing the fuml implementation-->
+ <path id="org.eclipse.papyrus.uml.templates.utils">
+ <fileset dir="..\..\org.eclipse.papyrus.uml.templates.utils\workspace\plugin">
+ <include name="org.eclipse.papyrus.uml.templates.utils.jar"/>
+ </fileset>
+ </path>
+
+ <!-- Define entry point when you find an element named findbugs -->
+ <taskdef name="findbugs" classpath="${env.FINDBUGS_HOME}\lib\findbugs-ant.jar" classname="edu.umd.cs.findbugs.anttask.FindBugsTask"/>
+
+ <!-- Define entry point when you find an element named PMD -->
+ <taskdef name="pmd" classpathref="pmd.classpath" classname="net.sourceforge.pmd.ant.PMDTask"/>
+
+ <!-- Set up directories for the build and info that have to be retrieved in hudson-->
+ <target name="init">
+ <tstamp/>
+ <delete dir="${build.dir}"/>
+ <mkdir dir="${build.dir}"/>
+ <delete dir="${build.infos.dir}"/>
+ <mkdir dir="${build.infos.dir}"/>
+ <mkdir dir="${build.infos.dir}\bugsreport"/>
+ <mkdir dir="${build.infos.dir}\checkstyle"/>
+ <delete dir="${build.dir.jar}"/>
+ <mkdir dir="${build.dir.jar}"/>
+ </target>
+
+ <!-- Perfom a checkstyle on the code with pmd tool. Compiling is not required -->
+ <target name="pmd" depends="init">
+ <pmd shortfilenames="true">
+ <ruleset>${env.PMD_HOME}\lib\rulesets\java\basic.xml</ruleset>
+ <ruleset>${env.PMD_HOME}\lib\rulesets\java\unusedcode.xml</ruleset>
+ <ruleset>${env.PMD_HOME}\lib\rulesets\java\unnecessary.xml</ruleset>
+ <ruleset>${env.PMD_HOME}\lib\rulesets\java\codesize.xml</ruleset>
+ <ruleset>${env.PMD_HOME}\lib\rulesets\java\strictexception.xml</ruleset>
+ <ruleset>${env.PMD_HOME}\lib\rulesets\java\braces.xml</ruleset>
+ <formatter type="xml" toFile="${build.infos.dir}\checkstyle\${ant.project.name}.pmd.xml"/>
+ <fileset dir="${src.dir}">
+ <include name="**/*.java"/>
+ </fileset>
+ <auxclasspath path="${src.gen.dir}"/>
+ </pmd>
+ </target>
+
+ <!-- Compilation phase of the project -->
+ <target name="compile" depends="pmd">
+ <javac includeantruntime="false" srcdir="${src.gen.dir}" destdir="${build.dir}">
+ <compilerarg value="-Xlint:all"/>
+ <classpath refid="eclipse.classpath"/>
+ </javac>
+ <javac includeantruntime="false" srcdir="${src.dir}" destdir="${build.dir}">
+ <compilerarg value="-Xlint:all"/>
+ <classpath refid="eclipse.classpath"/>
+ <classpath refid="org.eclipse.papyrus.uml.templates.utils"/>
+ </javac>
+ </target>
+
+ <!-- Generate the Jar which is the plugin -->
+ <target name="generatejar" depends="compile">
+ <jar destfile="${build.dir.jar}\${ant.project.name}.jar" basedir="${build.dir}"/>
+ </target>
+
+ <!-- Try to detect bugs within code after compiling -->
+ <target name="findbugs" depends="generatejar">
+ <findbugs home="${env.FINDBUGS_HOME}" output="xml" outputfile="${build.infos.dir}\bugsreport\${ant.project.name}.sa.xml">
+ <class location="${build.dir}"/>
+ <auxclasspath refid="eclipse.classpath"/>
+ <auxclasspath path="${src.gen.dir}"/>
+ <sourcePath path="${src.dir}"/>
+ </findbugs>
+ </target>
+</project> \ No newline at end of file
diff --git a/extraplugins/alf09/plugin.properties b/extraplugins/alf09/plugin.properties
new file mode 100644
index 00000000000..d6cd6b7df50
--- /dev/null
+++ b/extraplugins/alf09/plugin.properties
@@ -0,0 +1,8 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+pluginName = Alf Model
+providerName = www.example.org
diff --git a/extraplugins/alf09/plugin.xml b/extraplugins/alf09/plugin.xml
new file mode 100644
index 00000000000..139742bdd02
--- /dev/null
+++ b/extraplugins/alf09/plugin.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri = "http://www.eclipse.org/papyrus/alf/Alf"
+ class = "org.eclipse.papyrus.alf.alf.AlfPackage"
+ genModel = "org/eclipse/papyrus/alf/Alf.genmodel" />
+
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.extensionpoints.uml2.UMLLibrary">
+ <library
+ description="Alf Library (v0.8)"
+ name="AlfLibrary"
+ path="pathmap://Papyrus_Alf_LIBRARIES/alflibrary.uml"
+ provider="CEA LIST">
+ </library>
+ </extension>
+ <extension
+ point="org.eclipse.emf.ecore.uri_mapping">
+ <mapping
+ source="pathmap://Papyrus_Alf_LIBRARIES/"
+ target="platform:/plugin/org.eclipse.papyrus.alf/resources/">
+ </mapping>
+ </extension>
+
+
+
+
+
+</plugin>
diff --git a/extraplugins/alf09/plugin.xml_gen b/extraplugins/alf09/plugin.xml_gen
new file mode 100644
index 00000000000..262a7696784
--- /dev/null
+++ b/extraplugins/alf09/plugin.xml_gen
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri = "http://www.eclipse.org/papyrus/alf/Alf"
+ class = "org.eclipse.papyrus.alf.alf.AlfPackage"
+ genModel = "org/eclipse/papyrus/alf/Alf.genmodel" />
+
+ </extension>
+
+
+
+
+</plugin>
diff --git a/extraplugins/alf09/resources/alflibrary.di b/extraplugins/alf09/resources/alflibrary.di
new file mode 100644
index 00000000000..8de9392853b
--- /dev/null
+++ b/extraplugins/alf09/resources/alflibrary.di
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="ASCII"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi">
+ <pageList>
+ <availablePage>
+ <emfPageIdentifier href="alflibrary.notation#_0bBI4Xy5EeCKy5kSqd4eVw"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="alflibrary.notation#_TWEqYH0_EeCKy5kSqd4eVw"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="alflibrary.notation#_0xqa8H1AEeCKy5kSqd4eVw"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="alflibrary.notation#_dZrLYH1BEeCKy5kSqd4eVw"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="alflibrary.notation#_ykp7YH1BEeCKy5kSqd4eVw"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="alflibrary.notation#_al6_cH1DEeCKy5kSqd4eVw"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="alflibrary.notation#_jmVckH-fEeCO_pg6CtXdNg"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="alflibrary.notation#_BJlfEH-gEeCO_pg6CtXdNg"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="alflibrary.notation#_d8RnUH-gEeCO_pg6CtXdNg"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="alflibrary.notation#_zls78H-iEeCO_pg6CtXdNg"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="alflibrary.notation#_Qe_mAH-kEeCO_pg6CtXdNg"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="alflibrary.notation#_M7lF4KiyEeCw3MW-Flzemw"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="alflibrary.notation#_VP4UsPD7EeCxrPjksdBlsg"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="alflibrary.notation#_QLJBYPMdEeCxrPjksdBlsg"/>
+ </availablePage>
+ <availablePage/>
+ <availablePage/>
+ <availablePage>
+ <emfPageIdentifier href="alflibrary.notation#_6Xi_IPNREeCfS7qBvajEQQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="alflibrary.notation#_n6KCEPPmEeCjkLKmJeBqEw"/>
+ </availablePage>
+ </pageList>
+ <sashModel currentSelection="//@sashModel/@windows.0/@children.0">
+ <windows>
+ <children xsi:type="di:TabFolder">
+ <children>
+ <emfPageIdentifier href="alflibrary.notation#_M7lF4KiyEeCw3MW-Flzemw"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="alflibrary.notation#_ykp7YH1BEeCKy5kSqd4eVw"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="alflibrary.notation#_jmVckH-fEeCO_pg6CtXdNg"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/extraplugins/alf09/resources/alflibrary.notation b/extraplugins/alf09/resources/alflibrary.notation
new file mode 100644
index 00000000000..5f27dc7a7e7
--- /dev/null
+++ b/extraplugins/alf09/resources/alflibrary.notation
@@ -0,0 +1,10016 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/3.0.0/UML">
+ <notation:Diagram xmi:id="_0bBI4Xy5EeCKy5kSqd4eVw" type="PapyrusUMLClassDiagram" name="NewDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_60EJoH09EeCKy5kSqd4eVw" type="2007" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_60EJon09EeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_60EJo309EeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_60EJpH09EeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_60EJpX09EeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_60EJpn09EeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_60EJp309EeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_60EJqH09EeCKy5kSqd4eVw" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_60EJqX09EeCKy5kSqd4eVw" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_60EJqn09EeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_60EJq309EeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:Package" href="alflibrary.uml#_6xFuIH09EeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_60EJoX09EeCKy5kSqd4eVw" x="225" y="165" width="561" height="261"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_0bBI4ny5EeCKy5kSqd4eVw"/>
+ <element xmi:type="uml:Model" href="alflibrary.uml#_0bBI4Hy5EeCKy5kSqd4eVw"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_TWEqYH0_EeCKy5kSqd4eVw" type="PapyrusUMLClassDiagram" name="Alf Standard Model Library Subpackages" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_bvaT4H0_EeCKy5kSqd4eVw" type="2005" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bvaT4n0_EeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bvaT430_EeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bvaT5H0_EeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bvaT5X0_EeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bvaT5n0_EeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bvaT530_EeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bvaT6H0_EeCKy5kSqd4eVw" type="5020"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bvaT6X0_EeCKy5kSqd4eVw" type="7009">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_bvaT6n0_EeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bvaT630_EeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bvaT4X0_EeCKy5kSqd4eVw" x="130" y="95"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_i6XesH0_EeCKy5kSqd4eVw" type="2007" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i6hPsH0_EeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i6hPsX0_EeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i6hPsn0_EeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i6hPs30_EeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i6hPtH0_EeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i6hPtX0_EeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_i6hPtn0_EeCKy5kSqd4eVw" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_i6hPt30_EeCKy5kSqd4eVw" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_i6hPuH0_EeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i6hPuX0_EeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:Package" href="alflibrary.uml#_i6NtsH0_EeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i6XesX0_EeCKy5kSqd4eVw" x="130" y="230" width="201" height="96"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nVowIH0_EeCKy5kSqd4eVw" type="2007" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nVyhIH0_EeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nVyhIX0_EeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nVyhIn0_EeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nVyhI30_EeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nVyhJH0_EeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nVyhJX0_EeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_nVyhJn0_EeCKy5kSqd4eVw" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_nVyhJ30_EeCKy5kSqd4eVw" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nVyhKH0_EeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nVyhKX0_EeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:Package" href="alflibrary.uml#_nVfmMH0_EeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nVowIX0_EeCKy5kSqd4eVw" x="130" y="365" width="201" height="96"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_HLFewH1AEeCKy5kSqd4eVw" type="2007" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HLFewn1AEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HLFew31AEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HLFexH1AEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HLFexX1AEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IcmJ8H1AEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IcmJ8X1AEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="0"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_HLFeyH1AEeCKy5kSqd4eVw" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_HLFeyX1AEeCKy5kSqd4eVw" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_HLFeyn1AEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HLFey31AEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:Package" href="fUMLlibrary.uml#_mBev8HyXEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HLFewX1AEeCKy5kSqd4eVw" x="530" y="95"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_OQFLgH1AEeCKy5kSqd4eVw" type="2007" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OQFLgn1AEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OQFLg31AEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OQFLhH1AEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OQFLhX1AEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OQFLhn1AEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OQYtgH1AEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_OQYtgX1AEeCKy5kSqd4eVw" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_OQYtgn1AEeCKy5kSqd4eVw" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_OQYtg31AEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OQYthH1AEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:Package" href="alflibrary.uml#_OP8BkH1AEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OQFLgX1AEeCKy5kSqd4eVw" x="530" y="230" width="201" height="96"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dfYAMH1AEeCKy5kSqd4eVw" type="2007" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dfhKIH1AEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dfhKIX1AEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dfhKIn1AEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dfhKI31AEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dfhKJH1AEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dfhKJX1AEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dfhKJn1AEeCKy5kSqd4eVw" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dfhKJ31AEeCKy5kSqd4eVw" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dfhKKH1AEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dfhKKX1AEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:Package" href="alflibrary.uml#_dfOPMH1AEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dfYAMX1AEeCKy5kSqd4eVw" x="510" y="515" width="216" height="91"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_TWEqYX0_EeCKy5kSqd4eVw"/>
+ <element xmi:type="uml:Package" href="alflibrary.uml#_6xFuIH09EeCKy5kSqd4eVw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_tRK6cH0_EeCKy5kSqd4eVw" type="4010" source="_i6XesH0_EeCKy5kSqd4eVw" target="_bvaT4H0_EeCKy5kSqd4eVw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_tRK6c30_EeCKy5kSqd4eVw" type="6022">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tRK6dH0_EeCKy5kSqd4eVw" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_tRK6cX0_EeCKy5kSqd4eVw" fontHeight="8"/>
+ <element xmi:type="uml:PackageImport" href="alflibrary.uml#_tRBwgH0_EeCKy5kSqd4eVw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_tRK6cn0_EeCKy5kSqd4eVw" points="[0, -5, 0, 47]$[-7, -40, -7, 12]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tRnmYH0_EeCKy5kSqd4eVw" id="(0.39800995024875624,0.052083333333333336)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tRnmYX0_EeCKy5kSqd4eVw" id="(0.4,0.88)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_wdK8YH0_EeCKy5kSqd4eVw" type="4010" source="_nVowIH0_EeCKy5kSqd4eVw" target="_i6XesH0_EeCKy5kSqd4eVw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_wdK8Y30_EeCKy5kSqd4eVw" type="6022">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wdK8ZH0_EeCKy5kSqd4eVw" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_wdK8YX0_EeCKy5kSqd4eVw" fontHeight="8"/>
+ <element xmi:type="uml:PackageImport" href="alflibrary.uml#_wdBLYH0_EeCKy5kSqd4eVw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wdK8Yn0_EeCKy5kSqd4eVw" points="[1, -8, 0, 48]$[-4, -47, -5, 9]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wdd3UH0_EeCKy5kSqd4eVw" id="(0.39800995024875624,0.08333333333333333)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wdd3UX0_EeCKy5kSqd4eVw" id="(0.40298507462686567,0.90625)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WcKcIH1AEeCKy5kSqd4eVw" type="4010" source="_OQFLgH1AEeCKy5kSqd4eVw" target="_HLFewH1AEeCKy5kSqd4eVw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_WcKcI31AEeCKy5kSqd4eVw" type="6022">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WcKcJH1AEeCKy5kSqd4eVw" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_WcKcIX1AEeCKy5kSqd4eVw" fontHeight="8"/>
+ <element xmi:type="uml:PackageImport" href="alflibrary.uml#_Wb3hMH1AEeCKy5kSqd4eVw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WcKcIn1AEeCKy5kSqd4eVw" points="[-3, -7, 0, 50]$[-12, -42, -9, 15]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WcnIEH1AEeCKy5kSqd4eVw" id="(0.4079601990049751,0.07291666666666667)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WcnIEX1AEeCKy5kSqd4eVw" id="(0.395,0.85)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_0xqa8H1AEeCKy5kSqd4eVw" type="PapyrusUMLClassDiagram" name="Alf Primitive Types" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_3mbBkH1AEeCKy5kSqd4eVw" type="2009" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3mbBkn1AEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3mbBk31AEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3mbBlH1AEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3mbBlX1AEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ILad4H1BEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ILad4X1BEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="0"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3mbBmH1AEeCKy5kSqd4eVw" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3mbBkX1AEeCKy5kSqd4eVw" x="135" y="130" width="111"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_4AzQcH1AEeCKy5kSqd4eVw" type="2009" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4AzQcn1AEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4AzQc31AEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4AzQdH1AEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4AzQdX1AEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I6zTcH1BEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I6zTcX1BEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="0"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4AzQeH1AEeCKy5kSqd4eVw" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4AzQcX1AEeCKy5kSqd4eVw" x="265" y="130" width="111"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6MuVcH1AEeCKy5kSqd4eVw" type="2009" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6MuVcn1AEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6MuVc31AEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6MuVdH1AEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6MuVdX1AEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6MuVdn1AEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6MuVd31AEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6MuVeH1AEeCKy5kSqd4eVw" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="alflibrary.uml#_6LrzoH1AEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6MuVcX1AEeCKy5kSqd4eVw" x="205" y="220"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9IMBAH1AEeCKy5kSqd4eVw" type="2009" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9IMBAn1AEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9IMBA31AEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9IMBBH1AEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9IMBBX1AEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9IMBBn1AEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9IMBB31AEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9IMBCH1AEeCKy5kSqd4eVw" type="5032"/>
+ <element xmi:type="uml:PrimitiveType" href="alflibrary.uml#_9G_uMH1AEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9IMBAX1AEeCKy5kSqd4eVw" x="410" y="220"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_0xqa8X1AEeCKy5kSqd4eVw"/>
+ <element xmi:type="uml:Package" href="alflibrary.uml#_i6NtsH0_EeCKy5kSqd4eVw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_A3p8YH1BEeCKy5kSqd4eVw" type="4002" source="_6MuVcH1AEeCKy5kSqd4eVw" target="_3mbBkH1AEeCKy5kSqd4eVw" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_A3p8Y31BEeCKy5kSqd4eVw" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A3p8ZH1BEeCKy5kSqd4eVw" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_A3p8YX1BEeCKy5kSqd4eVw" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="alflibrary.uml#_A3WaYH1BEeCKy5kSqd4eVw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_A3p8Yn1BEeCKy5kSqd4eVw" points="[-4, -6, 30, 48]$[-34, -46, 0, 8]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_A4GoUH1BEeCKy5kSqd4eVw" id="(0.27,0.12)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_A4GoUX1BEeCKy5kSqd4eVw" id="(0.52,0.84)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ClewIH1BEeCKy5kSqd4eVw" type="4002" source="_6MuVcH1AEeCKy5kSqd4eVw" target="_4AzQcH1AEeCKy5kSqd4eVw" routing="Rectilinear" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ClewI31BEeCKy5kSqd4eVw" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ClewJH1BEeCKy5kSqd4eVw" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ClewIX1BEeCKy5kSqd4eVw" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="alflibrary.uml#_ClLOIH1BEeCKy5kSqd4eVw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ClewIn1BEeCKy5kSqd4eVw" points="[3, -6, -27, 45]$[27, -46, -3, 5]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CmEmAH1BEeCKy5kSqd4eVw" id="(0.68,0.12)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CmEmAX1BEeCKy5kSqd4eVw" id="(0.38,0.9)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_dZrLYH1BEeCKy5kSqd4eVw" type="PapyrusUMLClassDiagram" name="Primitive Behavior Packages" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_fRx8gH1BEeCKy5kSqd4eVw" type="2007" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fRx8gn1BEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fRx8g31BEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fRx8hH1BEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fRx8hX1BEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fRx8hn1BEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fRx8h31BEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fRx8iH1BEeCKy5kSqd4eVw" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fRx8iX1BEeCKy5kSqd4eVw" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_fRx8in1BEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fRx8i31BEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:Package" href="alflibrary.uml#_fRoykH1BEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fRx8gX1BEeCKy5kSqd4eVw" x="35" y="170"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_g2OKwH1BEeCKy5kSqd4eVw" type="2007" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_g2OKwn1BEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_g2OKw31BEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_g2OKxH1BEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_g2OKxX1BEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_g2OKxn1BEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_g2OKx31BEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_g2OKyH1BEeCKy5kSqd4eVw" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_g2OKyX1BEeCKy5kSqd4eVw" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_g2OKyn1BEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g2OKy31BEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:Package" href="alflibrary.uml#_g16owH1BEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g2OKwX1BEeCKy5kSqd4eVw" x="245" y="170"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jJ42gH1BEeCKy5kSqd4eVw" type="2007" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jJ42gn1BEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jJ42g31BEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jJ42hH1BEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jJ42hX1BEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jJ42hn1BEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jJ42h31BEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jJ42iH1BEeCKy5kSqd4eVw" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jJ42iX1BEeCKy5kSqd4eVw" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jJ42in1BEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jJ42i31BEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:Package" href="alflibrary.uml#_jJvskH1BEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jJ42gX1BEeCKy5kSqd4eVw" x="455" y="170"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kmk28H1BEeCKy5kSqd4eVw" type="2007" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmk28n1BEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmk2831BEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmk29H1BEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmk29X1BEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kmk29n1BEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmk2931BEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kmk2-H1BEeCKy5kSqd4eVw" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kmk2-X1BEeCKy5kSqd4eVw" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kmk2-n1BEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmk2-31BEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:Package" href="alflibrary.uml#_kmbF8H1BEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kmk28X1BEeCKy5kSqd4eVw" x="665" y="170"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_newlAH1BEeCKy5kSqd4eVw" type="2007" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_newlAn1BEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_newlA31BEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_newlBH1BEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_newlBX1BEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_newlBn1BEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_newlB31BEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_newlCH1BEeCKy5kSqd4eVw" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_newlCX1BEeCKy5kSqd4eVw" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_newlCn1BEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_newlC31BEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:Package" href="alflibrary.uml#_nem0AH1BEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_newlAX1BEeCKy5kSqd4eVw" x="220" y="330"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_psUowH1BEeCKy5kSqd4eVw" type="2007" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_psUown1BEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_psUow31BEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_psUoxH1BEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_psUoxX1BEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_psUoxn1BEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_psUox31BEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_psUoyH1BEeCKy5kSqd4eVw" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_psUoyX1BEeCKy5kSqd4eVw" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_psUoyn1BEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_psUoy31BEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:Package" href="alflibrary.uml#_psK3wH1BEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_psUowX1BEeCKy5kSqd4eVw" x="485" y="330"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_dZrLYX1BEeCKy5kSqd4eVw"/>
+ <element xmi:type="uml:Package" href="alflibrary.uml#_nVfmMH0_EeCKy5kSqd4eVw"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_ykp7YH1BEeCKy5kSqd4eVw" type="PapyrusUMLClassDiagram" name="Boolean functions" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_9GzEcH1BEeCKy5kSqd4eVw" type="2007" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9GzEcn1BEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9GzEc31BEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9GzEdH1BEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9GzEdX1BEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9GzEdn1BEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9GzEd31BEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9GzEeH1BEeCKy5kSqd4eVw" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9GzEeX1BEeCKy5kSqd4eVw" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9GzEen1BEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9GzEe31BEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:Package" href="alflibrary.uml#_fRoykH1BEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9GzEcX1BEeCKy5kSqd4eVw" x="130" y="270" width="631"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AP900H1CEeCKy5kSqd4eVw" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AP900n1CEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AP90031CEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AP901H1CEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AP901X1CEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qd_ioH1CEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qd_ioX1CEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="0"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AP902H1CEeCKy5kSqd4eVw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AP902X1CEeCKy5kSqd4eVw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AP902n1CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AP90231CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AP903H1CEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AP903X1CEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AP903n1CEeCKy5kSqd4eVw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AP90331CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AP904H1CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AP904X1CEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AP904n1CEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AP90431CEeCKy5kSqd4eVw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AP905H1CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AP905X1CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AP905n1CEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AP90531CEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_iJlb4HyYEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AP900X1CEeCKy5kSqd4eVw" x="130" y="40" width="341" height="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Dtsf8H1CEeCKy5kSqd4eVw" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Dtsf8n1CEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Dtsf831CEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Dtsf9H1CEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Dtsf9X1CEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qd_ion1CEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qd_io31CEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="0"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Dtsf-H1CEeCKy5kSqd4eVw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Dtsf-X1CEeCKy5kSqd4eVw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Dtsf-n1CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Dtsf-31CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Dtsf_H1CEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Dtsf_X1CEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Dtsf_n1CEeCKy5kSqd4eVw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Dtsf_31CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_DtsgAH1CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_DtsgAX1CEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DtsgAn1CEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_DtsgA31CEeCKy5kSqd4eVw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_DtsgBH1CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_DtsgBX1CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_DtsgBn1CEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DtsgB31CEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#__Mg_kHyYEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Dtsf8X1CEeCKy5kSqd4eVw" x="220" y="95" width="341" height="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_EVxzoH1CEeCKy5kSqd4eVw" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVxzon1CEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EVxzo31CEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVxzpH1CEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EVxzpX1CEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qd_ipH1CEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qd_ipX1CEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="0"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_EVxzqH1CEeCKy5kSqd4eVw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_EVxzqX1CEeCKy5kSqd4eVw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_EVxzqn1CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_EVxzq31CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_EVxzrH1CEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EVxzrX1CEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_EVxzrn1CEeCKy5kSqd4eVw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_EVxzr31CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_EVxzsH1CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_EVxzsX1CEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EVxzsn1CEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_EVxzs31CEeCKy5kSqd4eVw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_EVxztH1CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_EVxztX1CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_EVxztn1CEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EVxzt31CEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_LsHT0HyZEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EVxzoX1CEeCKy5kSqd4eVw" x="315" y="150" width="341" height="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FcQ6kH1CEeCKy5kSqd4eVw" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FcQ6kn1CEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FcQ6k31CEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FcQ6lH1CEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FcQ6lX1CEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qd_ipn1CEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qd_ip31CEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="0"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FcQ6mH1CEeCKy5kSqd4eVw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FcQ6mX1CEeCKy5kSqd4eVw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_FcQ6mn1CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FcQ6m31CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FcQ6nH1CEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FcQ6nX1CEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FcQ6nn1CEeCKy5kSqd4eVw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_FcQ6n31CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FcQ6oH1CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FcQ6oX1CEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FcQ6on1CEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FcQ6o31CEeCKy5kSqd4eVw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_FcQ6pH1CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FcQ6pX1CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FcQ6pn1CEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FcQ6p31CEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_VBDp8HyZEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FcQ6kX1CEeCKy5kSqd4eVw" x="420" y="205" width="341" height="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_F7tPoH1CEeCKy5kSqd4eVw" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_F7tPon1CEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_F7tPo31CEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_F7tPpH1CEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_F7tPpX1CEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qd_iqH1CEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qd_iqX1CEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="0"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_F7tPqH1CEeCKy5kSqd4eVw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_F7tPqX1CEeCKy5kSqd4eVw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_F7tPqn1CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_F7tPq31CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_F7tPrH1CEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_F7tPrX1CEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_F7tPrn1CEeCKy5kSqd4eVw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_F7tPr31CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_F7tPsH1CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_F7tPsX1CEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_F7tPsn1CEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_F7tPs31CEeCKy5kSqd4eVw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_F7tPtH1CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_F7tPtX1CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_F7tPtn1CEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_F7tPt31CEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_sAQwoHyZEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_F7tPoX1CEeCKy5kSqd4eVw" x="425" y="535" width="341" height="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GXIAUH1CEeCKy5kSqd4eVw" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GXIAUn1CEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GXIAU31CEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GXIAVH1CEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GXIAVX1CEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qd_iqn1CEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qd_iq31CEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="0"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GXIAWH1CEeCKy5kSqd4eVw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GXIAWX1CEeCKy5kSqd4eVw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GXIAWn1CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GXIAW31CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GXIAXH1CEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GXIAXX1CEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GXIAXn1CEeCKy5kSqd4eVw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GXIAX31CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GXIAYH1CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GXIAYX1CEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GXIAYn1CEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GXIAY31CEeCKy5kSqd4eVw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GXIAZH1CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GXIAZX1CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GXIAZn1CEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GXIAZ31CEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_3q4LYHyeEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GXIAUX1CEeCKy5kSqd4eVw" x="270" y="475" width="341" height="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_G07WoH1CEeCKy5kSqd4eVw" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G07Won1CEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G07Wo31CEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G07WpH1CEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G07WpX1CEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qd_irH1CEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qd_irX1CEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="0"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_G07WqH1CEeCKy5kSqd4eVw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_G07WqX1CEeCKy5kSqd4eVw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_G07Wqn1CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_G07Wq31CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_G07WrH1CEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_G07WrX1CEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_G07Wrn1CEeCKy5kSqd4eVw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_G07Wr31CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_G07WsH1CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_G07WsX1CEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_G07Wsn1CEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_G07Ws31CEeCKy5kSqd4eVw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_G07WtH1CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_G07WtX1CEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_G07Wtn1CEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_G07Wt31CEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_L9g-IHyfEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_G07WoX1CEeCKy5kSqd4eVw" x="130" y="420" width="341" height="40"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_ykp7YX1BEeCKy5kSqd4eVw"/>
+ <element xmi:type="uml:Package" href="alflibrary.uml#_fRoykH1BEeCKy5kSqd4eVw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_uREJ0H1CEeCKy5kSqd4eVw" type="4009" source="_9GzEcH1BEeCKy5kSqd4eVw" target="_AP900H1CEeCKy5kSqd4eVw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_uREJ031CEeCKy5kSqd4eVw" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uREJ1H1CEeCKy5kSqd4eVw" x="-6" y="-32"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uREJ1X1CEeCKy5kSqd4eVw" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uREJ1n1CEeCKy5kSqd4eVw" x="9" y="-32"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_uREJ0X1CEeCKy5kSqd4eVw" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_uQxO4H1CEeCKy5kSqd4eVw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_uREJ0n1CEeCKy5kSqd4eVw" points="[5, -6, 0, 200]$[-19, -205, -24, 1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_uT5bYH1CEeCKy5kSqd4eVw" id="(0.030110935023771792,0.06)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_uT5bYX1CEeCKy5kSqd4eVw" id="(0.07038123167155426,0.75)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ylVbYH1CEeCKy5kSqd4eVw" type="4009" source="_9GzEcH1BEeCKy5kSqd4eVw" target="_Dtsf8H1CEeCKy5kSqd4eVw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ylVbY31CEeCKy5kSqd4eVw" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ylVbZH1CEeCKy5kSqd4eVw" x="6" y="-28"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ylVbZX1CEeCKy5kSqd4eVw" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ylVbZn1CEeCKy5kSqd4eVw" x="21" y="-30"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ylVbYX1CEeCKy5kSqd4eVw" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_ylLqYH1CEeCKy5kSqd4eVw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ylVbYn1CEeCKy5kSqd4eVw" points="[-7, -9, 0, 166]$[-44, -173, -37, 2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_yl7RQH1CEeCKy5kSqd4eVw" id="(0.21236133122028525,0.28)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_yl7RQX1CEeCKy5kSqd4eVw" id="(0.10850439882697947,0.7)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_2lfeIH1CEeCKy5kSqd4eVw" type="4009" source="_9GzEcH1BEeCKy5kSqd4eVw" target="_EVxzoH1CEeCKy5kSqd4eVw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_2lfeI31CEeCKy5kSqd4eVw" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2lfeJH1CEeCKy5kSqd4eVw" x="8" y="-24"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2lfeJX1CEeCKy5kSqd4eVw" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2lfeJn1CEeCKy5kSqd4eVw" x="23" y="-26"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_2lfeIX1CEeCKy5kSqd4eVw" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_2lL8IH1CEeCKy5kSqd4eVw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2lfeIn1CEeCKy5kSqd4eVw" points="[-18, -31, 64, 109]$[-130, -137, -48, 3]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4LHYIH1CEeCKy5kSqd4eVw" id="(0.3803486529318542,0.22)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2mFUAH1CEeCKy5kSqd4eVw" id="(0.14076246334310852,0.75)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_6cjPQH1CEeCKy5kSqd4eVw" type="4009" source="_9GzEcH1BEeCKy5kSqd4eVw" target="_FcQ6kH1CEeCKy5kSqd4eVw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_6cjPQ31CEeCKy5kSqd4eVw" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6cjPRH1CEeCKy5kSqd4eVw" x="-4" y="-38"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6cjPRX1CEeCKy5kSqd4eVw" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6cjPRn1CEeCKy5kSqd4eVw" x="11" y="-38"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_6cjPQX1CEeCKy5kSqd4eVw" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_6cQUUH1CEeCKy5kSqd4eVw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_6cjPQn1CEeCKy5kSqd4eVw" points="[-3, -4, -9, 64]$[-3, -48, -9, 20]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6dJFIH1CEeCKy5kSqd4eVw" id="(0.5198098256735341,0.22)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9vtCEH1CEeCKy5kSqd4eVw" id="(0.10557184750733138,0.95)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Bq7hgH1DEeCKy5kSqd4eVw" type="4009" source="_9GzEcH1BEeCKy5kSqd4eVw" target="_F7tPoH1CEeCKy5kSqd4eVw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Bq7hg31DEeCKy5kSqd4eVw" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Bq7hhH1DEeCKy5kSqd4eVw" x="8" y="-31"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Bq7hhX1DEeCKy5kSqd4eVw" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Bq7hhn1DEeCKy5kSqd4eVw" x="-7" y="-32"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Bq7hgX1DEeCKy5kSqd4eVw" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_BqomkH1DEeCKy5kSqd4eVw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Bq7hgn1DEeCKy5kSqd4eVw" points="[-3, 12, 0, -173]$[60, 177, 63, -8]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Brh-cH1DEeCKy5kSqd4eVw" id="(0.8922345483359746,0.88)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Brh-cX1DEeCKy5kSqd4eVw" id="(0.7771260997067448,0.2)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_FIqMoH1DEeCKy5kSqd4eVw" type="4009" source="_9GzEcH1BEeCKy5kSqd4eVw" target="_GXIAUH1CEeCKy5kSqd4eVw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_FIqMo31DEeCKy5kSqd4eVw" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FIqMpH1DEeCKy5kSqd4eVw" x="13" y="-27"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FIqMpX1DEeCKy5kSqd4eVw" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FIqMpn1DEeCKy5kSqd4eVw" x="-2" y="-29"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_FIqMoX1DEeCKy5kSqd4eVw" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_FIXRsH1DEeCKy5kSqd4eVw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FIqMon1DEeCKy5kSqd4eVw" points="[-8, 13, 0, -120]$[60, 129, 68, -4]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FJQCgH1DEeCKy5kSqd4eVw" id="(0.6671949286846276,0.87)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FJQCgX1DEeCKy5kSqd4eVw" id="(0.8005865102639296,0.375)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_JCioQH1DEeCKy5kSqd4eVw" type="4009" source="_9GzEcH1BEeCKy5kSqd4eVw" target="_G07WoH1CEeCKy5kSqd4eVw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_JCioQ31DEeCKy5kSqd4eVw" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JCioRH1DEeCKy5kSqd4eVw" x="6" y="-35"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JCioRX1DEeCKy5kSqd4eVw" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JCioRn1DEeCKy5kSqd4eVw" x="-9" y="-32"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_JCioQX1DEeCKy5kSqd4eVw" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_JCPtUH1DEeCKy5kSqd4eVw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_JCioQn1DEeCKy5kSqd4eVw" points="[6, 10, 0, -58]$[62, 60, 56, -8]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JDJFMH1DEeCKy5kSqd4eVw" id="(0.39461172741679873,0.9)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JDJFMX1DEeCKy5kSqd4eVw" id="(0.7478005865102639,0.2)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_al6_cH1DEeCKy5kSqd4eVw" type="PapyrusUMLClassDiagram" name="Integer Functions" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_buysAH1DEeCKy5kSqd4eVw" type="2007" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_buysAn1DEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_buysA31DEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_buysBH1DEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_buysBX1DEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_buysBn1DEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_buysB31DEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_buysCH1DEeCKy5kSqd4eVw" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_buysCX1DEeCKy5kSqd4eVw" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_buysCn1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_buysC31DEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:Package" href="alflibrary.uml#_g16owH1BEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_buysAX1DEeCKy5kSqd4eVw" x="265" y="235" width="426" height="161"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_fWfygH1DEeCKy5kSqd4eVw" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fWfygn1DEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fWfyg31DEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fWfyhH1DEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fWfyhX1DEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fWfyhn1DEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fWfyh31DEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fWfyiH1DEeCKy5kSqd4eVw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_fWfyiX1DEeCKy5kSqd4eVw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_fWfyin1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_fWfyi31DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_fWfyjH1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fWfyjX1DEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_fWfyjn1DEeCKy5kSqd4eVw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_fWfyj31DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_fWfykH1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_fWfykX1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fWfykn1DEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_fWfyk31DEeCKy5kSqd4eVw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_fWfylH1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_fWfylX1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_fWfyln1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fWfyl31DEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_oeYhIHygEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fWfygX1DEeCKy5kSqd4eVw" x="265" y="140" width="67" height="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_frzUIH1DEeCKy5kSqd4eVw" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_frzUIn1DEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_frzUI31DEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_frzUJH1DEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_frzUJX1DEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_frzUJn1DEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_frzUJ31DEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_frzUKH1DEeCKy5kSqd4eVw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_frzUKX1DEeCKy5kSqd4eVw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_frzUKn1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_frzUK31DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_frzULH1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_frzULX1DEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_frzULn1DEeCKy5kSqd4eVw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_frzUL31DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_frzUMH1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_frzUMX1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_frzUMn1DEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_frzUM31DEeCKy5kSqd4eVw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_frzUNH1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_frzUNX1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_frzUNn1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_frzUN31DEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_96MicHygEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_frzUIX1DEeCKy5kSqd4eVw" x="445" y="140" width="67" height="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gFb8IH1DEeCKy5kSqd4eVw" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gFb8In1DEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gFb8I31DEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gFb8JH1DEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gFb8JX1DEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gFb8Jn1DEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gFb8J31DEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gFb8KH1DEeCKy5kSqd4eVw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gFb8KX1DEeCKy5kSqd4eVw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gFb8Kn1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gFb8K31DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gFb8LH1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gFb8LX1DEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gFb8Ln1DEeCKy5kSqd4eVw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gFb8L31DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gFb8MH1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gFb8MX1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gFb8Mn1DEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gFb8M31DEeCKy5kSqd4eVw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gFb8NH1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gFb8NX1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gFb8Nn1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gFb8N31DEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_KKl9EHyhEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gFb8IX1DEeCKy5kSqd4eVw" x="535" y="140" width="67" height="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gfgpAH1DEeCKy5kSqd4eVw" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gfgpAn1DEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gfgpA31DEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gfgpBH1DEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gfgpBX1DEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gfgpBn1DEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gfgpB31DEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gfgpCH1DEeCKy5kSqd4eVw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gfgpCX1DEeCKy5kSqd4eVw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gfgpCn1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gfgpC31DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gfgpDH1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gfgpDX1DEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gfgpDn1DEeCKy5kSqd4eVw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gfgpD31DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gfgpEH1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gfgpEX1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gfgpEn1DEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gfgpE31DEeCKy5kSqd4eVw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gfgpFH1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gfgpFX1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gfgpFn1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gfgpF31DEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_2ff2AHyhEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gfgpAX1DEeCKy5kSqd4eVw" x="625" y="140" width="67" height="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_g3zNMH1DEeCKy5kSqd4eVw" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_g3zNMn1DEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_g3zNM31DEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_g3zNNH1DEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_g3zNNX1DEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_g3zNNn1DEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_g3zNN31DEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_g3zNOH1DEeCKy5kSqd4eVw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_g3zNOX1DEeCKy5kSqd4eVw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_g3zNOn1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_g3zNO31DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_g3zNPH1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g3zNPX1DEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_g3zNPn1DEeCKy5kSqd4eVw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_g3zNP31DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_g3zNQH1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_g3zNQX1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g3zNQn1DEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_g3zNQ31DEeCKy5kSqd4eVw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_g3zNRH1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_g3zNRX1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_g3zNRn1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g3zNR31DEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_9xT2wHyhEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g3zNMX1DEeCKy5kSqd4eVw" x="355" y="140" width="67" height="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hPCogH1DEeCKy5kSqd4eVw" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hPCogn1DEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hPCog31DEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hPCohH1DEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hPCohX1DEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hPCohn1DEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hPCoh31DEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hPCoiH1DEeCKy5kSqd4eVw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hPCoiX1DEeCKy5kSqd4eVw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hPCoin1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hPCoi31DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hPCojH1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hPCojX1DEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hPCojn1DEeCKy5kSqd4eVw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hPCoj31DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hPCokH1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hPCokX1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hPCokn1DEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hPCok31DEeCKy5kSqd4eVw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hPColH1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hPColX1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hPColn1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hPCol31DEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_aDhIIHyiEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hPCogX1DEeCKy5kSqd4eVw" x="775" y="255" width="67" height="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hk8nEH1DEeCKy5kSqd4eVw" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hk8nEn1DEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hk8nE31DEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hk8nFH1DEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hk8nFX1DEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hk8nFn1DEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hk8nF31DEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hk8nGH1DEeCKy5kSqd4eVw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hk8nGX1DEeCKy5kSqd4eVw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hk8nGn1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hk8nG31DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hk8nHH1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hk8nHX1DEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hk8nHn1DEeCKy5kSqd4eVw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hk8nH31DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hk8nIH1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hk8nIX1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hk8nIn1DEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hk8nI31DEeCKy5kSqd4eVw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hk8nJH1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hk8nJX1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hk8nJn1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hk8nJ31DEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_kIpIkHyjEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hk8nEX1DEeCKy5kSqd4eVw" x="775" y="310" width="67" height="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_h7mMgH1DEeCKy5kSqd4eVw" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_h7mMgn1DEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_h7mMg31DEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_h7mMhH1DEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_h7mMhX1DEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_h7mMhn1DEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_h7mMh31DEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_h7mMiH1DEeCKy5kSqd4eVw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_h7mMiX1DEeCKy5kSqd4eVw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_h7mMin1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_h7mMi31DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_h7mMjH1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_h7mMjX1DEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_h7mMjn1DEeCKy5kSqd4eVw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_h7mMj31DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_h7mMkH1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_h7mMkX1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_h7mMkn1DEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_h7mMk31DEeCKy5kSqd4eVw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_h7mMlH1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_h7mMlX1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_h7mMln1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_h7mMl31DEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_tbNgIHyjEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_h7mMgX1DEeCKy5kSqd4eVw" x="775" y="360" width="67" height="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_iRp8EH1DEeCKy5kSqd4eVw" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRp8En1DEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRp8E31DEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRp8FH1DEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRp8FX1DEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRp8Fn1DEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRp8F31DEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iRp8GH1DEeCKy5kSqd4eVw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iRp8GX1DEeCKy5kSqd4eVw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iRp8Gn1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_iRp8G31DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_iRp8HH1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iRp8HX1DEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iRp8Hn1DEeCKy5kSqd4eVw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iRp8H31DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_iRp8IH1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_iRp8IX1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iRp8In1DEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iRp8I31DEeCKy5kSqd4eVw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iRp8JH1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_iRp8JX1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_iRp8Jn1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iRp8J31DEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_2euIAHyjEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iRp8EX1DEeCKy5kSqd4eVw" x="625" y="475" width="67" height="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ipDIYH1DEeCKy5kSqd4eVw" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ipMSUH1DEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ipMSUX1DEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ipMSUn1DEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ipMSU31DEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ipMSVH1DEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ipMSVX1DEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ipMSVn1DEeCKy5kSqd4eVw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ipMSV31DEeCKy5kSqd4eVw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ipMSWH1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ipMSWX1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ipMSWn1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ipMSW31DEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ipMSXH1DEeCKy5kSqd4eVw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ipMSXX1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ipMSXn1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ipMSX31DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ipMSYH1DEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ipMSYX1DEeCKy5kSqd4eVw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ipMSYn1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ipMSY31DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ipMSZH1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ipMSZX1DEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_Gd13IHykEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ipDIYX1DEeCKy5kSqd4eVw" x="535" y="475" width="67" height="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_i_ZL0H1DEeCKy5kSqd4eVw" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i_ZL0n1DEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i_ZL031DEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i_ZL1H1DEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i_ZL1X1DEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i_ZL1n1DEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i_ZL131DEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_i_ZL2H1DEeCKy5kSqd4eVw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_i_ZL2X1DEeCKy5kSqd4eVw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_i_ZL2n1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_i_ZL231DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_i_ZL3H1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i_ZL3X1DEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_i_ZL3n1DEeCKy5kSqd4eVw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_i_ZL331DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_i_ZL4H1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_i_ZL4X1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i_ZL4n1DEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_i_ZL431DEeCKy5kSqd4eVw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_i_ZL5H1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_i_ZL5X1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_i_ZL5n1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i_ZL531DEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_R44-IHykEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i_ZL0X1DEeCKy5kSqd4eVw" x="445" y="475" width="67" height="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jZefwH1DEeCKy5kSqd4eVw" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jZefwn1DEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jZefw31DEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jZefxH1DEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jZefxX1DEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jZefxn1DEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jZefx31DEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jZefyH1DEeCKy5kSqd4eVw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jZefyX1DEeCKy5kSqd4eVw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jZefyn1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jZefy31DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jZefzH1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jZefzX1DEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jZefzn1DEeCKy5kSqd4eVw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jZefz31DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jZef0H1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jZef0X1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jZef0n1DEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jZef031DEeCKy5kSqd4eVw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jZef1H1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jZef1X1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jZef1n1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jZef131DEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_bUG7YHykEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jZefwX1DEeCKy5kSqd4eVw" x="355" y="475" width="67" height="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jxUYAH1DEeCKy5kSqd4eVw" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jxUYAn1DEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jxUYA31DEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jxUYBH1DEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jxUYBX1DEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jxUYBn1DEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jxUYB31DEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jxUYCH1DEeCKy5kSqd4eVw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jxUYCX1DEeCKy5kSqd4eVw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jxUYCn1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jxUYC31DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jxUYDH1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jxUYDX1DEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jxUYDn1DEeCKy5kSqd4eVw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jxUYD31DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jxUYEH1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jxUYEX1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jxUYEn1DEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jxUYE31DEeCKy5kSqd4eVw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jxdh8H1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jxdh8X1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jxdh8n1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jxdh831DEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_kPAZ0HykEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jxUYAX1DEeCKy5kSqd4eVw" x="265" y="475" width="67" height="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kOhRYH1DEeCKy5kSqd4eVw" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kOhRYn1DEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kOhRY31DEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kOhRZH1DEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kOhRZX1DEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kOhRZn1DEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kOhRZ31DEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kOhRaH1DEeCKy5kSqd4eVw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kOhRaX1DEeCKy5kSqd4eVw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kOhRan1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kOhRa31DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kOhRbH1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kOhRbX1DEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kOhRbn1DEeCKy5kSqd4eVw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kOhRb31DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kOhRcH1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kOhRcX1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kOhRcn1DEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kOhRc31DEeCKy5kSqd4eVw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kOhRdH1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kOhRdX1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kOhRdn1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kOhRd31DEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_tAgrsHykEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kOhRYX1DEeCKy5kSqd4eVw" x="95" y="360" width="67" height="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kq-j4H1DEeCKy5kSqd4eVw" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kq-j4n1DEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kq-j431DEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kq-j5H1DEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kq-j5X1DEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kq-j5n1DEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kq-j531DEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kq-j6H1DEeCKy5kSqd4eVw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kq-j6X1DEeCKy5kSqd4eVw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kq-j6n1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kq-j631DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kq-j7H1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kq-j7X1DEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kq-j7n1DEeCKy5kSqd4eVw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kq-j731DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kq-j8H1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kq-j8X1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kq-j8n1DEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kq-j831DEeCKy5kSqd4eVw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kq-j9H1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kq-j9X1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kq-j9n1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kq-j931DEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_vEQFEHykEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kq-j4X1DEeCKy5kSqd4eVw" x="60" y="250" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lZU3oH1DEeCKy5kSqd4eVw" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lZU3on1DEeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lZU3o31DEeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lZU3pH1DEeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lZU3pX1DEeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lZU3pn1DEeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lZU3p31DEeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lZU3qH1DEeCKy5kSqd4eVw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lZU3qX1DEeCKy5kSqd4eVw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lZU3qn1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lZU3q31DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lZU3rH1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lZU3rX1DEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lZU3rn1DEeCKy5kSqd4eVw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lZU3r31DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lZU3sH1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lZU3sX1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lZU3sn1DEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lZU3s31DEeCKy5kSqd4eVw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lZU3tH1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lZU3tX1DEeCKy5kSqd4eVw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lZU3tn1DEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lZU3t31DEeCKy5kSqd4eVw"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_xrcw0HykEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lZU3oX1DEeCKy5kSqd4eVw" x="95" y="305" width="67" height="36"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_al6_cX1DEeCKy5kSqd4eVw"/>
+ <element xmi:type="uml:Package" href="alflibrary.uml#_g16owH1BEeCKy5kSqd4eVw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_0Ysb8H-eEeCO_pg6CtXdNg" type="4009" source="_buysAH1DEeCKy5kSqd4eVw" target="_fWfygH1DEeCKy5kSqd4eVw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_0Y2M8H-eEeCO_pg6CtXdNg" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0Y2M8X-eEeCO_pg6CtXdNg" x="-6" y="17"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0Y2M8n-eEeCO_pg6CtXdNg" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0Y2M83-eEeCO_pg6CtXdNg" x="9" y="29"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_0Ysb8X-eEeCO_pg6CtXdNg" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_0YGmEH-eEeCO_pg6CtXdNg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0Ysb8n-eEeCO_pg6CtXdNg" points="[6, -7, -2, 77]$[6, -66, -2, 18]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0ZS44H-eEeCO_pg6CtXdNg" id="(0.05868544600938967,0.043478260869565216)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_39IMAH-eEeCO_pg6CtXdNg" type="4009" source="_buysAH1DEeCKy5kSqd4eVw" target="_g3zNMH1DEeCKy5kSqd4eVw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_39IMA3-eEeCO_pg6CtXdNg" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_39IMBH-eEeCO_pg6CtXdNg" x="4" y="16"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_39IMBX-eEeCO_pg6CtXdNg" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_39IMBn-eEeCO_pg6CtXdNg" x="19" y="29"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_39IMAX-eEeCO_pg6CtXdNg" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_38_CEH-eEeCO_pg6CtXdNg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_39IMAn-eEeCO_pg6CtXdNg" points="[-2, -4, -5, 96]$[-2, -82, -5, 18]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_39uo8H-eEeCO_pg6CtXdNg" id="(0.28169014084507044,0.14285714285714285)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_6MBsgH-eEeCO_pg6CtXdNg" type="4009" source="_buysAH1DEeCKy5kSqd4eVw" target="_frzUIH1DEeCKy5kSqd4eVw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_6MBsg3-eEeCO_pg6CtXdNg" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6MBshH-eEeCO_pg6CtXdNg" x="4" y="11"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6MBshX-eEeCO_pg6CtXdNg" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6MBshn-eEeCO_pg6CtXdNg" x="19" y="29"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_6MBsgX-eEeCO_pg6CtXdNg" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_6LuxkH-eEeCO_pg6CtXdNg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_6MBsgn-eEeCO_pg6CtXdNg" points="[0, -10, -2, 96]$[0, -88, -2, 18]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6MeYcH-eEeCO_pg6CtXdNg" id="(0.4953051643192488,0.18012422360248448)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9B9-4H-eEeCO_pg6CtXdNg" type="4009" source="_buysAH1DEeCKy5kSqd4eVw" target="_gFb8IH1DEeCKy5kSqd4eVw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9B9-43-eEeCO_pg6CtXdNg" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9B9-5H-eEeCO_pg6CtXdNg" x="4" y="15"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9B9-5X-eEeCO_pg6CtXdNg" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9B9-5n-eEeCO_pg6CtXdNg" x="19" y="25"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_9B9-4X-eEeCO_pg6CtXdNg" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_9B008H-eEeCO_pg6CtXdNg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9B9-4n-eEeCO_pg6CtXdNg" points="[2, -5, 0, 85]$[1, -83, -1, 7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9Caq0H-eEeCO_pg6CtXdNg" id="(0.704225352112676,0.14906832298136646)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9Caq0X-eEeCO_pg6CtXdNg" id="(0.47761194029850745,0.8055555555555556)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_-_I2MH-eEeCO_pg6CtXdNg" type="4009" source="_buysAH1DEeCKy5kSqd4eVw" target="_gfgpAH1DEeCKy5kSqd4eVw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_-_I2M3-eEeCO_pg6CtXdNg" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-_I2NH-eEeCO_pg6CtXdNg" x="4" y="12"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-_I2NX-eEeCO_pg6CtXdNg" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-_I2Nn-eEeCO_pg6CtXdNg" x="19" y="26"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_-_I2MX-eEeCO_pg6CtXdNg" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_--_sQH-eEeCO_pg6CtXdNg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-_I2Mn-eEeCO_pg6CtXdNg" points="[1, -2, 0, 86]$[-1, -80, -2, 8]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-_vTIH-eEeCO_pg6CtXdNg" id="(0.9154929577464789,0.13043478260869565)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-_vTIX-eEeCO_pg6CtXdNg" id="(0.4626865671641791,0.7777777777777778)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_BdiyUH-fEeCO_pg6CtXdNg" type="4009" source="_buysAH1DEeCKy5kSqd4eVw" target="_hPCogH1DEeCKy5kSqd4eVw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_BdiyU3-fEeCO_pg6CtXdNg" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BdiyVH-fEeCO_pg6CtXdNg" x="-1" y="-10"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BdiyVX-fEeCO_pg6CtXdNg" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BdiyVn-fEeCO_pg6CtXdNg" x="-1" y="-25"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_BdiyUX-fEeCO_pg6CtXdNg" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_BdPQUH-fEeCO_pg6CtXdNg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BdiyUn-fEeCO_pg6CtXdNg" points="[10, 5, -89, 0]$[94, 4, -5, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Bd_eQH-fEeCO_pg6CtXdNg" id="(0.9765258215962441,0.19254658385093168)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Bd_eQX-fEeCO_pg6CtXdNg" id="(0.07462686567164178,0.4444444444444444)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_EFLi8H-fEeCO_pg6CtXdNg" type="4009" source="_buysAH1DEeCKy5kSqd4eVw" target="_hk8nEH1DEeCKy5kSqd4eVw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_EFLi83-fEeCO_pg6CtXdNg" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EFLi9H-fEeCO_pg6CtXdNg" x="-3" y="-11"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_EFLi9X-fEeCO_pg6CtXdNg" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EFLi9n-fEeCO_pg6CtXdNg" x="-1" y="-26"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_EFLi8X-fEeCO_pg6CtXdNg" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_EFBx8H-fEeCO_pg6CtXdNg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_EFLi8n-fEeCO_pg6CtXdNg" points="[13, 2, -93, 0]$[97, 1, -9, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EFoO4H-fEeCO_pg6CtXdNg" id="(0.9694835680751174,0.5590062111801242)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EFoO4X-fEeCO_pg6CtXdNg" id="(0.13432835820895522,0.4722222222222222)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_IsN_gH-fEeCO_pg6CtXdNg" type="4009" source="_buysAH1DEeCKy5kSqd4eVw" target="_h7mMgH1DEeCKy5kSqd4eVw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_IsN_g3-fEeCO_pg6CtXdNg" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IsN_hH-fEeCO_pg6CtXdNg" x="-3" y="-7"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_IsN_hX-fEeCO_pg6CtXdNg" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IsN_hn-fEeCO_pg6CtXdNg" x="-1" y="-22"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_IsN_gX-fEeCO_pg6CtXdNg" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_Ir7EkH-fEeCO_pg6CtXdNg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IsN_gn-fEeCO_pg6CtXdNg" points="[9, 3, -95, 0]$[93, 3, -11, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IsqrcH-fEeCO_pg6CtXdNg" id="(0.9788732394366197,0.8695652173913043)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IsqrcX-fEeCO_pg6CtXdNg" id="(0.16417910447761194,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_OFUyMH-fEeCO_pg6CtXdNg" type="4009" source="_buysAH1DEeCKy5kSqd4eVw" target="_iRp8EH1DEeCKy5kSqd4eVw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_OFUyM3-fEeCO_pg6CtXdNg" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OFejMH-fEeCO_pg6CtXdNg" x="-5" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_OFejMX-fEeCO_pg6CtXdNg" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OFejMn-fEeCO_pg6CtXdNg" x="-20" y="-27"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_OFUyMX-fEeCO_pg6CtXdNg" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_OFB3QH-fEeCO_pg6CtXdNg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_OFUyMn-fEeCO_pg6CtXdNg" points="[1, 8, 0, -87]$[-2, 87, -3, -8]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OGEZEH-fEeCO_pg6CtXdNg" id="(0.9131455399061033,0.9503105590062112)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OGEZEX-fEeCO_pg6CtXdNg" id="(0.44776119402985076,0.2222222222222222)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Q28lQH-fEeCO_pg6CtXdNg" type="4009" source="_buysAH1DEeCKy5kSqd4eVw" target="_ipDIYH1DEeCKy5kSqd4eVw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Q28lQ3-fEeCO_pg6CtXdNg" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q28lRH-fEeCO_pg6CtXdNg" x="-5" y="-16"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Q28lRX-fEeCO_pg6CtXdNg" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q28lRn-fEeCO_pg6CtXdNg" x="-20" y="-24"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Q28lQX-fEeCO_pg6CtXdNg" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_Q2pqUH-fEeCO_pg6CtXdNg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Q28lQn-fEeCO_pg6CtXdNg" points="[1, 8, 0, -84]$[0, 87, -1, -5]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Q3sMIH-fEeCO_pg6CtXdNg" id="(0.7089201877934272,0.9503105590062112)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Q3sMIX-fEeCO_pg6CtXdNg" id="(0.4925373134328358,0.1388888888888889)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_SWd3QH-fEeCO_pg6CtXdNg" type="4009" source="_buysAH1DEeCKy5kSqd4eVw" target="_i_ZL0H1DEeCKy5kSqd4eVw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_SWd3Q3-fEeCO_pg6CtXdNg" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SWd3RH-fEeCO_pg6CtXdNg" x="-5" y="-16"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SWd3RX-fEeCO_pg6CtXdNg" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SWd3Rn-fEeCO_pg6CtXdNg" x="-20" y="-24"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_SWd3QX-fEeCO_pg6CtXdNg" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_SWBLUH-fEeCO_pg6CtXdNg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SWd3Qn-fEeCO_pg6CtXdNg" points="[0, 9, -3, -97]$[0, 88, -3, -18]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SXDtIH-fEeCO_pg6CtXdNg" id="(0.49295774647887325,0.9440993788819876)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_T6TBgH-fEeCO_pg6CtXdNg" type="4009" source="_buysAH1DEeCKy5kSqd4eVw" target="_jZefwH1DEeCKy5kSqd4eVw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_T6TBg3-fEeCO_pg6CtXdNg" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_T6TBhH-fEeCO_pg6CtXdNg" x="-5" y="-19"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_T6TBhX-fEeCO_pg6CtXdNg" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_T6TBhn-fEeCO_pg6CtXdNg" x="-20" y="-28"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_T6TBgX-fEeCO_pg6CtXdNg" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_T528oH-fEeCO_pg6CtXdNg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_T6TBgn-fEeCO_pg6CtXdNg" points="[0, 9, 0, -87]$[0, 88, 0, -8]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T65ecH-fEeCO_pg6CtXdNg" id="(0.29107981220657275,0.9440993788819876)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T65ecX-fEeCO_pg6CtXdNg" id="(0.5074626865671642,0.2222222222222222)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_VYVFwH-fEeCO_pg6CtXdNg" type="4009" source="_buysAH1DEeCKy5kSqd4eVw" target="_jxUYAH1DEeCKy5kSqd4eVw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_VYVFw3-fEeCO_pg6CtXdNg" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VYVFxH-fEeCO_pg6CtXdNg" x="-5" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VYVFxX-fEeCO_pg6CtXdNg" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VYVFxn-fEeCO_pg6CtXdNg" x="-20" y="-24"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_VYVFwX-fEeCO_pg6CtXdNg" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_VYBjwH-fEeCO_pg6CtXdNg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_VYVFwn-fEeCO_pg6CtXdNg" points="[2, 8, 2, -97]$[2, 87, 2, -18]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VZEsoH-fEeCO_pg6CtXdNg" id="(0.07746478873239436,0.9503105590062112)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XZg6YH-fEeCO_pg6CtXdNg" type="4009" source="_buysAH1DEeCKy5kSqd4eVw" target="_kq-j4H1DEeCKy5kSqd4eVw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_XZg6Y3-fEeCO_pg6CtXdNg" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XZg6ZH-fEeCO_pg6CtXdNg" x="2" y="15"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XZg6ZX-fEeCO_pg6CtXdNg" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XZg6Zn-fEeCO_pg6CtXdNg" x="5" y="30"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_XZg6YX-fEeCO_pg6CtXdNg" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_XZE1gH-fEeCO_pg6CtXdNg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XZg6Yn-fEeCO_pg6CtXdNg" points="[-4, 0, 105, 0]$[-94, -2, 15, -2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XaHXUH-fEeCO_pg6CtXdNg" id="(0.009389671361502348,0.19254658385093168)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XaHXUX-fEeCO_pg6CtXdNg" id="(0.85,0.43243243243243246)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_aJzQsH-fEeCO_pg6CtXdNg" type="4009" source="_buysAH1DEeCKy5kSqd4eVw" target="_lZU3oH1DEeCKy5kSqd4eVw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_aJzQs3-fEeCO_pg6CtXdNg" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_aJzQtH-fEeCO_pg6CtXdNg" x="-1" y="12"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_aJzQtX-fEeCO_pg6CtXdNg" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_aJzQtn-fEeCO_pg6CtXdNg" x="1" y="27"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_aJzQsX-fEeCO_pg6CtXdNg" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_aJWkwH-fEeCO_pg6CtXdNg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aJzQsn-fEeCO_pg6CtXdNg" points="[-5, -1, 115, 0]$[-108, -1, 12, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aKZGkH-fEeCO_pg6CtXdNg" id="(0.011737089201877934,0.5527950310559007)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aKZGkX-fEeCO_pg6CtXdNg" id="(0.8208955223880597,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_c8dlkH-fEeCO_pg6CtXdNg" type="4009" source="_buysAH1DEeCKy5kSqd4eVw" target="_kOhRYH1DEeCKy5kSqd4eVw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_c8dlk3-fEeCO_pg6CtXdNg" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_c8dllH-fEeCO_pg6CtXdNg" x="-2" y="7"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_c8dllX-fEeCO_pg6CtXdNg" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_c8dlln-fEeCO_pg6CtXdNg" x="1" y="22"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_c8dlkX-fEeCO_pg6CtXdNg" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_c8A5oH-fEeCO_pg6CtXdNg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_c8dlkn-fEeCO_pg6CtXdNg" points="[-6, 2, 137, 1]$[-109, 2, 34, 1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_c9DbcH-fEeCO_pg6CtXdNg" id="(0.014084507042253521,0.8819875776397516)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_jmVckH-fEeCO_pg6CtXdNg" type="CompositeStructure" name="New Integer Functions" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_pAyTEH-fEeCO_pg6CtXdNg" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pAyTEn-fEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pAyTE3-fEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pAyTFH-fEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pAyTFX-fEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pAyTFn-fEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pAyTF3-fEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pAyTGH-fEeCO_pg6CtXdNg" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_pAyTGX-fEeCO_pg6CtXdNg" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_pAyTGn-fEeCO_pg6CtXdNg" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pAyTG3-fEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_rnFm8H-fEeCO_pg6CtXdNg" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rnFm8n-fEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rnFm83-fEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rnFm9H-fEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rnFm9X-fEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rnFm9n-fEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rnFm93-fEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_rnFm-H-fEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_rnFm-X-fEeCO_pg6CtXdNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_rnFm-n-fEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_rnFm-3-fEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_rmyE8H-fEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rnFm8X-fEeCO_pg6CtXdNg" x="-10" y="55" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yPeQMH-fEeCO_pg6CtXdNg" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yPeQMn-fEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yPeQM3-fEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yPeQNH-fEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yPeQNX-fEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yPeQNn-fEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yPeQN3-fEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yPeQOH-fEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yPeQOX-fEeCO_pg6CtXdNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yPeQOn-fEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yPeQO3-fEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_yPKuMH-fEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yPeQMX-fEeCO_pg6CtXdNg" x="216" y="60" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_o_vxQH-fEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pAyTEX-fEeCO_pg6CtXdNg" x="285" y="235" width="226" height="101"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_jmVckX-fEeCO_pg6CtXdNg"/>
+ <element xmi:type="uml:Package" href="alflibrary.uml#_g16owH1BEeCKy5kSqd4eVw"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_BJlfEH-gEeCO_pg6CtXdNg" type="PapyrusUMLClassDiagram" name="String functions" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_F-MdkH-gEeCO_pg6CtXdNg" type="2007" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_F-Mdkn-gEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_F-Mdk3-gEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_F-MdlH-gEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_F-MdlX-gEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_F-Mdln-gEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_F-Mdl3-gEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_F-MdmH-gEeCO_pg6CtXdNg" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_F-MdmX-gEeCO_pg6CtXdNg" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_F-Mdmn-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_F-Mdm3-gEeCO_pg6CtXdNg"/>
+ </children>
+ <element xmi:type="uml:Package" href="alflibrary.uml#_jJvskH1BEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_F-MdkX-gEeCO_pg6CtXdNg" x="225" y="335" width="461"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_HK79gH-gEeCO_pg6CtXdNg" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HK79gn-gEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HK79g3-gEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HK79hH-gEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HK79hX-gEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HK79hn-gEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HK79h3-gEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_HK79iH-gEeCO_pg6CtXdNg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HK79iX-gEeCO_pg6CtXdNg" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_HK79in-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HK79i3-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HK79jH-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HK79jX-gEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HK79jn-gEeCO_pg6CtXdNg" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_HK79j3-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HK79kH-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HK79kX-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HK79kn-gEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HK79k3-gEeCO_pg6CtXdNg" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_HK79lH-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HK79lX-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HK79ln-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HK79l3-gEeCO_pg6CtXdNg"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_jCwzsHylEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HK79gX-gEeCO_pg6CtXdNg" x="225" y="235" width="83" height="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_HgsLEH-gEeCO_pg6CtXdNg" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HgsLEn-gEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HgsLE3-gEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HgsLFH-gEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HgsLFX-gEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HgsLFn-gEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HgsLF3-gEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_HgsLGH-gEeCO_pg6CtXdNg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HgsLGX-gEeCO_pg6CtXdNg" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_HgsLGn-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HgsLG3-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HgsLHH-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HgsLHX-gEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Hg18EH-gEeCO_pg6CtXdNg" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Hg18EX-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Hg18En-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Hg18E3-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hg18FH-gEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Hg18FX-gEeCO_pg6CtXdNg" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Hg18Fn-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Hg18F3-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Hg18GH-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hg18GX-gEeCO_pg6CtXdNg"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_2weUcHylEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HgsLEX-gEeCO_pg6CtXdNg" x="415" y="235" width="83" height="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_H1QF0H-gEeCO_pg6CtXdNg" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H1Z20H-gEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H1Z20X-gEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H1Z20n-gEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H1Z203-gEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H1Z21H-gEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H1Z21X-gEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_H1Z21n-gEeCO_pg6CtXdNg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_H1Z213-gEeCO_pg6CtXdNg" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_H1Z22H-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_H1Z22X-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_H1Z22n-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H1Z223-gEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_H1Z23H-gEeCO_pg6CtXdNg" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_H1Z23X-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_H1Z23n-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_H1Z233-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H1Z24H-gEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_H1Z24X-gEeCO_pg6CtXdNg" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_H1Z24n-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_H1Z243-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_H1Z25H-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H1Z25X-gEeCO_pg6CtXdNg"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_EMRyQHymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H1QF0X-gEeCO_pg6CtXdNg" x="600" y="235" width="83" height="40"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_BJlfEX-gEeCO_pg6CtXdNg"/>
+ <element xmi:type="uml:Package" href="alflibrary.uml#_jJvskH1BEeCKy5kSqd4eVw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_N_id0H-gEeCO_pg6CtXdNg" type="4009" source="_F-MdkH-gEeCO_pg6CtXdNg" target="_HK79gH-gEeCO_pg6CtXdNg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_N_id03-gEeCO_pg6CtXdNg" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_N_id1H-gEeCO_pg6CtXdNg" x="-6" y="28"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_N_id1X-gEeCO_pg6CtXdNg" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_N_id1n-gEeCO_pg6CtXdNg" x="9" y="31"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_N_id0X-gEeCO_pg6CtXdNg" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_N-y28H-gEeCO_pg6CtXdNg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_N_id0n-gEeCO_pg6CtXdNg" points="[9, -5, 0, 67]$[8, -65, -1, 7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OAITsH-gEeCO_pg6CtXdNg" id="(0.06941431670281996,0.05)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OAITsX-gEeCO_pg6CtXdNg" id="(0.4939759036144578,0.825)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_P8aaMH-gEeCO_pg6CtXdNg" type="4009" source="_F-MdkH-gEeCO_pg6CtXdNg" target="_HgsLEH-gEeCO_pg6CtXdNg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_P8aaM3-gEeCO_pg6CtXdNg" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_P8aaNH-gEeCO_pg6CtXdNg" x="3" y="28"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_P8aaNX-gEeCO_pg6CtXdNg" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_P8aaNn-gEeCO_pg6CtXdNg" x="18" y="31"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_P8aaMX-gEeCO_pg6CtXdNg" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_P79uQH-gEeCO_pg6CtXdNg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_P8aaMn-gEeCO_pg6CtXdNg" points="[1, -31, 0, 99]$[1, -110, 0, 20]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_SUjWQH-gEeCO_pg6CtXdNg" type="4009" source="_F-MdkH-gEeCO_pg6CtXdNg" target="_H1QF0H-gEeCO_pg6CtXdNg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_SUjWQ3-gEeCO_pg6CtXdNg" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SUjWRH-gEeCO_pg6CtXdNg" x="3" y="32"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SUjWRX-gEeCO_pg6CtXdNg" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SUjWRn-gEeCO_pg6CtXdNg" x="18" y="31"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_SUjWQX-gEeCO_pg6CtXdNg" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_SUQbUH-gEeCO_pg6CtXdNg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SUjWQn-gEeCO_pg6CtXdNg" points="[-3, -5, 0, 88]$[-4, -84, -1, 9]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SVS9IH-gEeCO_pg6CtXdNg" id="(0.9088937093275488,0.24)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SVS9IX-gEeCO_pg6CtXdNg" id="(0.4939759036144578,0.775)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_d8RnUH-gEeCO_pg6CtXdNg" type="PapyrusUMLClassDiagram" name="UnlimitedNatural Functions" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_iMOZkH-gEeCO_pg6CtXdNg" type="2007" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iMOZkn-gEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iMOZk3-gEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iMOZlH-gEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iMOZlX-gEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iMOZln-gEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iMOZl3-gEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iMOZmH-gEeCO_pg6CtXdNg" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iMOZmX-gEeCO_pg6CtXdNg" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iMOZmn-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iMOZm3-gEeCO_pg6CtXdNg"/>
+ </children>
+ <element xmi:type="uml:Package" href="alflibrary.uml#_kmbF8H1BEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iMOZkX-gEeCO_pg6CtXdNg" x="200" y="260" width="481" height="131"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jcGGAH-gEeCO_pg6CtXdNg" type="2008" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jcGGAn-gEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jcGGA3-gEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jcGGBH-gEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jcGGBX-gEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jcGGBn-gEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jcGGB3-gEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jcGGCH-gEeCO_pg6CtXdNg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jcGGCX-gEeCO_pg6CtXdNg" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jcGGCn-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jcGGC3-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jcGGDH-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jcGGDX-gEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jcGGDn-gEeCO_pg6CtXdNg" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jcGGD3-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jcGGEH-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jcGGEX-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jcGGEn-gEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jcGGE3-gEeCO_pg6CtXdNg" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jcGGFH-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jcGGFX-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jcGGFn-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jcGGF3-gEeCO_pg6CtXdNg"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_lqywcHymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jcGGAX-gEeCO_pg6CtXdNg" x="200" y="170" height="39"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jwXF0H-gEeCO_pg6CtXdNg" type="2008" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jwXF0n-gEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jwXF03-gEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jwgPwH-gEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jwgPwX-gEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jwgPwn-gEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jwgPw3-gEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jwgPxH-gEeCO_pg6CtXdNg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jwgPxX-gEeCO_pg6CtXdNg" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jwgPxn-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jwgPx3-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jwgPyH-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jwgPyX-gEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jwgPyn-gEeCO_pg6CtXdNg" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jwgPy3-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jwgPzH-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jwgPzX-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jwgPzn-gEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jwgPz3-gEeCO_pg6CtXdNg" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jwgP0H-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jwgP0X-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jwgP0n-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jwgP03-gEeCO_pg6CtXdNg"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_lqywenymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jwXF0X-gEeCO_pg6CtXdNg" x="325" y="170" height="39"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kGaOUH-gEeCO_pg6CtXdNg" type="2008" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kGaOUn-gEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kGaOU3-gEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kGaOVH-gEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kGaOVX-gEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kGaOVn-gEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kGaOV3-gEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kGaOWH-gEeCO_pg6CtXdNg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kGaOWX-gEeCO_pg6CtXdNg" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kGaOWn-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kGaOW3-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kGaOXH-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kGaOXX-gEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kGaOXn-gEeCO_pg6CtXdNg" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kGaOX3-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kGaOYH-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kGaOYX-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kGaOYn-gEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kGaOY3-gEeCO_pg6CtXdNg" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kGaOZH-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kGaOZX-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kGaOZn-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kGaOZ3-gEeCO_pg6CtXdNg"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_lqywhHymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kGaOUX-gEeCO_pg6CtXdNg" x="450" y="170" height="39"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kbRrEH-gEeCO_pg6CtXdNg" type="2008" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kbRrEn-gEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kbRrE3-gEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kbRrFH-gEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kbRrFX-gEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kbRrFn-gEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kbRrF3-gEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kbRrGH-gEeCO_pg6CtXdNg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kbRrGX-gEeCO_pg6CtXdNg" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kbRrGn-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kbRrG3-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kbRrHH-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kbRrHX-gEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kbRrHn-gEeCO_pg6CtXdNg" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kbRrH3-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kbRrIH-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kbRrIX-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kbRrIn-gEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kbRrI3-gEeCO_pg6CtXdNg" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kbRrJH-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kbRrJX-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kbRrJn-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kbRrJ3-gEeCO_pg6CtXdNg"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_lqywjnymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kbRrEX-gEeCO_pg6CtXdNg" x="580" y="170" height="39"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_k4xfYH-gEeCO_pg6CtXdNg" type="2008" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_k4xfYn-gEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k4xfY3-gEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_k4xfZH-gEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k4xfZX-gEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_k4xfZn-gEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k4xfZ3-gEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_k4xfaH-gEeCO_pg6CtXdNg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_k4xfaX-gEeCO_pg6CtXdNg" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_k4xfan-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_k4xfa3-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_k4xfbH-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k4xfbX-gEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_k4xfbn-gEeCO_pg6CtXdNg" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_k4xfb3-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_k4xfcH-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_k4xfcX-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k4xfcn-gEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_k4xfc3-gEeCO_pg6CtXdNg" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_k4xfdH-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_k4xfdX-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_k4xfdn-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k4xfd3-gEeCO_pg6CtXdNg"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_lqywmHymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k4xfYX-gEeCO_pg6CtXdNg" x="765" y="315" height="39"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lMS4UH-gEeCO_pg6CtXdNg" type="2008" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lMS4Un-gEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lMS4U3-gEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lMS4VH-gEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lMS4VX-gEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lMS4Vn-gEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lMS4V3-gEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lMS4WH-gEeCO_pg6CtXdNg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lMS4WX-gEeCO_pg6CtXdNg" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lMS4Wn-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lMS4W3-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lMS4XH-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lMS4XX-gEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lMS4Xn-gEeCO_pg6CtXdNg" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lMS4X3-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lMS4YH-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lMS4YX-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lMS4Yn-gEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lMS4Y3-gEeCO_pg6CtXdNg" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lMS4ZH-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lMS4ZX-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lMS4Zn-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lMS4Z3-gEeCO_pg6CtXdNg"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_lqywonymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lMS4UX-gEeCO_pg6CtXdNg" x="580" y="460" height="39"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lf0RQH-gEeCO_pg6CtXdNg" type="2008" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lf-CQH-gEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lf-CQX-gEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lf-CQn-gEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lf-CQ3-gEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lf-CRH-gEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lf-CRX-gEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lf-CRn-gEeCO_pg6CtXdNg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lf-CR3-gEeCO_pg6CtXdNg" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lf-CSH-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lf-CSX-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lf-CSn-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lf-CS3-gEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lf-CTH-gEeCO_pg6CtXdNg" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lf-CTX-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lf-CTn-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lf-CT3-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lf-CUH-gEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lf-CUX-gEeCO_pg6CtXdNg" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lf-CUn-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lf-CU3-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lf-CVH-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lf-CVX-gEeCO_pg6CtXdNg"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_oj32YHymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lf0RQX-gEeCO_pg6CtXdNg" x="455" y="460" height="39"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lyANcH-gEeCO_pg6CtXdNg" type="2008" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lyANcn-gEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lyANc3-gEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lyANdH-gEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lyANdX-gEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lyANdn-gEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lyANd3-gEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lyANeH-gEeCO_pg6CtXdNg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lyANeX-gEeCO_pg6CtXdNg" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lyANen-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lyANe3-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lyANfH-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lyANfX-gEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lyANfn-gEeCO_pg6CtXdNg" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lyANf3-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lyANgH-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lyANgX-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lyANgn-gEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lyANg3-gEeCO_pg6CtXdNg" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lyANhH-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lyANhX-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lyANhn-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lyANh3-gEeCO_pg6CtXdNg"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_oj32Z3ymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lyANcX-gEeCO_pg6CtXdNg" x="330" y="460" height="39"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_mGRNQH-gEeCO_pg6CtXdNg" type="2008" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mGRNQn-gEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mGRNQ3-gEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mGRNRH-gEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mGRNRX-gEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mGRNRn-gEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mGRNR3-gEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mGRNSH-gEeCO_pg6CtXdNg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mGRNSX-gEeCO_pg6CtXdNg" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mGRNSn-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mGRNS3-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mGRNTH-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mGRNTX-gEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mGRNTn-gEeCO_pg6CtXdNg" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mGRNT3-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mGRNUH-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mGRNUX-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mGRNUn-gEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mGRNU3-gEeCO_pg6CtXdNg" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mGRNVH-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mGRNVX-gEeCO_pg6CtXdNg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mGRNVn-gEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mGRNV3-gEeCO_pg6CtXdNg"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_oj32bnymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mGRNQX-gEeCO_pg6CtXdNg" x="200" y="460" height="39"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_d8RnUX-gEeCO_pg6CtXdNg"/>
+ <element xmi:type="uml:Package" href="alflibrary.uml#_kmbF8H1BEeCKy5kSqd4eVw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_yAwpUH-gEeCO_pg6CtXdNg" type="4009" source="_iMOZkH-gEeCO_pg6CtXdNg" target="_jcGGAH-gEeCO_pg6CtXdNg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_yAwpU3-gEeCO_pg6CtXdNg" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yAwpVH-gEeCO_pg6CtXdNg" x="-2" y="23"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yAwpVX-gEeCO_pg6CtXdNg" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yAwpVn-gEeCO_pg6CtXdNg" x="8" y="32"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_yAwpUX-gEeCO_pg6CtXdNg" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_yAT9YH-gEeCO_pg6CtXdNg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_yAwpUn-gEeCO_pg6CtXdNg" points="[3, -9, 0, 60]$[3, -60, 0, 9]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_yBgQMH-gEeCO_pg6CtXdNg" id="(0.09771309771309772,0.06870229007633588)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_yBgQMX-gEeCO_pg6CtXdNg" id="(0.5,0.7692307692307693)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_zq2zoH-gEeCO_pg6CtXdNg" type="4009" source="_iMOZkH-gEeCO_pg6CtXdNg" target="_jwXF0H-gEeCO_pg6CtXdNg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_zq2zo3-gEeCO_pg6CtXdNg" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zq2zpH-gEeCO_pg6CtXdNg" x="3" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zq2zpX-gEeCO_pg6CtXdNg" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zq2zpn-gEeCO_pg6CtXdNg" x="18" y="32"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_zq2zoX-gEeCO_pg6CtXdNg" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_zqaHsH-gEeCO_pg6CtXdNg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_zq2zon-gEeCO_pg6CtXdNg" points="[0, -6, -3, 90]$[0, -76, -3, 20]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zrmagH-gEeCO_pg6CtXdNg" id="(0.3575883575883576,0.19083969465648856)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_1kwUgH-gEeCO_pg6CtXdNg" type="4009" source="_iMOZkH-gEeCO_pg6CtXdNg" target="_kGaOUH-gEeCO_pg6CtXdNg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1kwUg3-gEeCO_pg6CtXdNg" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1kwUhH-gEeCO_pg6CtXdNg" x="3" y="22"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1kwUhX-gEeCO_pg6CtXdNg" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1kwUhn-gEeCO_pg6CtXdNg" x="18" y="30"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_1kwUgX-gEeCO_pg6CtXdNg" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_1kTokH-gEeCO_pg6CtXdNg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1kwUgn-gEeCO_pg6CtXdNg" points="[4, -4, 0, 79]$[5, -74, 1, 9]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1lf7YH-gEeCO_pg6CtXdNg" id="(0.6195426195426196,0.17557251908396945)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1lf7YX-gEeCO_pg6CtXdNg" id="(0.52,0.7692307692307693)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3i9toH-gEeCO_pg6CtXdNg" type="4009" source="_iMOZkH-gEeCO_pg6CtXdNg" target="_kbRrEH-gEeCO_pg6CtXdNg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3i9to3-gEeCO_pg6CtXdNg" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3i9tpH-gEeCO_pg6CtXdNg" x="3" y="25"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3i9tpX-gEeCO_pg6CtXdNg" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3i9tpn-gEeCO_pg6CtXdNg" x="18" y="29"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3i9toX-gEeCO_pg6CtXdNg" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_3ihBsH-gEeCO_pg6CtXdNg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3i9ton-gEeCO_pg6CtXdNg" points="[-1, -5, 0, 79]$[-3, -75, -2, 9]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3jtUgH-gEeCO_pg6CtXdNg" id="(0.8918918918918919,0.183206106870229)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3jtUgX-gEeCO_pg6CtXdNg" id="(0.48,0.7692307692307693)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_5w-dUH-gEeCO_pg6CtXdNg" type="4009" source="_iMOZkH-gEeCO_pg6CtXdNg" target="_k4xfYH-gEeCO_pg6CtXdNg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_5w-dU3-gEeCO_pg6CtXdNg" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5w-dVH-gEeCO_pg6CtXdNg" x="-4" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5w-dVX-gEeCO_pg6CtXdNg" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5w-dVn-gEeCO_pg6CtXdNg" x="-1" y="-28"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5w-dUX-gEeCO_pg6CtXdNg" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_5wq7UH-gEeCO_pg6CtXdNg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5w-dUn-gEeCO_pg6CtXdNg" points="[7, 2, -98, 0]$[91, 1, -14, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5x3OIH-gEeCO_pg6CtXdNg" id="(0.9854469854469855,0.549618320610687)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5x3OIX-gEeCO_pg6CtXdNg" id="(0.14,0.48717948717948717)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7LR4IH-gEeCO_pg6CtXdNg" type="4009" source="_iMOZkH-gEeCO_pg6CtXdNg" target="_lMS4UH-gEeCO_pg6CtXdNg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_7LbCEH-gEeCO_pg6CtXdNg" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7LbCEX-gEeCO_pg6CtXdNg" y="-27"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7LbCEn-gEeCO_pg6CtXdNg" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7LbCE3-gEeCO_pg6CtXdNg" x="-15" y="-31"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_7LR4IX-gEeCO_pg6CtXdNg" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_7K-WIH-gEeCO_pg6CtXdNg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7LR4In-gEeCO_pg6CtXdNg" points="[2, 12, 0, -75]$[2, 81, 0, -6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7MKo8H-gEeCO_pg6CtXdNg" id="(0.8918918918918919,0.9083969465648855)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7MKo8X-gEeCO_pg6CtXdNg" id="(0.51,0.15384615384615385)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_86cIoH-gEeCO_pg6CtXdNg" type="4009" source="_iMOZkH-gEeCO_pg6CtXdNg" target="_lf0RQH-gEeCO_pg6CtXdNg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_86cIo3-gEeCO_pg6CtXdNg" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_86cIpH-gEeCO_pg6CtXdNg" y="-30"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_86cIpX-gEeCO_pg6CtXdNg" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_86cIpn-gEeCO_pg6CtXdNg" x="-15" y="-28"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_86cIoX-gEeCO_pg6CtXdNg" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_85_csH-gEeCO_pg6CtXdNg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_86cIon-gEeCO_pg6CtXdNg" points="[-2, 12, 0, -78]$[-3, 81, -1, -9]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_87eqcH-gEeCO_pg6CtXdNg" id="(0.6361746361746362,0.9083969465648855)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_87eqcX-gEeCO_pg6CtXdNg" id="(0.49,0.23076923076923078)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="__Qy8AH-gEeCO_pg6CtXdNg" type="4009" source="_iMOZkH-gEeCO_pg6CtXdNg" target="_lyANcH-gEeCO_pg6CtXdNg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="__Qy8A3-gEeCO_pg6CtXdNg" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__Qy8BH-gEeCO_pg6CtXdNg" y="-50"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="__Qy8BX-gEeCO_pg6CtXdNg" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__Qy8Bn-gEeCO_pg6CtXdNg" x="-15" y="-27"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="__Qy8AX-gEeCO_pg6CtXdNg" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#__QWQEH-gEeCO_pg6CtXdNg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__Qy8An-gEeCO_pg6CtXdNg" points="[1, 9, -5, -88]$[1, 78, -5, -19]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__Rii4H-gEeCO_pg6CtXdNg" id="(0.36174636174636177,0.9312977099236641)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_CzSyYH-hEeCO_pg6CtXdNg" type="4009" source="_iMOZkH-gEeCO_pg6CtXdNg" target="_mGRNQH-gEeCO_pg6CtXdNg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CzSyY3-hEeCO_pg6CtXdNg" type="6020">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CzSyZH-hEeCO_pg6CtXdNg" y="-26"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CzSyZX-hEeCO_pg6CtXdNg" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CzSyZn-hEeCO_pg6CtXdNg" x="-15" y="-28"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_CzSyYX-hEeCO_pg6CtXdNg" fontHeight="8"/>
+ <element xmi:type="uml:ElementImport" href="alflibrary.uml#_Cy2GcH-hEeCO_pg6CtXdNg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CzSyYn-hEeCO_pg6CtXdNg" points="[0, 9, 0, -76]$[-1, 78, -1, -7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_C0CZQH-hEeCO_pg6CtXdNg" id="(0.10187110187110188,0.9312977099236641)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_C0CZQX-hEeCO_pg6CtXdNg" id="(0.49,0.1794871794871795)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_zls78H-iEeCO_pg6CtXdNg" type="CompositeStructure" name="BitString functions" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_3Lev0H-iEeCO_pg6CtXdNg" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Lev0n-iEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Lev03-iEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Lev1H-iEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Lev1X-iEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Lev1n-iEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Lev13-iEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Lev2H-iEeCO_pg6CtXdNg" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Lev2X-iEeCO_pg6CtXdNg" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3Lev2n-iEeCO_pg6CtXdNg" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Lev23-iEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_JdZA8H-jEeCO_pg6CtXdNg" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JdZA8n-jEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JdZA83-jEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JdiK4H-jEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JdiK4X-jEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JdiK4n-jEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JdiK43-jEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JdiK5H-jEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JdiK5X-jEeCO_pg6CtXdNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JdiK5n-jEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JdiK53-jEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_JdPP8H-jEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JdZA8X-jEeCO_pg6CtXdNg" x="-10" y="36" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NyZ5YH-jEeCO_pg6CtXdNg" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NyZ5Yn-jEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NyZ5Y3-jEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NyZ5ZH-jEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NyZ5ZX-jEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NyZ5Zn-jEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NyZ5Z3-jEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NyZ5aH-jEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NyZ5aX-jEeCO_pg6CtXdNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NyZ5an-jEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NyZ5a3-jEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_NyG-cH-jEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NyZ5YX-jEeCO_pg6CtXdNg" x="-10" y="70" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_RcXCoH-jEeCO_pg6CtXdNg" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RcXCon-jEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RcXCo3-jEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RcXCpH-jEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RcXCpX-jEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RcXCpn-jEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RcXCp3-jEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RcXCqH-jEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RcXCqX-jEeCO_pg6CtXdNg" x="14" y="23"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RcXCqn-jEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RcXCq3-jEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_RcDgoH-jEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RcXCoX-jEeCO_pg6CtXdNg" x="196" y="57" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_3LVl4H-iEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Lev0X-iEeCO_pg6CtXdNg" x="150" y="75" width="206" height="96"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_439fwH-iEeCO_pg6CtXdNg" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_439fwn-iEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_439fw3-iEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_439fxH-iEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_439fxX-iEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_439fxn-iEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_439fx3-iEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_439fyH-iEeCO_pg6CtXdNg" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_439fyX-iEeCO_pg6CtXdNg" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_439fyn-iEeCO_pg6CtXdNg" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_439fy3-iEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_YMWIsH-jEeCO_pg6CtXdNg" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YMWIsn-jEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YMWIs3-jEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YMWItH-jEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YMWItX-jEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YMWItn-jEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YMWIt3-jEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YMWIuH-jEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YMWIuX-jEeCO_pg6CtXdNg" x="14" y="25"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YMWIun-jEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YMWIu3-jEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_YMDNwH-jEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YMWIsX-jEeCO_pg6CtXdNg" x="196" y="55" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_43qk0H-iEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_439fwX-iEeCO_pg6CtXdNg" x="150" y="220" width="206" height="96"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7Q_zsH-iEeCO_pg6CtXdNg" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7Q_zsn-iEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7Q_zs3-iEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7Q_ztH-iEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7Q_ztX-iEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7Q_ztn-iEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7Q_zt3-iEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7Q_zuH-iEeCO_pg6CtXdNg" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7Q_zuX-iEeCO_pg6CtXdNg" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7Q_zun-iEeCO_pg6CtXdNg" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7Q_zu3-iEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_d3V8oH-jEeCO_pg6CtXdNg" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_d3V8on-jEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_d3V8o3-jEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_d3V8pH-jEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_d3V8pX-jEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_d3fGkH-jEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_d3fGkX-jEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_d3fGkn-jEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_d3fGk3-jEeCO_pg6CtXdNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_d3fGlH-jEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_d3fGlX-jEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_d3MLoH-jEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_d3V8oX-jEeCO_pg6CtXdNg" x="-10" y="55" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nWuBIH-jEeCO_pg6CtXdNg" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nW3LEH-jEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nW3LEX-jEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nW3LEn-jEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nW3LE3-jEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nW3LFH-jEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nW3LFX-jEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_nW3LFn-jEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nW3LF3-jEeCO_pg6CtXdNg" x="14" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_nW3LGH-jEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nW3LGX-jEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_nWkQIH-jEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nWuBIX-jEeCO_pg6CtXdNg" x="196" y="55" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_7Q2pwH-iEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7Q_zsX-iEeCO_pg6CtXdNg" x="150" y="380" width="206" height="96"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9pSgwH-iEeCO_pg6CtXdNg" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9pSgwn-iEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9pSgw3-iEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9pSgxH-iEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9pSgxX-iEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9pcRwH-iEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9pcRwX-iEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9pcRwn-iEeCO_pg6CtXdNg" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9pcRw3-iEeCO_pg6CtXdNg" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9pcRxH-iEeCO_pg6CtXdNg" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9pcRxX-iEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_s3uLkH-jEeCO_pg6CtXdNg" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s3uLkn-jEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s3uLk3-jEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s3uLlH-jEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s3uLlX-jEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s3uLln-jEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s3uLl3-jEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_s3uLmH-jEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s3uLmX-jEeCO_pg6CtXdNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_s3uLmn-jEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s3uLm3-jEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_s3bQoH-jEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_s3uLkX-jEeCO_pg6CtXdNg" x="-10" y="55" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wIfYwH-jEeCO_pg6CtXdNg" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wIfYwn-jEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wIfYw3-jEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wIfYxH-jEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wIfYxX-jEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wIfYxn-jEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wIfYx3-jEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wIfYyH-jEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wIfYyX-jEeCO_pg6CtXdNg" x="14" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wIfYyn-jEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wIfYy3-jEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_wIL2wH-jEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wIfYwX-jEeCO_pg6CtXdNg" x="196" y="55" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_9pJW0H-iEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9pSgwX-iEeCO_pg6CtXdNg" x="540" y="75" width="206" height="96"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__1OM0H-iEeCO_pg6CtXdNg" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__1OM0n-iEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__1OM03-iEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__1OM1H-iEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__1OM1X-iEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__1OM1n-iEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__1OM13-iEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="__1OM2H-iEeCO_pg6CtXdNg" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__1OM2X-iEeCO_pg6CtXdNg" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__1OM2n-iEeCO_pg6CtXdNg" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__1OM23-iEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2H4vYH-jEeCO_pg6CtXdNg" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2H4vYn-jEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2H4vY3-jEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2H4vZH-jEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2H4vZX-jEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2H4vZn-jEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2H4vZ3-jEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2H4vaH-jEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2H4vaX-jEeCO_pg6CtXdNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2H4van-jEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2H4va3-jEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_2Hl0cH-jEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2H4vYX-jEeCO_pg6CtXdNg" x="-10" y="55" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8flRQH-jEeCO_pg6CtXdNg" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8fvCQH-jEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8fvCQX-jEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8fvCQn-jEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8fvCQ3-jEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8fvCRH-jEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8fvCRX-jEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8fvCRn-jEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8fvCR3-jEeCO_pg6CtXdNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8fvCSH-jEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8fvCSX-jEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_8fcHUH-jEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8flRQX-jEeCO_pg6CtXdNg" x="196" y="55" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#__06q0H-iEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__1OM0X-iEeCO_pg6CtXdNg" x="540" y="220" width="206" height="96"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BaPp4H-jEeCO_pg6CtXdNg" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BaPp4n-jEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BaPp43-jEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BaPp5H-jEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BaPp5X-jEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BaPp5n-jEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BaPp53-jEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BaPp6H-jEeCO_pg6CtXdNg" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BaPp6X-jEeCO_pg6CtXdNg" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BaPp6n-jEeCO_pg6CtXdNg" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BaPp63-jEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ArDzMH-kEeCO_pg6CtXdNg" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ArDzMn-kEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ArDzM3-kEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ArDzNH-kEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ArDzNX-kEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ArDzNn-kEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ArDzN3-kEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ArDzOH-kEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ArDzOX-kEeCO_pg6CtXdNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ArDzOn-kEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ArDzO3-kEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_Aq6CMH-kEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ArDzMX-kEeCO_pg6CtXdNg" x="-10" y="57" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_DIjwYH-kEeCO_pg6CtXdNg" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DIjwYn-kEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DIjwY3-kEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DIjwZH-kEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DIjwZX-kEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DIjwZn-kEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DIjwZ3-kEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DIjwaH-kEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DIjwaX-kEeCO_pg6CtXdNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DIjwan-kEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DIjwa3-kEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_DIamcH-kEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DIjwYX-kEeCO_pg6CtXdNg" x="196" y="55" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_BZ8u8H-jEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BaPp4X-jEeCO_pg6CtXdNg" x="540" y="380" width="206" height="96"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_zls78X-iEeCO_pg6CtXdNg"/>
+ <element xmi:type="uml:Package" href="alflibrary.uml#_nem0AH1BEeCKy5kSqd4eVw"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_Qe_mAH-kEeCO_pg6CtXdNg" type="CompositeStructure" name="Bit-wise Operator Functions" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_TNLqkH-kEeCO_pg6CtXdNg" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TNLqkn-kEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TNLqk3-kEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TNLqlH-kEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TNLqlX-kEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TNLqln-kEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TNLql3-kEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TNLqmH-kEeCO_pg6CtXdNg" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TNLqmX-kEeCO_pg6CtXdNg" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TNLqmn-kEeCO_pg6CtXdNg" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TNLqm3-kEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FK7CAH-qEeCO_pg6CtXdNg" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FK7CAn-qEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FK7CA3-qEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FK7CBH-qEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FK7CBX-qEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FK7CBn-qEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FK7CB3-qEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FK7CCH-qEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FK7CCX-qEeCO_pg6CtXdNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FK7CCn-qEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FK7CC3-qEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_FKoHEH-qEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FK7CAX-qEeCO_pg6CtXdNg" x="-10" y="56" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_H7WiQH-qEeCO_pg6CtXdNg" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H7WiQn-qEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H7WiQ3-qEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H7WiRH-qEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H7WiRX-qEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H7WiRn-qEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H7WiR3-qEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_H7WiSH-qEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_H7WiSX-qEeCO_pg6CtXdNg" x="14" y="25"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_H7WiSn-qEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_H7WiS3-qEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_H66dYH-qEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H7WiQX-qEeCO_pg6CtXdNg" x="198" y="56" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_TM4voH-kEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TNLqkX-kEeCO_pg6CtXdNg" x="145" y="80" width="208" height="102"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TXKtAH-kEeCO_pg6CtXdNg" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TXKtAn-kEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TXKtA3-kEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TXKtBH-kEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TXKtBX-kEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TXKtBn-kEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TXKtB3-kEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TXKtCH-kEeCO_pg6CtXdNg" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TXKtCX-kEeCO_pg6CtXdNg" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TXKtCn-kEeCO_pg6CtXdNg" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TXKtC3-kEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_OVvLwH-qEeCO_pg6CtXdNg" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OVvLwn-qEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OVvLw3-qEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OVvLxH-qEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OVvLxX-qEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OVvLxn-qEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OVvLx3-qEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_OVvLyH-qEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OVvLyX-qEeCO_pg6CtXdNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_OVvLyn-qEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OVvLy3-qEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_OVcQ0H-qEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OVvLwX-qEeCO_pg6CtXdNg" x="-10" y="41" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QmuW8H-qEeCO_pg6CtXdNg" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QmuW8n-qEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QmuW83-qEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QmuW9H-qEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QmuW9X-qEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QmuW9n-qEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QmuW93-qEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QmuW-H-qEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QmuW-X-qEeCO_pg6CtXdNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QmuW-n-qEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QmuW-3-qEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_QmRrAH-qEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QmuW8X-qEeCO_pg6CtXdNg" x="-10" y="75" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TON9oH-qEeCO_pg6CtXdNg" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TON9on-qEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TON9o3-qEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TON9pH-qEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TON9pX-qEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TON9pn-qEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TON9p3-qEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TON9qH-qEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TON9qX-qEeCO_pg6CtXdNg" x="18" y="25"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TON9qn-qEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TON9q3-qEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_TNxRsH-qEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TON9oX-qEeCO_pg6CtXdNg" x="199" y="60" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_TWuBEH-kEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TXKtAX-kEeCO_pg6CtXdNg" x="145" y="200" width="209" height="102"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TgGmkH-kEeCO_pg6CtXdNg" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TgGmkn-kEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TgGmk3-kEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TgGmlH-kEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TgGmlX-kEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TgGmln-kEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TgGml3-kEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TgGmmH-kEeCO_pg6CtXdNg" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TgGmmX-kEeCO_pg6CtXdNg" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TgGmmn-kEeCO_pg6CtXdNg" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TgGmm3-kEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_a5NTYH-qEeCO_pg6CtXdNg" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a5NTYn-qEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a5NTY3-qEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a5NTZH-qEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a5NTZX-qEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a5NTZn-qEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a5NTZ3-qEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_a5NTaH-qEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_a5NTaX-qEeCO_pg6CtXdNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_a5NTan-qEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_a5NTa3-qEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_a4xOgH-qEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_a5NTYX-qEeCO_pg6CtXdNg" x="-10" y="41" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_e8ydkH-qEeCO_pg6CtXdNg" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_e88OkH-qEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_e88OkX-qEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_e88Okn-qEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_e88Ok3-qEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_e88OlH-qEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_e88OlX-qEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_e88Oln-qEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_e88Ol3-qEeCO_pg6CtXdNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_e88OmH-qEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_e88OmX-qEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_e8fioH-qEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_e8ydkX-qEeCO_pg6CtXdNg" x="-10" y="71" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_iDkoUH-qEeCO_pg6CtXdNg" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iDkoUn-qEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iDkoU3-qEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iDkoVH-qEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iDkoVX-qEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iDkoVn-qEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iDkoV3-qEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iDkoWH-qEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iDkoWX-qEeCO_pg6CtXdNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iDkoWn-qEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iDkoW3-qEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_iDH8YH-qEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iDkoUX-qEeCO_pg6CtXdNg" x="199" y="56" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_TfqhsH-kEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TgGmkX-kEeCO_pg6CtXdNg" x="145" y="320" width="209" height="102"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TqFpAH-kEeCO_pg6CtXdNg" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TqFpAn-kEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TqFpA3-kEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TqFpBH-kEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TqFpBX-kEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TqFpBn-kEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TqFpB3-kEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TqFpCH-kEeCO_pg6CtXdNg" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TqFpCX-kEeCO_pg6CtXdNg" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TqFpCn-kEeCO_pg6CtXdNg" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TqFpC3-kEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_mesv0H-qEeCO_pg6CtXdNg" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mesv0n-qEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mesv03-qEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mesv1H-qEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mesv1X-qEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mesv1n-qEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mesv13-qEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_me2g0H-qEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_me2g0X-qEeCO_pg6CtXdNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_me2g0n-qEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_me2g03-qEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_meZ04H-qEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mesv0X-qEeCO_pg6CtXdNg" x="-10" y="40" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_o0wBMH-qEeCO_pg6CtXdNg" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_o0wBMn-qEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o0wBM3-qEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_o0wBNH-qEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o0wBNX-qEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_o0wBNn-qEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o0wBN3-qEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_o0wBOH-qEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_o0wBOX-qEeCO_pg6CtXdNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_o0wBOn-qEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_o0wBO3-qEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_o0T8UH-qEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_o0wBMX-qEeCO_pg6CtXdNg" x="-10" y="75" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_rwW2sH-qEeCO_pg6CtXdNg" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rwW2sn-qEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rwW2s3-qEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rwW2tH-qEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rwW2tX-qEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rwW2tn-qEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rwW2t3-qEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_rwW2uH-qEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_rwW2uX-qEeCO_pg6CtXdNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_rwW2un-qEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_rwW2u3-qEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_rv6x0H-qEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rwW2sX-qEeCO_pg6CtXdNg" x="199" y="59" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_Tpo9EH-kEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TqFpAX-kEeCO_pg6CtXdNg" x="145" y="440" width="209" height="102"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_T7OcUH-kEeCO_pg6CtXdNg" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_T7OcUn-kEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_T7OcU3-kEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_T7OcVH-kEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_T7OcVX-kEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_T7OcVn-kEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_T7OcV3-kEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_T7OcWH-kEeCO_pg6CtXdNg" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_T7OcWX-kEeCO_pg6CtXdNg" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_T7OcWn-kEeCO_pg6CtXdNg" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T7OcW3-kEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0ibwUH-qEeCO_pg6CtXdNg" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0ilhUH-qEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0ilhUX-qEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0ilhUn-qEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0ilhU3-qEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0ilhVH-qEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0ilhVX-qEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0ilhVn-qEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0ilhV3-qEeCO_pg6CtXdNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0ilhWH-qEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0ilhWX-qEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_0iI1YH-qEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0ibwUX-qEeCO_pg6CtXdNg" x="-10" y="42" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3REg0H-qEeCO_pg6CtXdNg" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3REg0n-qEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3REg03-qEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3REg1H-qEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3REg1X-qEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3REg1n-qEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3REg13-qEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3REg2H-qEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3REg2X-qEeCO_pg6CtXdNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3REg2n-qEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3REg23-qEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_3Qob8H-qEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3REg0X-qEeCO_pg6CtXdNg" x="-10" y="75" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_739zcH-qEeCO_pg6CtXdNg" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_739zcn-qEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_739zc3-qEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_739zdH-qEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_739zdX-qEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_739zdn-qEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_739zd3-qEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_739zeH-qEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_739zeX-qEeCO_pg6CtXdNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_739zen-qEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_739ze3-qEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_73hHgH-qEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_739zcX-qEeCO_pg6CtXdNg" x="199" y="58" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_T6VEcH-kEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T7OcUX-kEeCO_pg6CtXdNg" x="560" y="80" width="209" height="102"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_UEwy0H-kEeCO_pg6CtXdNg" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UEwy0n-kEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UEwy03-kEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UEwy1H-kEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UEwy1X-kEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UEwy1n-kEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UEwy13-kEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UEwy2H-kEeCO_pg6CtXdNg" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_UEwy2X-kEeCO_pg6CtXdNg" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_UEwy2n-kEeCO_pg6CtXdNg" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UEwy23-kEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_C50soH-rEeCO_pg6CtXdNg" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_C50son-rEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_C50so3-rEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_C50spH-rEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_C5-doH-rEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_C5-doX-rEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_C5-don-rEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_C5-do3-rEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_C5-dpH-rEeCO_pg6CtXdNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_C5-dpX-rEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_C5-dpn-rEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_C5risH-rEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_C50soX-rEeCO_pg6CtXdNg" x="-10" y="39" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FTTsgH-rEeCO_pg6CtXdNg" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FTTsgn-rEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FTTsg3-rEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FTTshH-rEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FTTshX-rEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FTTshn-rEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FTTsh3-rEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FTTsiH-rEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FTTsiX-rEeCO_pg6CtXdNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FTTsin-rEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FTTsi3-rEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_FS3AkH-rEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FTTsgX-rEeCO_pg6CtXdNg" x="-10" y="70" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Ic6hwH-rEeCO_pg6CtXdNg" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IdESwH-rEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IdESwX-rEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IdESwn-rEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IdESw3-rEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IdESxH-rEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IdESxX-rEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_IdESxn-rEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IdESx3-rEeCO_pg6CtXdNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_IdESyH-rEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IdESyX-rEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_Icd10H-rEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ic6hwX-rEeCO_pg6CtXdNg" x="199" y="60" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_UEUG4H-kEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UEwy0X-kEeCO_pg6CtXdNg" x="560" y="200" width="209" height="102"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_UOc6UH-kEeCO_pg6CtXdNg" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UOmEQH-kEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UOmEQX-kEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UOmEQn-kEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UOmEQ3-kEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UOmERH-kEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UOmERX-kEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UOmERn-kEeCO_pg6CtXdNg" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_UOmER3-kEeCO_pg6CtXdNg" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_UOmESH-kEeCO_pg6CtXdNg" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UOmESX-kEeCO_pg6CtXdNg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LcZKoH-rEeCO_pg6CtXdNg" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LcZKon-rEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LcZKo3-rEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LcZKpH-rEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LcZKpX-rEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LcZKpn-rEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LcZKp3-rEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LcZKqH-rEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LcZKqX-rEeCO_pg6CtXdNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LcZKqn-rEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LcZKq3-rEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_Lb8esH-rEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LcZKoX-rEeCO_pg6CtXdNg" x="-10" y="39" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_PTTKwH-rEeCO_pg6CtXdNg" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PTTKwn-rEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PTTKw3-rEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PTTKxH-rEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PTTKxX-rEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PTTKxn-rEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PTTKx3-rEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_PTTKyH-rEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_PTTKyX-rEeCO_pg6CtXdNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_PTTKyn-rEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_PTTKy3-rEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_PTAP0H-rEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PTTKwX-rEeCO_pg6CtXdNg" x="-10" y="75" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_RVFcUH-rEeCO_pg6CtXdNg" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RVFcUn-rEeCO_pg6CtXdNg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RVFcU3-rEeCO_pg6CtXdNg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RVFcVH-rEeCO_pg6CtXdNg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RVFcVX-rEeCO_pg6CtXdNg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RVFcVn-rEeCO_pg6CtXdNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RVFcV3-rEeCO_pg6CtXdNg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RVFcWH-rEeCO_pg6CtXdNg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RVFcWX-rEeCO_pg6CtXdNg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RVFcWn-rEeCO_pg6CtXdNg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RVFcW3-rEeCO_pg6CtXdNg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_RUpXcH-rEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RVFcUX-rEeCO_pg6CtXdNg" x="199" y="59" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_UOAOYH-kEeCO_pg6CtXdNg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UOc6UX-kEeCO_pg6CtXdNg" x="560" y="320" width="209" height="102"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Qe_mAX-kEeCO_pg6CtXdNg"/>
+ <element xmi:type="uml:Package" href="alflibrary.uml#_nem0AH1BEeCKy5kSqd4eVw"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_M7lF4KiyEeCw3MW-Flzemw" type="PapyrusUMLClassDiagram" name="Collection classes" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_VSY_0KiyEeCw3MW-Flzemw" type="2008" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VSY_0qiyEeCw3MW-Flzemw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VSY_06iyEeCw3MW-Flzemw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VSY_1KiyEeCw3MW-Flzemw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VSY_1aiyEeCw3MW-Flzemw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VSY_1qiyEeCw3MW-Flzemw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VSY_16iyEeCw3MW-Flzemw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VSY_2KiyEeCw3MW-Flzemw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VSY_2aiyEeCw3MW-Flzemw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_VSY_2qiyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_VSY_26iyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_VSY_3KiyEeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VSY_3aiyEeCw3MW-Flzemw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VSiw0KiyEeCw3MW-Flzemw" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_Chqc4O6cEeCttc32wS_Cjw" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0RAAPDkEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YZVQYPDkEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2858"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_ChPmIO6cEeCttc32wS_Cjw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Chqc4e6cEeCttc32wS_Cjw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1EDsQPDgEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0tr8PDkEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YZtq4PDkEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2858"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_1DPM4PDgEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1EDsQfDgEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_INIO4PDhEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I3yOEPDkEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YZ6fMPDkEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2858"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_IM9PwPDhEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_INIO4fDhEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_M_XO0PDhEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I39NMPDkEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YaHTgPDkEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2858"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_M_ET4PDhEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M_XO0fDhEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_d-BvYPDhEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I3n2APDkEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YaTgwPDkEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2858"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_d9x3wPDhEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_d-BvYfDhEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_vek1APDhEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I3c24PDkEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Yad40PDkEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2858"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_veR6EPDhEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vek1AfDhEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_5CT1EPDhEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I3Se0PDkEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YauXgPDkEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2858"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_5CD9cPDhEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5CT1EfDhEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_HxC6YPDiEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I3HfsPDkEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YbDusPDkEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2858"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_Hwm1gPDiEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_HxC6YfDiEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_S835oPDiEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I28gkPDkEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ya4vkPDkEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2858"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_S8eRAPDiEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_S835ofDiEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_exFHgPDiEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I2nJYPDkEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YbVbgPDkEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2858"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_eww-cPDiEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_exFHgfDiEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_k_SWMPDiEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I2yIgPDkEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YbqysPDkEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2858"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_k-4GgPDiEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_k_SWMfDiEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_oyrvUPDiEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I2VckPDkEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YbfzkPDkEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2858"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_oyTU0PDiEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oyrvUfDiEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xsV3oPDiEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I1-3QPDkEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Yb1KwPDkEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2858"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_xsC8sPDiEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xsV3ofDiEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9eBV8PDiEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I2J2YPDkEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YcAJ4PDkEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2858"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_9dsl0PDiEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9eBV8fDiEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_RCursPDjEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I1z4IPDkEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YcLJAPDkEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2858"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_RCcX0PDjEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RCursfDjEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dL9HUPDjEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I09jkPDkEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YcZygPDkEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2858"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_dLkFwPDjEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dL9HUfDjEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_oGBoMPDjEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I1XzQPDkEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YckxoPDkEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2858"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_oFpNsPDjEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oGBoMfDjEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ySvT0PDjEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I1o5APDkEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YcvwwPDkEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2858"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_yScY4PDjEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ySv64PDjEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_32P_sPDjEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I1Jw0PDkEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Yc6I0PDkEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2858"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_314zUPDjEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_32P_sfDjEeCxrPjksdBlsg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_VSiw0aiyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_VSiw0qiyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_VSiw06iyEeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VSiw1KiyEeCw3MW-Flzemw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VSiw1aiyEeCw3MW-Flzemw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_VSiw1qiyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_VSiw16iyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_VSiw2KiyEeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VSiw2aiyEeCw3MW-Flzemw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dCA98KiyEeCw3MW-Flzemw" type="3015" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dCA98qiyEeCw3MW-Flzemw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dCA986iyEeCw3MW-Flzemw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dCA99KiyEeCw3MW-Flzemw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dCA99aiyEeCw3MW-Flzemw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dCA99qiyEeCw3MW-Flzemw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dCA996iyEeCw3MW-Flzemw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dCA9-KiyEeCw3MW-Flzemw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_Mx53QO6UEeCttc32wS_Cjw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_Mjzw4O6UEeCttc32wS_Cjw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Mx53Qe6UEeCttc32wS_Cjw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dCA9-aiyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dCA9-qiyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dCA9-6iyEeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dCA9_KiyEeCw3MW-Flzemw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_dBkSAKiyEeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dCA98aiyEeCw3MW-Flzemw" x="355" y="-10" width="83" height="51"/>
+ </children>
+ <element xmi:type="uml:Class" href="alflibrary.uml#_VRDjEKiyEeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VSY_0aiyEeCw3MW-Flzemw" x="300" y="-140" width="391" height="308"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_swclsKiyEeCw3MW-Flzemw" type="2008" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_swclsqiyEeCw3MW-Flzemw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_swcls6iyEeCw3MW-Flzemw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_swcltKiyEeCw3MW-Flzemw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_swcltaiyEeCw3MW-Flzemw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_swcltqiyEeCw3MW-Flzemw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_swclt6iyEeCw3MW-Flzemw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_swcluKiyEeCw3MW-Flzemw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_swcluaiyEeCw3MW-Flzemw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_swcluqiyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_swclu6iyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_swclvKiyEeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_swclvaiyEeCw3MW-Flzemw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_swclvqiyEeCw3MW-Flzemw" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_xIyXQPDlEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kcRWcPDnEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kcRWcfDnEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_xIZ8wPDlEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xIyXQfDlEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_5AIuAPDlEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kcgnAPDnEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kcgnAfDnEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_4_42YPDlEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5AIuAfDlEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_EWbQ0PDmEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kcqYAPDnEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kcqYAfDnEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_EWAaEPDmEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EWbQ0fDmEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Oq6YYPDmEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TICD8PDmEeCxrPjksdBlsg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TICD8fDmEeCxrPjksdBlsg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TICD8vDmEeCxrPjksdBlsg" key="StereotypeList" value="Standard::Destroy"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TICD8_DmEeCxrPjksdBlsg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TICrAPDmEeCxrPjksdBlsg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TICrAfDmEeCxrPjksdBlsg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kcy64PDnEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kczh8PDnEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_OqqgwPDmEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Oq6YYfDmEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_YB9nUPDmEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kc62sPDnEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kc62sfDnEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_YBlz4PDmEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YB9nUfDmEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_g_6ZwPDmEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_29pcYPDmEeCxrPjksdBlsg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_29pcYfDmEeCxrPjksdBlsg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_29pcYvDmEeCxrPjksdBlsg" key="StereotypeList" value="Standard::Create"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_29pcY_DmEeCxrPjksdBlsg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_29pcZPDmEeCxrPjksdBlsg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_29pcZfDmEeCxrPjksdBlsg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kdCLcPDnEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kdCLcfDnEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_g_lCkPDmEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_g_6ZwfDmEeCxrPjksdBlsg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_swclv6iyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_swclwKiyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_swclwaiyEeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_swclwqiyEeCw3MW-Flzemw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_swmWsKiyEeCw3MW-Flzemw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_swmWsaiyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_swmWsqiyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_swmWs6iyEeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_swmWtKiyEeCw3MW-Flzemw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_F__h4Ki0EeCw3MW-Flzemw" type="3015" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GAIr0Ki0EeCw3MW-Flzemw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GAIr0ai0EeCw3MW-Flzemw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GAIr0qi0EeCw3MW-Flzemw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GAIr06i0EeCw3MW-Flzemw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GAIr1Ki0EeCw3MW-Flzemw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GAIr1ai0EeCw3MW-Flzemw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GAIr1qi0EeCw3MW-Flzemw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_xQiM8O6TEeCttc32wS_Cjw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_wMyQ8O6TEeCttc32wS_Cjw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xQiM8e6TEeCttc32wS_Cjw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GAIr16i0EeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GAIr2Ki0EeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GAIr2ai0EeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GAIr2qi0EeCw3MW-Flzemw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_F_i18Ki0EeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_F__h4ai0EeCw3MW-Flzemw" x="305" y="-10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wW6A0O6UEeCttc32wS_Cjw" type="3032" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wW6n4O6UEeCttc32wS_Cjw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wW7O8O6UEeCttc32wS_Cjw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wW7O8e6UEeCttc32wS_Cjw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wW7O8u6UEeCttc32wS_Cjw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wW7O8-6UEeCttc32wS_Cjw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wW7O9O6UEeCttc32wS_Cjw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wW6A0e6UEeCttc32wS_Cjw" x="75" y="-19"/>
+ </children>
+ <element xmi:type="uml:Class" href="alflibrary.uml#_sv_5wKiyEeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_swclsaiyEeCw3MW-Flzemw" x="-20" y="295" width="336" height="121"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2mCKwKiyEeCw3MW-Flzemw" type="2008" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2mCKwqiyEeCw3MW-Flzemw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2mCKw6iyEeCw3MW-Flzemw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2mCKxKiyEeCw3MW-Flzemw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2mCKxaiyEeCw3MW-Flzemw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2mCKxqiyEeCw3MW-Flzemw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2mCKx6iyEeCw3MW-Flzemw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2mCKyKiyEeCw3MW-Flzemw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2mCKyaiyEeCw3MW-Flzemw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2mCKyqiyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2mCKy6iyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2mCKzKiyEeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2mCKzaiyEeCw3MW-Flzemw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2mCKzqiyEeCw3MW-Flzemw" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_7WRNAPDnEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5_yFwPDoEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5_ys0PDoEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_7WAuUPDnEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7WRNAfDnEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CuCr0PDoEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6AIEAPDoEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6AIEAfDoEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_Ct0pYPDoEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CuCr0fDoEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_M96ZIPDoEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_USdk0PDoEeCxrPjksdBlsg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_USdk0fDoEeCxrPjksdBlsg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_USdk0vDoEeCxrPjksdBlsg" key="StereotypeList" value="Standard::Create"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_USdk0_DoEeCxrPjksdBlsg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_USdk1PDoEeCxrPjksdBlsg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_USdk1fDoEeCxrPjksdBlsg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6AQm4PDoEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6AQm4fDoEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_M9rIkPDoEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M96ZIfDoEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_sJMJYPDoEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6AZJwPDoEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6AZJwfDoEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_sI840PDoEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sJMJYfDoEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wawFMPDoEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6AhFkPDoEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6AhFkfDoEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_wajQ4PDoEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wawFMfDoEeCxrPjksdBlsg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2mCKz6iyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2mCK0KiyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2mCK0aiyEeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2mCK0qiyEeCw3MW-Flzemw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2mCK06iyEeCw3MW-Flzemw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2mCK1KiyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2mCK1aiyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2mCK1qiyEeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2mCK16iyEeCw3MW-Flzemw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_MvFQEKi0EeCw3MW-Flzemw" type="3015" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MvFQEqi0EeCw3MW-Flzemw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MvFQE6i0EeCw3MW-Flzemw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MvFQFKi0EeCw3MW-Flzemw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MvFQFai0EeCw3MW-Flzemw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MvFQFqi0EeCw3MW-Flzemw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MvFQF6i0EeCw3MW-Flzemw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MvFQGKi0EeCw3MW-Flzemw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_0yAIkO6TEeCttc32wS_Cjw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_0e_tAO6TEeCttc32wS_Cjw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0yAIke6TEeCttc32wS_Cjw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_MvFQGai0EeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MvFQGqi0EeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MvFQG6i0EeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MvFQHKi0EeCw3MW-Flzemw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_MufaMKi0EeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MvFQEai0EeCw3MW-Flzemw" x="235" y="-10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yRSC0O6UEeCttc32wS_Cjw" type="3032" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yRSp4O6UEeCttc32wS_Cjw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yRTQ8O6UEeCttc32wS_Cjw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yRTQ8e6UEeCttc32wS_Cjw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yRTQ8u6UEeCttc32wS_Cjw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yRTQ8-6UEeCttc32wS_Cjw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yRTQ9O6UEeCttc32wS_Cjw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yRSC0e6UEeCttc32wS_Cjw" x="60" y="-19"/>
+ </children>
+ <element xmi:type="uml:Class" href="alflibrary.uml#_2lSj4KiyEeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2mCKwaiyEeCw3MW-Flzemw" x="370" y="305" width="266" height="96"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3piPIKiyEeCw3MW-Flzemw" type="2008" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3piPIqiyEeCw3MW-Flzemw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3piPI6iyEeCw3MW-Flzemw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3piPJKiyEeCw3MW-Flzemw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3piPJaiyEeCw3MW-Flzemw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3piPJqiyEeCw3MW-Flzemw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3piPJ6iyEeCw3MW-Flzemw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3piPKKiyEeCw3MW-Flzemw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3piPKaiyEeCw3MW-Flzemw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3piPKqiyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3piPK6iyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3piPLKiyEeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3piPLaiyEeCw3MW-Flzemw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3piPLqiyEeCw3MW-Flzemw" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_D7XvsPDqEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bCSWAPDsEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bCS9EPDsEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_D7JtQPDqEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_D7XvsfDqEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_H4tvAPDqEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bCnGIPDsEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bCnGIfDsEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_H4a0EPDqEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_H4tvAfDqEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_OhkSUPDqEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bCvpAPDsEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bCwQEPDsEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_OhRXYPDqEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OhkSUfDqEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_VTrfUPDqEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bC5aAPDsEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bC6BEPDsEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_VTbnsPDqEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VTrfUfDqEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XnUV4PDqEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bDHccPDsEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bDHccfDsEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_Xm-XoPDqEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XnUV4fDqEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_eEQkIPDqEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bDRNcPDsEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bDRNcfDsEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_eD7M8PDqEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eEQkIfDqEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jRVF8PDqEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bDYiMPDsEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bDYiMfDsEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_jRFOUPDqEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jRVF8fDqEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_oLsuMPDqEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bDeo0PDsEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bDeo0fDsEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_oLZMMPDqEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oLsuMfDqEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_rypmwPDqEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bDkvcPDsEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bDkvcfDsEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_ryZIEPDqEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_rypmwfDqEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wrDgIPDqEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bDq2EPDsEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bDq2EfDsEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_wqzBcPDqEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wrDgIfDqEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_29VWgPDqEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bDw8sPDsEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bDw8sfDsEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_29MMkPDqEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_29VWgfDqEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9QVloPDqEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bD3DUPDsEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bD3DUfDsEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_9P4SoPDqEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9QVlofDqEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_B0rTgPDrEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bD9J8PDsEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bD9J8fDsEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_B0XxgPDrEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_B0rTgfDrEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GcdW8PDrEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bEDQkPDsEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bEDQkfDsEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_GcEVYPDrEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GcdW8fDrEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_L1Sc0PDrEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bEJXMPDsEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bEJXMfDsEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_L1ClMPDrEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_L1Sc0fDrEeCxrPjksdBlsg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3piPL6iyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3piPMKiyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3piPMaiyEeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3piPMqiyEeCw3MW-Flzemw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3piPM6iyEeCw3MW-Flzemw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3piPNKiyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3piPNaiyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3piPNqiyEeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3piPN6iyEeCw3MW-Flzemw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Oba2EKi0EeCw3MW-Flzemw" type="3015" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Oba2Eqi0EeCw3MW-Flzemw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Oba2E6i0EeCw3MW-Flzemw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Oba2FKi0EeCw3MW-Flzemw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Oba2Fai0EeCw3MW-Flzemw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Oba2Fqi0EeCw3MW-Flzemw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Oba2F6i0EeCw3MW-Flzemw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Oba2GKi0EeCw3MW-Flzemw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_5P7scO6TEeCttc32wS_Cjw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_4ttJIO6TEeCttc32wS_Cjw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5P7sce6TEeCttc32wS_Cjw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Oba2Gai0EeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Oba2Gqi0EeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Oba2G6i0EeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Oba2HKi0EeCw3MW-Flzemw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_Oa0ZIKi0EeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Oba2Eai0EeCw3MW-Flzemw" x="193" y="-10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0fgN4O6UEeCttc32wS_Cjw" type="3032" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0fg08O6UEeCttc32wS_Cjw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0fg08e6UEeCttc32wS_Cjw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0fhcAO6UEeCttc32wS_Cjw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0fhcAe6UEeCttc32wS_Cjw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0fhcAu6UEeCttc32wS_Cjw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0fhcA-6UEeCttc32wS_Cjw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0fgN4e6UEeCttc32wS_Cjw" x="23" y="-19"/>
+ </children>
+ <element xmi:type="uml:Class" href="alflibrary.uml#_3o7yMKiyEeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3piPIaiyEeCw3MW-Flzemw" x="700" y="304" width="224" height="257"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8SEggKiyEeCw3MW-Flzemw" type="2008" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8SEggqiyEeCw3MW-Flzemw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8SEgg6iyEeCw3MW-Flzemw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8SEghKiyEeCw3MW-Flzemw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8SEghaiyEeCw3MW-Flzemw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8SEghqiyEeCw3MW-Flzemw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8SEgh6iyEeCw3MW-Flzemw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8SEgiKiyEeCw3MW-Flzemw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8SEgiaiyEeCw3MW-Flzemw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8SEgiqiyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8SEgi6iyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8SEgjKiyEeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8SEgjaiyEeCw3MW-Flzemw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8SEgjqiyEeCw3MW-Flzemw" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_uv_PsPDsEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DzmaIPDyEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DznBMPDyEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_uvvYEPDsEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uv_PsfDsEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_y_FtYPDsEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D0B38PDyEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D0B38fDyEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_y--YoPDsEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y_FtYfDsEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3-eYgPDsEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D0S9sPDyEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D0S9sfDyEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_3-PH8PDsEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3-eYgfDsEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-rqCMPDsEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D0dVwPDyEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D0dVwfDyEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_-rZjgPDsEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-rqCMfDsEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_INoHsPDtEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D0nt0PDyEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D0oU4PDyEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_INUlsPDtEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_INoHsfDtEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_M2ABAPDtEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZgyxQPDwEeCxrPjksdBlsg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZgyxQfDwEeCxrPjksdBlsg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZgyxQvDwEeCxrPjksdBlsg" key="StereotypeList" value="Standard::Destroy"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZgyxQ_DwEeCxrPjksdBlsg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZgyxRPDwEeCxrPjksdBlsg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZgyxRfDwEeCxrPjksdBlsg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D0ys8PDyEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D0ys8fDyEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_M1zzwPDtEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M2ABAfDtEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Pu_nYPDtEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D08d8PDyEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D09FAPDyEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_PuvvwPDtEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Pu_nYfDtEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TxiPwPDtEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D1HdEPDyEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D1HdEfDyEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_TxYewPDtEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TxiPwfDtEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Y7lSwPDtEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D1ROEPDyEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D1R1IPDyEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_Y7X3YPDtEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Y7lSwfDtEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_fdgHoPDtEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D1kJAPDyEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D1kwEPDyEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_fdQQAPDtEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fdgHofDtEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ka4AkPDtEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IWl5oPDxEeCxrPjksdBlsg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IWl5ofDxEeCxrPjksdBlsg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IWl5ovDxEeCxrPjksdBlsg" key="StereotypeList" value="Standard::Create"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IWmgsPDxEeCxrPjksdBlsg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IWmgsfDxEeCxrPjksdBlsg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IWmgsvDxEeCxrPjksdBlsg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D1vIIPDyEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D1vIIfDyEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_kapXEPDtEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ka4AkfDtEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_skJ00PDtEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D15gMPDyEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D16HQPDyEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_sj1EsPDtEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_skJ00fDtEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w8QdgPDtEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D2D4QPDyEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D2D4QfDyEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_w7_XwPDtEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w8QdgfDtEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1lCmgPDtEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D2OQUPDyEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D2OQUfDyEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_1k3AUPDtEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1lCmgfDtEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9YBaoPDtEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D2YoYPDyEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D2YoYfDyEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_9X3CkPDtEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9YBaofDtEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BYwsMPDuEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D2jAcPDyEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D2jAcfDyEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_BYgNgPDuEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BYwsMfDuEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_HFvdIPDuEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D2tYgPDyEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D2tYgfDyEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_HFdJQPDuEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_HFvdIfDuEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_MIpWUPDuEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D23JgPDyEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D23wkPDyEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_MIZesPDuEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MIpWUfDuEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tRY40PDuEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D3BhkPDyEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D3CIoPDyEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_tRLdcPDuEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tRY40fDuEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__nOyQPDvEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D3L5oPDyEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D3MgsPDyEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#__m_hsPDvEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__nOyQfDvEeCxrPjksdBlsg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8SEgj6iyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8SEgkKiyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8SEgkaiyEeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8SEgkqiyEeCw3MW-Flzemw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8SEgk6iyEeCw3MW-Flzemw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8SEglKiyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8SEglaiyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8SEglqiyEeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8SEgl6iyEeCw3MW-Flzemw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_PhwMAKi0EeCw3MW-Flzemw" type="3015" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PhwMAqi0EeCw3MW-Flzemw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PhwMA6i0EeCw3MW-Flzemw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PhwMBKi0EeCw3MW-Flzemw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PhwMBai0EeCw3MW-Flzemw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PhwMBqi0EeCw3MW-Flzemw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PhwMB6i0EeCw3MW-Flzemw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_PhwMCKi0EeCw3MW-Flzemw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_BMJ8IO6UEeCttc32wS_Cjw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_AYPL4O6UEeCttc32wS_Cjw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BMJ8Ie6UEeCttc32wS_Cjw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PhwMCai0EeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PhwMCqi0EeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PhwMC6i0EeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PhwMDKi0EeCw3MW-Flzemw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_PhJvEKi0EeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PhwMAai0EeCw3MW-Flzemw" x="290" y="-10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Ew1foO6bEeCttc32wS_Cjw" type="3032" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ew2GsO6bEeCttc32wS_Cjw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ew2Gse6bEeCttc32wS_Cjw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ew2twO6bEeCttc32wS_Cjw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ew2twe6bEeCttc32wS_Cjw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ew2twu6bEeCttc32wS_Cjw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ew2tw-6bEeCttc32wS_Cjw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ew1foe6bEeCttc32wS_Cjw" x="55" y="-19"/>
+ </children>
+ <element xmi:type="uml:Class" href="alflibrary.uml#_8ReqoKiyEeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8SEggaiyEeCw3MW-Flzemw" x="-20" y="540" width="341" height="326"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__f3SMKiyEeCw3MW-Flzemw" type="2008" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__f3SMqiyEeCw3MW-Flzemw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__f3SM6iyEeCw3MW-Flzemw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__f3SNKiyEeCw3MW-Flzemw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__f3SNaiyEeCw3MW-Flzemw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__f3SNqiyEeCw3MW-Flzemw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__f3SN6iyEeCw3MW-Flzemw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="__f3SOKiyEeCw3MW-Flzemw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__f3SOaiyEeCw3MW-Flzemw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__f3SOqiyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__f3SO6iyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__f3SPKiyEeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__f3SPaiyEeCw3MW-Flzemw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__f3SPqiyEeCw3MW-Flzemw" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_nevygPDzEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DU5AsPD5EeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DU5nwPD5EeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_neWw8PDzEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nevygfDzEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_q8cocPDzEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DVJfYPD5EeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DVJfYfD5EeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_q8HRQPDzEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_q8cocfDzEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_vaReoPDzEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DVT3cPD5EeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DVUegPD5EeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_vZ6SQPDzEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vaReofDzEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0MepYPDzEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DVdBYPD5EeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DVdocPD5EeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_0MFn0PDzEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0MepYfDzEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3-Zb0PDzEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DVjvEPD5EeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DVkWIPD5EeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_399W8PDzEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3-Zb0fDzEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8Gi88PDzEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hXmGsPD2EeCxrPjksdBlsg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hXmtwPD2EeCxrPjksdBlsg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hXmtwfD2EeCxrPjksdBlsg" key="StereotypeList" value="Standard::Destroy"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hXmtwvD2EeCxrPjksdBlsg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hXmtw_D2EeCxrPjksdBlsg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hXmtxPD2EeCxrPjksdBlsg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DVqcwPD5EeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DVqcwfD5EeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_8GKicPDzEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8Gi88fDzEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_B3r1IPD0EeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DVxKcPD5EeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DVxKcfD5EeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_B3XsEPD0EeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_B3r1IfD0EeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FaRLEPD0EeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DV34IPD5EeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DV4fMPD5EeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_FZ5XoPD0EeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FaRLEfD0EeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_IrpcQPD0EeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DWIW0PD5EeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DWIW0fD5EeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_IrPzoPD0EeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IrpcQfD0EeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Mrc5sPD0EeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DWOdcPD5EeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DWPEgPD5EeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_MrEfMPD0EeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Mrc5sfD0EeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QgbAIPD0EeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KOb9UPD3EeCxrPjksdBlsg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KOb9UfD3EeCxrPjksdBlsg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KOb9UvD3EeCxrPjksdBlsg" key="StereotypeList" value="Standard::Create"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KOb9U_D3EeCxrPjksdBlsg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KOb9VPD3EeCxrPjksdBlsg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KOb9VfD3EeCxrPjksdBlsg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DWVLIPD5EeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DWVLIfD5EeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_QgIsQPD0EeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QgbAIfD0EeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_VPfXUPD0EeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DWb40PD5EeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DWb40fD5EeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_VPL1UPD0EeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VPfXUfD0EeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_YXPycPD0EeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DWh_cPD5EeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DWimgPD5EeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_YW7pYPD0EeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YXPycfD0EeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_fDbWkPD0EeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DWpUMPD5EeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DWp7QPD5EeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_fDHNgPD0EeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fDbWkfD0EeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jC6q8PD0EeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DWzFMPD5EeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DWzFMfD5EeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_jCi3gPD0EeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jC6q8fD0EeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_moayAPD0EeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DW5L0PD5EeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DW5y4PD5EeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_moH3EPD0EeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_moayAfD0EeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_r3MkAPD0EeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DW_5gPD5EeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DXAgkPD5EeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_r26QIPD0EeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_r3MkAfD0EeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yxe1kPD0EeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DXGnMPD5EeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DXGnMfD5EeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_yxI3UPD0EeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yxe1kfD0EeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_47mOcPD0EeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DXNU4PD5EeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DXNU4fD5EeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_47SFYPD0EeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_47mOcfD0EeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9INY0PD0EeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DXUCkPD5EeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DXUCkfD5EeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_9H7E8PD0EeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9IN_4PD0EeCxrPjksdBlsg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="__f3SP6iyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__f3SQKiyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__f3SQaiyEeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__f3SQqiyEeCw3MW-Flzemw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__f3SQ6iyEeCw3MW-Flzemw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__f3SRKiyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__f3SRaiyEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__f3SRqiyEeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__f3SR6iyEeCw3MW-Flzemw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QgMKMKi0EeCw3MW-Flzemw" type="3015" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QgMKMqi0EeCw3MW-Flzemw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QgMKM6i0EeCw3MW-Flzemw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QgMKNKi0EeCw3MW-Flzemw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QgMKNai0EeCw3MW-Flzemw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QgMKNqi0EeCw3MW-Flzemw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QgMKN6i0EeCw3MW-Flzemw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QgMKOKi0EeCw3MW-Flzemw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_Fvkc8O6UEeCttc32wS_Cjw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_Ff5pQO6UEeCttc32wS_Cjw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Fvkc8e6UEeCttc32wS_Cjw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QgMKOai0EeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QgMKOqi0EeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QgMKO6i0EeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QgMKPKi0EeCw3MW-Flzemw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_QfltQKi0EeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QgMKMai0EeCw3MW-Flzemw" x="230" y="-10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_G_Zo8O6bEeCttc32wS_Cjw" type="3032" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G_aQAO6bEeCttc32wS_Cjw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G_aQAe6bEeCttc32wS_Cjw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G_a3EO6bEeCttc32wS_Cjw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G_a3Ee6bEeCttc32wS_Cjw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G_a3Eu6bEeCttc32wS_Cjw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G_a3E-6bEeCttc32wS_Cjw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_G_Zo8e6bEeCttc32wS_Cjw" x="85" y="-19"/>
+ </children>
+ <element xmi:type="uml:Class" href="alflibrary.uml#__fQ1QKiyEeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__f3SMaiyEeCw3MW-Flzemw" x="370" y="535" width="266" height="331"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BCEEwKizEeCw3MW-Flzemw" type="2008" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BCEEwqizEeCw3MW-Flzemw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BCEEw6izEeCw3MW-Flzemw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BCEExKizEeCw3MW-Flzemw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BCEExaizEeCw3MW-Flzemw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BCEExqizEeCw3MW-Flzemw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BCEEx6izEeCw3MW-Flzemw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BCEEyKizEeCw3MW-Flzemw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BCEEyaizEeCw3MW-Flzemw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BCEEyqizEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BCEEy6izEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BCEEzKizEeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BCEEzaizEeCw3MW-Flzemw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BCEEzqizEeCw3MW-Flzemw" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_ZwOlUPD5EeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sMkIUPD6EeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sMkvYPD6EeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_ZwCYEPD5EeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZwOlUfD5EeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_k9sjUPD5EeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__cDRcPD5EeCxrPjksdBlsg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__cDRcfD5EeCxrPjksdBlsg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__cDRcvD5EeCxrPjksdBlsg" key="StereotypeList" value="Standard::Create"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__cDRc_D5EeCxrPjksdBlsg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__cDRdPD5EeCxrPjksdBlsg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__cDRdfD5EeCxrPjksdBlsg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sM-_EPD6EeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sM-_EfD6EeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_k9dSwPD5EeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_k9sjUfD5EeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_p2gsYPD5EeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Y9j80PD6EeCxrPjksdBlsg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Y9j80fD6EeCxrPjksdBlsg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Y9j80vD6EeCxrPjksdBlsg" key="StereotypeList" value="Standard::Destroy"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Y9j80_D6EeCxrPjksdBlsg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Y9j81PD6EeCxrPjksdBlsg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Y9j81fD6EeCxrPjksdBlsg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sNMacPD6EeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sNMacfD6EeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_p2PmoPD5EeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_p2gsYfD5EeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ra7FcPD5EeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sNYAoPD6EeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sNYAofD6EeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_ra0XwPD5EeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ra7FcfD5EeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uybz0PD5EeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sNhxoPD6EeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sNiYsPD6EeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_uyKHAPD5EeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uybz0fD5EeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_zOQe4PD5EeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sNtX0PD6EeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sNtX0fD6EeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_zN-LAPD5EeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zOQe4fD5EeCxrPjksdBlsg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BCEEz6izEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BCEE0KizEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BCEE0aizEeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BCEE0qizEeCw3MW-Flzemw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BCEE06izEeCw3MW-Flzemw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BCEE1KizEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BCEE1aizEeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BCEE1qizEeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BCEE16izEeCw3MW-Flzemw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_RUMaAKi0EeCw3MW-Flzemw" type="3015" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RUWLAKi0EeCw3MW-Flzemw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RUWLAai0EeCw3MW-Flzemw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RUWLAqi0EeCw3MW-Flzemw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RUWLA6i0EeCw3MW-Flzemw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RUWLBKi0EeCw3MW-Flzemw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RUWLBai0EeCw3MW-Flzemw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RUWLBqi0EeCw3MW-Flzemw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_IZ4HEO6UEeCttc32wS_Cjw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_IFS-MO6UEeCttc32wS_Cjw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IZ4HEe6UEeCttc32wS_Cjw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RUWLB6i0EeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RUWLCKi0EeCw3MW-Flzemw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RUWLCai0EeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RUWLCqi0EeCw3MW-Flzemw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_RTmkIKi0EeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RUMaAai0EeCw3MW-Flzemw" x="190" y="-10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_JBte8O6bEeCttc32wS_Cjw" type="3032" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JBuGAO6bEeCttc32wS_Cjw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JBuGAe6bEeCttc32wS_Cjw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JButEO6bEeCttc32wS_Cjw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JButEe6bEeCttc32wS_Cjw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JButEu6bEeCttc32wS_Cjw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JButE-6bEeCttc32wS_Cjw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JBte8e6bEeCttc32wS_Cjw" x="60" y="-19"/>
+ </children>
+ <element xmi:type="uml:Class" href="alflibrary.uml#_BBdn0KizEeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BCEEwaizEeCw3MW-Flzemw" x="700" y="750" width="221" height="116"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_c6bPcO6TEeCttc32wS_Cjw" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_c6b2gO6TEeCttc32wS_Cjw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_c6b2ge6TEeCttc32wS_Cjw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_c6b2gu6TEeCttc32wS_Cjw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_c6b2g-6TEeCttc32wS_Cjw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_c6b2hO6TEeCttc32wS_Cjw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_c6b2he6TEeCttc32wS_Cjw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_c6cdkO6TEeCttc32wS_Cjw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_c6cdke6TEeCttc32wS_Cjw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_c6cdku6TEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_c6cdk-6TEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_c6cdlO6TEeCttc32wS_Cjw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c6cdle6TEeCttc32wS_Cjw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_c6cdlu6TEeCttc32wS_Cjw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_c6cdl-6TEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_c6cdmO6TEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_c6cdme6TEeCttc32wS_Cjw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c6cdmu6TEeCttc32wS_Cjw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_c6cdm-6TEeCttc32wS_Cjw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_c6cdnO6TEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_c6cdne6TEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_c6cdnu6TEeCttc32wS_Cjw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c6cdn-6TEeCttc32wS_Cjw"/>
+ </children>
+ <element xmi:type="uml:Class" href="alflibrary.uml#_c6L-4O6TEeCttc32wS_Cjw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c6bPce6TEeCttc32wS_Cjw" x="-20" y="215" width="336" height="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_VRocoO6UEeCttc32wS_Cjw" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VRpDsO6UEeCttc32wS_Cjw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VRpDse6UEeCttc32wS_Cjw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VRpDsu6UEeCttc32wS_Cjw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VRpDs-6UEeCttc32wS_Cjw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VRpDtO6UEeCttc32wS_Cjw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VRpDte6UEeCttc32wS_Cjw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VRpqwO6UEeCttc32wS_Cjw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VRpqwe6UEeCttc32wS_Cjw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_VRpqwu6UEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_VRpqw-6UEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_VRpqxO6UEeCttc32wS_Cjw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VRpqxe6UEeCttc32wS_Cjw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VRpqxu6UEeCttc32wS_Cjw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_VRpqx-6UEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_VRpqyO6UEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_VRpqye6UEeCttc32wS_Cjw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VRpqyu6UEeCttc32wS_Cjw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VRpqy-6UEeCttc32wS_Cjw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_VRpqzO6UEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_VRpqze6UEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_VRpqzu6UEeCttc32wS_Cjw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VRpqz-6UEeCttc32wS_Cjw"/>
+ </children>
+ <element xmi:type="uml:Class" href="alflibrary.uml#_VRTFcO6UEeCttc32wS_Cjw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VRocoe6UEeCttc32wS_Cjw" x="370" y="215" width="271" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_rojbUO6UEeCttc32wS_Cjw" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rokCYO6UEeCttc32wS_Cjw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rokCYe6UEeCttc32wS_Cjw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rokCYu6UEeCttc32wS_Cjw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rokCY-6UEeCttc32wS_Cjw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rokpcO6UEeCttc32wS_Cjw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rokpce6UEeCttc32wS_Cjw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_rokpcu6UEeCttc32wS_Cjw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_rokpc-6UEeCttc32wS_Cjw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_rokpdO6UEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_rokpde6UEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_rokpdu6UEeCttc32wS_Cjw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rokpd-6UEeCttc32wS_Cjw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_rokpeO6UEeCttc32wS_Cjw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_rokpee6UEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_rokpeu6UEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_rokpe-6UEeCttc32wS_Cjw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rokpfO6UEeCttc32wS_Cjw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_rokpfe6UEeCttc32wS_Cjw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_rokpfu6UEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_rokpf-6UEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_rokpgO6UEeCttc32wS_Cjw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rokpge6UEeCttc32wS_Cjw"/>
+ </children>
+ <element xmi:type="uml:Class" href="alflibrary.uml#_roQgYO6UEeCttc32wS_Cjw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rojbUe6UEeCttc32wS_Cjw" x="698" y="215" width="226" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_o10mQO6aEeCttc32wS_Cjw" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_o11NUO6aEeCttc32wS_Cjw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o11NUe6aEeCttc32wS_Cjw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_o11NUu6aEeCttc32wS_Cjw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o11NU-6aEeCttc32wS_Cjw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_o110YO6aEeCttc32wS_Cjw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o110Ye6aEeCttc32wS_Cjw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_o110Yu6aEeCttc32wS_Cjw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_o110Y-6aEeCttc32wS_Cjw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_o110ZO6aEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_o110Ze6aEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_o110Zu6aEeCttc32wS_Cjw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_o110Z-6aEeCttc32wS_Cjw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_o110aO6aEeCttc32wS_Cjw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_o110ae6aEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_o110au6aEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_o110a-6aEeCttc32wS_Cjw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_o110bO6aEeCttc32wS_Cjw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_o110be6aEeCttc32wS_Cjw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_o110bu6aEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_o110b-6aEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_o110cO6aEeCttc32wS_Cjw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_o110ce6aEeCttc32wS_Cjw"/>
+ </children>
+ <element xmi:type="uml:Class" href="alflibrary.uml#_o1eoAO6aEeCttc32wS_Cjw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_o10mQe6aEeCttc32wS_Cjw" x="-20" y="460" width="336" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yn5kUO6aEeCttc32wS_Cjw" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yn6LYO6aEeCttc32wS_Cjw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yn6LYe6aEeCttc32wS_Cjw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yn6LYu6aEeCttc32wS_Cjw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yn6LY-6aEeCttc32wS_Cjw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yn6LZO6aEeCttc32wS_Cjw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yn6LZe6aEeCttc32wS_Cjw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yn6LZu6aEeCttc32wS_Cjw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_yn6LZ-6aEeCttc32wS_Cjw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_yn6LaO6aEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yn6Lae6aEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yn6Lau6aEeCttc32wS_Cjw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yn6La-6aEeCttc32wS_Cjw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_yn6LbO6aEeCttc32wS_Cjw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_yn6Lbe6aEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yn6Lbu6aEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yn6Lb-6aEeCttc32wS_Cjw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yn6LcO6aEeCttc32wS_Cjw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_yn6ycO6aEeCttc32wS_Cjw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_yn6yce6aEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yn6ycu6aEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yn6yc-6aEeCttc32wS_Cjw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yn6ydO6aEeCttc32wS_Cjw"/>
+ </children>
+ <element xmi:type="uml:Class" href="alflibrary.uml#_ynnQcO6aEeCttc32wS_Cjw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yn5kUe6aEeCttc32wS_Cjw" x="370" y="450" width="266" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2HvIQO6aEeCttc32wS_Cjw" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2HvvUO6aEeCttc32wS_Cjw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2HvvUe6aEeCttc32wS_Cjw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2HwWYO6aEeCttc32wS_Cjw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2HwWYe6aEeCttc32wS_Cjw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2HwWYu6aEeCttc32wS_Cjw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2HwWY-6aEeCttc32wS_Cjw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2HwWZO6aEeCttc32wS_Cjw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2HwWZe6aEeCttc32wS_Cjw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2HwWZu6aEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2HwWZ-6aEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2HwWaO6aEeCttc32wS_Cjw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2HwWae6aEeCttc32wS_Cjw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2HwWau6aEeCttc32wS_Cjw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2HwWa-6aEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2HwWbO6aEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2HwWbe6aEeCttc32wS_Cjw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2HwWbu6aEeCttc32wS_Cjw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2HwWb-6aEeCttc32wS_Cjw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2HwWcO6aEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2HwWce6aEeCttc32wS_Cjw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2HwWcu6aEeCttc32wS_Cjw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2HwWc-6aEeCttc32wS_Cjw"/>
+ </children>
+ <element xmi:type="uml:Class" href="alflibrary.uml#_2HR1QO6aEeCttc32wS_Cjw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2HvIQe6aEeCttc32wS_Cjw" x="700" y="635" width="226" height="41"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_M7lF4aiyEeCw3MW-Flzemw"/>
+ <element xmi:type="uml:Package" href="alflibrary.uml#_dfOPMH1AEeCKy5kSqd4eVw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_wXZJAO6UEeCttc32wS_Cjw" type="4022" source="_wW6A0O6UEeCttc32wS_Cjw" target="_c6bPcO6TEeCttc32wS_Cjw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_wXZJAe6UEeCttc32wS_Cjw" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wXZJAu6UEeCttc32wS_Cjw" points="[0, -10, -83, 51]$[0, -41, -83, 20]$[0, -41, -83, 20]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5CVg4PD6EeCxrPjksdBlsg" id="(0.2857142857142857,0.075)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_yRyZIO6UEeCttc32wS_Cjw" type="4022" source="_yRSC0O6UEeCttc32wS_Cjw" target="_VRocoO6UEeCttc32wS_Cjw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_yRyZIe6UEeCttc32wS_Cjw" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_yRyZIu6UEeCttc32wS_Cjw" points="[5, -10, -25, 51]$[20, -40, -10, 21]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zu4pQO6UEeCttc32wS_Cjw" id="(0.25461254612546125,0.8780487804878049)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_0f2MIO6UEeCttc32wS_Cjw" type="4022" source="_0fgN4O6UEeCttc32wS_Cjw" target="_rojbUO6UEeCttc32wS_Cjw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_0f2MIe6UEeCttc32wS_Cjw" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0f2MIu6UEeCttc32wS_Cjw" points="[10, 3, -658, -222]$[607, 205, -61, -20]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1tYWQO6UEeCttc32wS_Cjw" id="(0.1592920353982301,0.975609756097561)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_6_E5YO6UEeCttc32wS_Cjw" type="4002" source="_swclsKiyEeCw3MW-Flzemw" target="_c6bPcO6TEeCttc32wS_Cjw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_6_FgcO6UEeCttc32wS_Cjw" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6_Fgce6UEeCttc32wS_Cjw" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_6_E5Ye6UEeCttc32wS_Cjw" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="alflibrary.uml#_6-3eAO6UEeCttc32wS_Cjw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_6_E5Yu6UEeCttc32wS_Cjw" points="[1, -6, 0, 59]$[18, -56, 17, 9]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6_XNQO6UEeCttc32wS_Cjw" id="(0.6691176470588235,0.06)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6_XNQe6UEeCttc32wS_Cjw" id="(0.6524822695035462,0.775)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_71u0kO6UEeCttc32wS_Cjw" type="4002" source="_2mCKwKiyEeCw3MW-Flzemw" target="_VRocoO6UEeCttc32wS_Cjw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_71vboO6UEeCttc32wS_Cjw" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_71vboe6UEeCttc32wS_Cjw" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_71u0ke6UEeCttc32wS_Cjw" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="alflibrary.uml#_71inUO6UEeCttc32wS_Cjw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_71u0ku6UEeCttc32wS_Cjw" points="[0, -3, 0, 58]$[13, -52, 13, 9]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_72DksO6UEeCttc32wS_Cjw" id="(0.6470588235294118,0.03)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_72ELwO6UEeCttc32wS_Cjw" id="(0.624113475177305,0.7804878048780488)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8jG38O6UEeCttc32wS_Cjw" type="4002" source="_3piPIKiyEeCw3MW-Flzemw" target="_rojbUO6UEeCttc32wS_Cjw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8jHfAO6UEeCttc32wS_Cjw" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8jHfAe6UEeCttc32wS_Cjw" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8jG38e6UEeCttc32wS_Cjw" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="alflibrary.uml#_8i2ZQO6UEeCttc32wS_Cjw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8jG38u6UEeCttc32wS_Cjw" points="[-2, -4, 0, 57]$[9, -52, 11, 9]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8jWIgO6UEeCttc32wS_Cjw" id="(0.6567164179104478,0.04)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8jWIge6UEeCttc32wS_Cjw" id="(0.6102941176470589,0.7804878048780488)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9uV8AO6UEeCttc32wS_Cjw" type="4015" source="_c6bPcO6TEeCttc32wS_Cjw" target="_VSY_0KiyEeCw3MW-Flzemw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9uWjEO6UEeCttc32wS_Cjw" type="6023">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9uWjEe6UEeCttc32wS_Cjw" x="17" y="-5"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9uWjEu6UEeCttc32wS_Cjw" type="6036">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9uWjE-6UEeCttc32wS_Cjw" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_9uV8Ae6UEeCttc32wS_Cjw" fontName="Segoe UI"/>
+ <element xmi:type="uml:TemplateBinding" href="alflibrary.uml#_9uMLAO6UEeCttc32wS_Cjw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9uV8Au6UEeCttc32wS_Cjw" points="[0, -3, -242, 50]$[0, -23, -242, 30]$[238, -23, -4, 30]$[238, -50, -4, 3]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9uklgO6UEeCttc32wS_Cjw" id="(0.5319148936170213,0.075)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9ulMkO6UEeCttc32wS_Cjw" id="(0.25722543352601157,0.9902597402597403)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_RnjI0O6aEeCttc32wS_Cjw" type="4015" source="_VRocoO6UEeCttc32wS_Cjw" target="_VSY_0KiyEeCw3MW-Flzemw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_RnkW8O6aEeCttc32wS_Cjw" type="6023">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RnkW8e6aEeCttc32wS_Cjw" x="-8" y="25"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RnkW8u6aEeCttc32wS_Cjw" type="6036">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RnkW8-6aEeCttc32wS_Cjw" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_RnjI0e6aEeCttc32wS_Cjw" fontName="Segoe UI"/>
+ <element xmi:type="uml:TemplateBinding" href="alflibrary.uml#_RnI5IO6aEeCttc32wS_Cjw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RnjI0u6aEeCttc32wS_Cjw" points="[-3, -8, 0, 99]$[-7, -88, -4, 19]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Rn_0wO6aEeCttc32wS_Cjw" id="(0.5,0.04878048780487805)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Rn_0we6aEeCttc32wS_Cjw" id="(0.523121387283237,0.9902597402597403)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_c3fzEO6aEeCttc32wS_Cjw" type="4015" source="_rojbUO6UEeCttc32wS_Cjw" target="_VSY_0KiyEeCw3MW-Flzemw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_c3gaIO6aEeCttc32wS_Cjw" type="6023">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_c3gaIe6aEeCttc32wS_Cjw" x="-32" y="10"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_c3gaIu6aEeCttc32wS_Cjw" type="6036">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_c3gaI-6aEeCttc32wS_Cjw" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_c3fzEe6aEeCttc32wS_Cjw" fontName="Segoe UI"/>
+ <element xmi:type="uml:TemplateBinding" href="alflibrary.uml#_c3J00O6aEeCttc32wS_Cjw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_c3fzEu6aEeCttc32wS_Cjw" points="[0, -6, 196, 49]$[0, -26, 196, 29]$[-196, -26, 0, 29]$[-196, -53, 0, 2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_c31KQO6aEeCttc32wS_Cjw" id="(0.47794117647058826,0.14634146341463414)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_c31KQe6aEeCttc32wS_Cjw" id="(0.7947976878612717,0.9935064935064936)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Ex8S4O6bEeCttc32wS_Cjw" type="4022" source="_Ew1foO6bEeCttc32wS_Cjw" target="_o10mQO6aEeCttc32wS_Cjw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Ex8S4e6bEeCttc32wS_Cjw" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Ex8S4u6bEeCttc32wS_Cjw" points="[5, 10, -238, -440]$[231, 430, -12, -20]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GANc0O6bEeCttc32wS_Cjw" id="(0.19900497512437812,0.9024390243902439)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_G_4KEO6bEeCttc32wS_Cjw" type="4022" source="_G_Zo8O6bEeCttc32wS_Cjw" target="_yn5kUO6aEeCttc32wS_Cjw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_G_4KEe6bEeCttc32wS_Cjw" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_G_4KEu6bEeCttc32wS_Cjw" points="[10, 10, -443, -440]$[432, 430, -21, -20]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IIKn0O6bEeCttc32wS_Cjw" id="(0.35714285714285715,0.975609756097561)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_JCOcUO6bEeCttc32wS_Cjw" type="4022" source="_JBte8O6bEeCttc32wS_Cjw" target="_2HvIQO6aEeCttc32wS_Cjw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_JCOcUe6bEeCttc32wS_Cjw" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_JCOcUu6bEeCttc32wS_Cjw" points="[10, 6, -655, -444]$[635, 430, -30, -20]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KSHW4O6bEeCttc32wS_Cjw" id="(0.30973451327433627,0.9512195121951219)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Np81YO6bEeCttc32wS_Cjw" type="4002" source="_8SEggKiyEeCw3MW-Flzemw" target="_o10mQO6aEeCttc32wS_Cjw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Np9ccO6bEeCttc32wS_Cjw" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Np9cce6bEeCttc32wS_Cjw" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Np81Ye6bEeCttc32wS_Cjw" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="alflibrary.uml#_NpvaAO6bEeCttc32wS_Cjw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Np81Yu6bEeCttc32wS_Cjw" points="[3, -8, 0, 63]$[10, -62, 7, 9]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NqQXYO6bEeCttc32wS_Cjw" id="(0.5615384615384615,0.08)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NqQXYe6bEeCttc32wS_Cjw" id="(0.5661764705882353,0.7804878048780488)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_O8pMUO6bEeCttc32wS_Cjw" type="4002" source="__f3SMKiyEeCw3MW-Flzemw" target="_yn5kUO6aEeCttc32wS_Cjw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O8pzYO6bEeCttc32wS_Cjw" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O8pzYe6bEeCttc32wS_Cjw" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_O8pMUe6bEeCttc32wS_Cjw" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="alflibrary.uml#_O8ai0O6bEeCttc32wS_Cjw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_O8pMUu6bEeCttc32wS_Cjw" points="[7, -8, 9, 75]$[7, -62, 9, 21]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O8_KkO6bEeCttc32wS_Cjw" id="(0.7255639097744361,0.01812688821752266)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LyHrsPD5EeCxrPjksdBlsg" id="(0.7481203007518797,0.8780487804878049)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_QNESYO6bEeCttc32wS_Cjw" type="4002" source="_BCEEwKizEeCw3MW-Flzemw" target="_2HvIQO6aEeCttc32wS_Cjw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QNE5cO6bEeCttc32wS_Cjw" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QNE5ce6bEeCttc32wS_Cjw" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_QNESYe6bEeCttc32wS_Cjw" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="alflibrary.uml#_QM1B0O6bEeCttc32wS_Cjw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QNESYu6bEeCttc32wS_Cjw" points="[-8, -6, 0, 64]$[-1, -60, 7, 10]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QNYbcO6bEeCttc32wS_Cjw" id="(0.751131221719457,0.0457516339869281)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QNYbce6bEeCttc32wS_Cjw" id="(0.7389380530973452,0.7804878048780488)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_VdfDIO6bEeCttc32wS_Cjw" type="4015" source="_o10mQO6aEeCttc32wS_Cjw" target="_swclsKiyEeCw3MW-Flzemw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_VdgRQO6bEeCttc32wS_Cjw" type="6023">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VdgRQe6bEeCttc32wS_Cjw" x="2" y="50"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VdgRQu6bEeCttc32wS_Cjw" type="6036">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VdgRQ-6bEeCttc32wS_Cjw" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_VdfDIe6bEeCttc32wS_Cjw" fontName="Segoe UI"/>
+ <element xmi:type="uml:TemplateBinding" href="alflibrary.uml#_VdMvQO6bEeCttc32wS_Cjw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_VdfDIu6bEeCttc32wS_Cjw" points="[4, -10, 0, 57]$[3, -55, -1, 12]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VdzzQO6bEeCttc32wS_Cjw" id="(0.4632352941176471,0.24390243902439024)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VdzzQe6bEeCttc32wS_Cjw" id="(0.49264705882352944,0.88)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WW9BwO6bEeCttc32wS_Cjw" type="4015" source="_yn5kUO6aEeCttc32wS_Cjw" target="_2mCKwKiyEeCw3MW-Flzemw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_WW9o0O6bEeCttc32wS_Cjw" type="6023">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WW9o0e6bEeCttc32wS_Cjw" x="2" y="46"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WW9o0u6bEeCttc32wS_Cjw" type="6036">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WW9o0-6bEeCttc32wS_Cjw" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_WW9Bwe6bEeCttc32wS_Cjw" fontName="Segoe UI"/>
+ <element xmi:type="uml:TemplateBinding" href="alflibrary.uml#_WWrU8O6bEeCttc32wS_Cjw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WW9Bwu6bEeCttc32wS_Cjw" points="[2, -20, 0, 57]$[2, -65, 0, 12]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WXQjwO6bEeCttc32wS_Cjw" id="(0.5147058823529411,0.88)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XFC20O6bEeCttc32wS_Cjw" type="4015" source="_2HvIQO6aEeCttc32wS_Cjw" target="_3piPIKiyEeCw3MW-Flzemw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_XFDd4O6bEeCttc32wS_Cjw" type="6023">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XFDd4e6bEeCttc32wS_Cjw" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XFDd4u6bEeCttc32wS_Cjw" type="6036">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XFDd4-6bEeCttc32wS_Cjw" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_XFC20e6bEeCttc32wS_Cjw" fontName="Segoe UI"/>
+ <element xmi:type="uml:TemplateBinding" href="alflibrary.uml#_XEyYIO6bEeCttc32wS_Cjw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XFC20u6bEeCttc32wS_Cjw" points="[-2, -9, 0, 63]$[-3, -55, -1, 17]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XFVxwO6bEeCttc32wS_Cjw" id="(0.4961832061068702,0.21951219512195122)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XFVxwe6bEeCttc32wS_Cjw" id="(0.4925373134328358,0.83)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_VP4UsPD7EeCxrPjksdBlsg" type="PapyrusUMLClassDiagram" name="Map" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_V7v8MPD7EeCxrPjksdBlsg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V7wjQPD7EeCxrPjksdBlsg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V7wjQfD7EeCxrPjksdBlsg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V7xKUPD7EeCxrPjksdBlsg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V7xKUfD7EeCxrPjksdBlsg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V7xKUvD7EeCxrPjksdBlsg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V7xKU_D7EeCxrPjksdBlsg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_V7xKVPD7EeCxrPjksdBlsg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_V7xxYPD7EeCxrPjksdBlsg" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_V7xxYfD7EeCxrPjksdBlsg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_V7xxYvD7EeCxrPjksdBlsg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_V7xxY_D7EeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V7xxZPD7EeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_V7xxZfD7EeCxrPjksdBlsg" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_HkyTwPMWEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AJB6kPMbEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AJB6kfMbEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_HkbucPMWEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_HkyTwfMWEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_J06jUPMWEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Nk-CoPMYEeCxrPjksdBlsg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Nk-CofMYEeCxrPjksdBlsg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Nk-CovMYEeCxrPjksdBlsg" key="StereotypeList" value="Standard::Destroy"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Nk-Co_MYEeCxrPjksdBlsg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Nk-CpPMYEeCxrPjksdBlsg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Nk-CpfMYEeCxrPjksdBlsg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AJvsQPMbEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AJvsQfMbEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_J0hhwPMWEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_J06jUfMWEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Mvdo4PMWEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AJ8gkPMbEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AJ8gkfMbEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_MvEnUPMWEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Mvdo4fMWEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WjrU8PMWEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AKJ78PMbEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AKJ78fMbEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_WjS6cPMWEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WjrU8fMWEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_rHsyoPMWEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AKWwQPMbEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AKXXUPMbEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_rHfXQPMWEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_rHsyofMWEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xiJtkPMWEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AKkLoPMbEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AKkLofMbEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_xhvd4PMWEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xiJtkfMWEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2eqq4PMWEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AKxnAPMbEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AKxnAfMbEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_2eS3cPMWEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2eqq4fMWEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6-MKMPMWEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ALDT0PMbEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ALDT0fMbEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_697rgPMWEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6-MKMfMWEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GFt4QPMXEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ALQvMPMbEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ALQvMfMbEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_GFZvMPMXEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GFt4QfMXEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hr_QsPMXEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ALdjgPMbEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ALdjgfMbEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_hr2GwPMXEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hr_QsfMXEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_koGcgPMXEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IJmwsPMZEeCxrPjksdBlsg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IJmwsfMZEeCxrPjksdBlsg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IJmwsvMZEeCxrPjksdBlsg" key="StereotypeList" value="Standard::Create"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IJmws_MZEeCxrPjksdBlsg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IJmwtPMZEeCxrPjksdBlsg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IJmwtfMZEeCxrPjksdBlsg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ALqX0PMbEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ALq-4PMbEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_knv3MPMXEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_koGcgfMXEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_r1LHMPMXEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AMNKYPMbEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AMNKYfMbEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_r0vCUPMXEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_r1LHMfMXEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_vaC8IPMXEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AL_vAPMbEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AMAWEPMbEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_vZxPUPMXEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vaC8IfMXEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0josIPMXEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AMZ-sPMbEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AMZ-sfMbEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_0jXmYPMXEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0josIfMXEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3r6EoPMXEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AMmzAPMbEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AMmzAfMbEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_3rpl8PMXEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3r6rsPMXEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7OKqcPMXEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AMznUPMbEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AM0OYPMbEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_7N_EQPMXEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7OKqcfMXEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__5uaoPMXEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ANBCsPMbEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ANBCsfMbEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#__5CeIPMXEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__5uaofMXEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_C-vDwPMYEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ANN3APMbEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ANN3AfMbEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_C-aToPMYEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_C-vDwfMYEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_IpK3APMYEeCxrPjksdBlsg" type="3013" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ANarUPMbEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ANarUfMbEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="2826"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="alflibrary.uml#_IpBGAPMYEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IpK3AfMYEeCxrPjksdBlsg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_V7xxZvD7EeCxrPjksdBlsg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_V7xxZ_D7EeCxrPjksdBlsg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_V7xxaPD7EeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V7xxafD7EeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_V7xxavD7EeCxrPjksdBlsg" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_V7xxa_D7EeCxrPjksdBlsg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_V7xxbPD7EeCxrPjksdBlsg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_V7xxbfD7EeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V7xxbvD7EeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_W518IPD7EeCxrPjksdBlsg" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_W518IvD7EeCxrPjksdBlsg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W518I_D7EeCxrPjksdBlsg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_W518JPD7EeCxrPjksdBlsg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W52jMPD7EeCxrPjksdBlsg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_W52jMfD7EeCxrPjksdBlsg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W52jMvD7EeCxrPjksdBlsg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_W52jM_D7EeCxrPjksdBlsg" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_YIKwcPD7EeCxrPjksdBlsg" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_LzL9oKi2EeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YIKwcfD7EeCxrPjksdBlsg" x="24" y="17"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_YhAuQPD7EeCxrPjksdBlsg" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_WO68sKi2EeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YhAuQfD7EeCxrPjksdBlsg" x="19" y="24"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_W52jNPD7EeCxrPjksdBlsg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_W52jNfD7EeCxrPjksdBlsg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_W52jNvD7EeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_W52jN_D7EeCxrPjksdBlsg"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_JEimEKi2EeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_W518IfD7EeCxrPjksdBlsg" x="270" y="-10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_mf8HQPD7EeCxrPjksdBlsg" type="3032" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mf9VYPD7EeCxrPjksdBlsg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mf9VYfD7EeCxrPjksdBlsg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mf9VYvD7EeCxrPjksdBlsg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mf9VY_D7EeCxrPjksdBlsg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mf98cPD7EeCxrPjksdBlsg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mf98cfD7EeCxrPjksdBlsg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mf8HQfD7EeCxrPjksdBlsg" x="-19" y="45"/>
+ </children>
+ <element xmi:type="uml:Class" href="alflibrary.uml#_slMQkKi1EeCw3MW-Flzemw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V7v8MfD7EeCxrPjksdBlsg" x="300" y="135" width="261" height="316"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ihcRYPD7EeCxrPjksdBlsg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ihcRYvD7EeCxrPjksdBlsg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ihc4cPD7EeCxrPjksdBlsg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ihc4cfD7EeCxrPjksdBlsg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ihc4cvD7EeCxrPjksdBlsg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ihc4c_D7EeCxrPjksdBlsg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ihc4dPD7EeCxrPjksdBlsg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ihc4dfD7EeCxrPjksdBlsg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ihc4dvD7EeCxrPjksdBlsg" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_n_XSoPD7EeCxrPjksdBlsg" type="3012" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:Property" href="alflibrary.uml#_n_MTgPD7EeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_n_XSofD7EeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_pRsdMPD7EeCxrPjksdBlsg" type="3012" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:Property" href="alflibrary.uml#_pRVQ0PD7EeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pRsdMfD7EeCxrPjksdBlsg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ihc4d_D7EeCxrPjksdBlsg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ihc4ePD7EeCxrPjksdBlsg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ihc4efD7EeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ihc4evD7EeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ihc4e_D7EeCxrPjksdBlsg" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ihc4fPD7EeCxrPjksdBlsg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ihdfgPD7EeCxrPjksdBlsg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ihdfgfD7EeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ihdfgvD7EeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ihdfg_D7EeCxrPjksdBlsg" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ihdfhPD7EeCxrPjksdBlsg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ihdfhfD7EeCxrPjksdBlsg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ihdfhvD7EeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ihdfh_D7EeCxrPjksdBlsg"/>
+ </children>
+ <element xmi:type="uml:Class" href="alflibrary.uml#_ihFFAPD7EeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ihcRYfD7EeCxrPjksdBlsg" x="100" y="150" width="138" height="60"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_VP4UsfD7EeCxrPjksdBlsg"/>
+ <element xmi:type="uml:Package" href="alflibrary.uml#_dfOPMH1AEeCKy5kSqd4eVw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_mge50PD7EeCxrPjksdBlsg" type="4022" source="_mf8HQPD7EeCxrPjksdBlsg" target="_ihcRYPD7EeCxrPjksdBlsg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_mge50fD7EeCxrPjksdBlsg" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mge50vD7EeCxrPjksdBlsg" points="[9, 10, -150, -160]$[130, 140, -29, -30]"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_QLJBYPMdEeCxrPjksdBlsg" type="CompositeStructure" name="SequenceFunctions" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_RsOZoPMdEeCxrPjksdBlsg" type="2064" fontName="Segoe UI" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RsOZovMdEeCxrPjksdBlsg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RsPAsPMdEeCxrPjksdBlsg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RsPAsfMdEeCxrPjksdBlsg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RsPAsvMdEeCxrPjksdBlsg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RsPAs_MdEeCxrPjksdBlsg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RsPAtPMdEeCxrPjksdBlsg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RsPAtfMdEeCxrPjksdBlsg" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_RsPAtvMdEeCxrPjksdBlsg" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RsPAt_MdEeCxrPjksdBlsg" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RsPAuPMdEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_VacX0PMdEeCxrPjksdBlsg" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Vac-4PMdEeCxrPjksdBlsg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vac-4fMdEeCxrPjksdBlsg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Vac-4vMdEeCxrPjksdBlsg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vadl8PMdEeCxrPjksdBlsg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Vadl8fMdEeCxrPjksdBlsg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vadl8vMdEeCxrPjksdBlsg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Vadl8_MdEeCxrPjksdBlsg" type="6033">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qK_1oPMdEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EPc2APMeEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="6432"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Vadl9PMdEeCxrPjksdBlsg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Vadl9fMdEeCxrPjksdBlsg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Vadl9vMdEeCxrPjksdBlsg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_VaJc4PMdEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VacX0fMdEeCxrPjksdBlsg" x="-10" y="56" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dkb9wPMdEeCxrPjksdBlsg" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dkck0PMdEeCxrPjksdBlsg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dkck0fMdEeCxrPjksdBlsg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dkck0vMdEeCxrPjksdBlsg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dkck0_MdEeCxrPjksdBlsg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dkck1PMdEeCxrPjksdBlsg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dkck1fMdEeCxrPjksdBlsg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dkck1vMdEeCxrPjksdBlsg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dkck1_MdEeCxrPjksdBlsg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dkdL4PMdEeCxrPjksdBlsg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dkdL4fMdEeCxrPjksdBlsg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_dj7ncPMdEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dkb9wfMdEeCxrPjksdBlsg" x="184" y="56" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_Rr7esPMdEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RsOZofMdEeCxrPjksdBlsg" x="70" y="15" width="196" height="87"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wbj0wPMdEeCxrPjksdBlsg" type="2064" fontName="Segoe UI" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wbkb0PMdEeCxrPjksdBlsg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wbkb0fMdEeCxrPjksdBlsg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wblC4PMdEeCxrPjksdBlsg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wblC4fMdEeCxrPjksdBlsg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wblC4vMdEeCxrPjksdBlsg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wblC4_MdEeCxrPjksdBlsg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wblC5PMdEeCxrPjksdBlsg" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wblC5fMdEeCxrPjksdBlsg" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wblC5vMdEeCxrPjksdBlsg" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wblC5_MdEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1htPMPMdEeCxrPjksdBlsg" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1ht2QPMdEeCxrPjksdBlsg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1ht2QfMdEeCxrPjksdBlsg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1hudUPMdEeCxrPjksdBlsg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1hudUfMdEeCxrPjksdBlsg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1hudUvMdEeCxrPjksdBlsg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1hudU_MdEeCxrPjksdBlsg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1hudVPMdEeCxrPjksdBlsg" type="6033">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_71L_cPMdEeCxrPjksdBlsg" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="___OW8PMdEeCxrPjksdBlsg" key="CustomAppearance_MaskValue" value="6400"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1hudVfMdEeCxrPjksdBlsg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1hudVvMdEeCxrPjksdBlsg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1hudV_MdEeCxrPjksdBlsg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_1hfMwPMdEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1htPMfMdEeCxrPjksdBlsg" x="-10" y="51" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SpYwAPMeEeCxrPjksdBlsg" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SpZXEPMeEeCxrPjksdBlsg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SpZXEfMeEeCxrPjksdBlsg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SpZXEvMeEeCxrPjksdBlsg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SpZXE_MeEeCxrPjksdBlsg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SpZXFPMeEeCxrPjksdBlsg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SpZXFfMeEeCxrPjksdBlsg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SpZXFvMeEeCxrPjksdBlsg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SpZ-IPMeEeCxrPjksdBlsg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SpZ-IfMeEeCxrPjksdBlsg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SpZ-IvMeEeCxrPjksdBlsg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_SpHqQPMeEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SpYwAfMeEeCxrPjksdBlsg" x="-10" y="83" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WNnEsPMeEeCxrPjksdBlsg" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WNnrwPMeEeCxrPjksdBlsg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WNnrwfMeEeCxrPjksdBlsg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WNnrwvMeEeCxrPjksdBlsg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WNnrw_MeEeCxrPjksdBlsg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WNnrxPMeEeCxrPjksdBlsg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WNnrxfMeEeCxrPjksdBlsg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WNnrxvMeEeCxrPjksdBlsg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WNnrx_MeEeCxrPjksdBlsg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WNnryPMeEeCxrPjksdBlsg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WNoS0PMeEeCxrPjksdBlsg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_WNZCQPMeEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WNnEsfMeEeCxrPjksdBlsg" x="186" y="68" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_wbUkMPMdEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wbj0wfMdEeCxrPjksdBlsg" x="70" y="116" width="196" height="111"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hfTbYPMeEeCxrPjksdBlsg" type="2064" fontName="Segoe UI" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hfUCcPMeEeCxrPjksdBlsg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hfUCcfMeEeCxrPjksdBlsg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hfUCcvMeEeCxrPjksdBlsg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hfUCc_MeEeCxrPjksdBlsg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hfUCdPMeEeCxrPjksdBlsg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hfUCdfMeEeCxrPjksdBlsg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hfUCdvMeEeCxrPjksdBlsg" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hfUpgPMeEeCxrPjksdBlsg" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hfUpgfMeEeCxrPjksdBlsg" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hfUpgvMeEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_l3qiwPMeEeCxrPjksdBlsg" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_l3rJ0PMeEeCxrPjksdBlsg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_l3rJ0fMeEeCxrPjksdBlsg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_l3rJ0vMeEeCxrPjksdBlsg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_l3rJ0_MeEeCxrPjksdBlsg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_l3rJ1PMeEeCxrPjksdBlsg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_l3rw4PMeEeCxrPjksdBlsg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_l3rw4fMeEeCxrPjksdBlsg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_l3rw4vMeEeCxrPjksdBlsg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_l3rw4_MeEeCxrPjksdBlsg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_l3rw5PMeEeCxrPjksdBlsg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_l3ZdAPMeEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l3qiwfMeEeCxrPjksdBlsg" x="-10" y="48" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tRNjMPMeEeCxrPjksdBlsg" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tROKQPMeEeCxrPjksdBlsg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tROKQfMeEeCxrPjksdBlsg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tROKQvMeEeCxrPjksdBlsg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tROKQ_MeEeCxrPjksdBlsg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tROKRPMeEeCxrPjksdBlsg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tROKRfMeEeCxrPjksdBlsg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tROKRvMeEeCxrPjksdBlsg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tROKR_MeEeCxrPjksdBlsg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tROKSPMeEeCxrPjksdBlsg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tROKSfMeEeCxrPjksdBlsg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_tQ-SoPMeEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tRNjMfMeEeCxrPjksdBlsg" x="-10" y="80" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_vjHUYPMeEeCxrPjksdBlsg" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vjH7cPMeEeCxrPjksdBlsg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vjH7cfMeEeCxrPjksdBlsg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vjH7cvMeEeCxrPjksdBlsg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vjH7c_MeEeCxrPjksdBlsg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vjH7dPMeEeCxrPjksdBlsg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vjH7dfMeEeCxrPjksdBlsg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vjH7dvMeEeCxrPjksdBlsg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vjH7d_MeEeCxrPjksdBlsg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vjH7ePMeEeCxrPjksdBlsg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vjH7efMeEeCxrPjksdBlsg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_vi2OoPMeEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vjHUYfMeEeCxrPjksdBlsg" x="186" y="67" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_hfFY8PMeEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hfTbYfMeEeCxrPjksdBlsg" x="70" y="241" width="196" height="111"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6IQHEPMeEeCxrPjksdBlsg" type="2064" fontName="Segoe UI" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6IQuIPMeEeCxrPjksdBlsg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6IRVMPMeEeCxrPjksdBlsg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6IRVMfMeEeCxrPjksdBlsg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6IRVMvMeEeCxrPjksdBlsg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6IRVM_MeEeCxrPjksdBlsg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6IR8QPMeEeCxrPjksdBlsg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6IR8QfMeEeCxrPjksdBlsg" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_6IR8QvMeEeCxrPjksdBlsg" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_6IR8Q_MeEeCxrPjksdBlsg" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6IR8RPMeEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9eTc4PMeEeCxrPjksdBlsg" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9eUrAPMeEeCxrPjksdBlsg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9eUrAfMeEeCxrPjksdBlsg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9eUrAvMeEeCxrPjksdBlsg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9eUrA_MeEeCxrPjksdBlsg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9eUrBPMeEeCxrPjksdBlsg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9eVSEPMeEeCxrPjksdBlsg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9eVSEfMeEeCxrPjksdBlsg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9eVSEvMeEeCxrPjksdBlsg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9eVSE_MeEeCxrPjksdBlsg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9eVSFPMeEeCxrPjksdBlsg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_9d_64PMeEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9eTc4fMeEeCxrPjksdBlsg" x="-10" y="50" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_B7D8EPMfEeCxrPjksdBlsg" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_B7EjIPMfEeCxrPjksdBlsg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_B7EjIfMfEeCxrPjksdBlsg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_B7EjIvMfEeCxrPjksdBlsg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_B7EjI_MfEeCxrPjksdBlsg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_B7EjJPMfEeCxrPjksdBlsg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_B7EjJfMfEeCxrPjksdBlsg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_B7EjJvMfEeCxrPjksdBlsg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_B7EjJ_MfEeCxrPjksdBlsg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_B7EjKPMfEeCxrPjksdBlsg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_B7EjKfMfEeCxrPjksdBlsg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_B60EcPMfEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_B7D8EfMfEeCxrPjksdBlsg" x="-10" y="85" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_EOsyoPMfEeCxrPjksdBlsg" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EOtZsPMfEeCxrPjksdBlsg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EOtZsfMfEeCxrPjksdBlsg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EOtZsvMfEeCxrPjksdBlsg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EOtZs_MfEeCxrPjksdBlsg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EOtZtPMfEeCxrPjksdBlsg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EOuAwPMfEeCxrPjksdBlsg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_EOuAwfMfEeCxrPjksdBlsg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EOuAwvMfEeCxrPjksdBlsg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_EOuAw_MfEeCxrPjksdBlsg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EOuAxPMfEeCxrPjksdBlsg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_EOc7APMfEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EOsyofMfEeCxrPjksdBlsg" x="186" y="71" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_6H_BUPMeEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6IQHEfMeEeCxrPjksdBlsg" x="70" y="365" width="196" height="116"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Kr7UwPMfEeCxrPjksdBlsg" type="2064" fontName="Segoe UI" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Kr8i4PMfEeCxrPjksdBlsg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Kr8i4fMfEeCxrPjksdBlsg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Kr8i4vMfEeCxrPjksdBlsg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Kr8i4_MfEeCxrPjksdBlsg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Kr8i5PMfEeCxrPjksdBlsg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Kr8i5fMfEeCxrPjksdBlsg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Kr8i5vMfEeCxrPjksdBlsg" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Kr8i5_MfEeCxrPjksdBlsg" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Kr8i6PMfEeCxrPjksdBlsg" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Kr8i6fMfEeCxrPjksdBlsg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_OJPJIPMfEeCxrPjksdBlsg" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OJQXQPMfEeCxrPjksdBlsg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OJQXQfMfEeCxrPjksdBlsg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OJQXQvMfEeCxrPjksdBlsg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OJQXQ_MfEeCxrPjksdBlsg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OJQXRPMfEeCxrPjksdBlsg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OJQXRfMfEeCxrPjksdBlsg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_OJQXRvMfEeCxrPjksdBlsg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OJQXR_MfEeCxrPjksdBlsg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_OJQ-UPMfEeCxrPjksdBlsg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OJQ-UfMfEeCxrPjksdBlsg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_OI7nIPMfEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OJPJIfMfEeCxrPjksdBlsg" x="-10" y="55" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_77ab4PMgEeC_DqPayyxqsA" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_77cREPMgEeC_DqPayyxqsA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_77c4IPMgEeC_DqPayyxqsA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_77c4IfMgEeC_DqPayyxqsA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_77c4IvMgEeC_DqPayyxqsA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_77dfMPMgEeC_DqPayyxqsA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_77dfMfMgEeC_DqPayyxqsA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_77dfMvMgEeC_DqPayyxqsA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_77dfM_MgEeC_DqPayyxqsA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_77eGQPMgEeC_DqPayyxqsA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_77eGQfMgEeC_DqPayyxqsA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_76OwIPMgEeC_DqPayyxqsA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_77ab4fMgEeC_DqPayyxqsA" x="186" y="55" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_KrugcPMfEeCxrPjksdBlsg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Kr7UwfMfEeCxrPjksdBlsg" x="70" y="495" width="196" height="86"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FtuDcPMhEeC_DqPayyxqsA" type="2064" fontName="Segoe UI" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FtvRkPMhEeC_DqPayyxqsA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FtvRkfMhEeC_DqPayyxqsA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FtvRkvMhEeC_DqPayyxqsA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FtvRk_MhEeC_DqPayyxqsA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FtvRlPMhEeC_DqPayyxqsA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FtvRlfMhEeC_DqPayyxqsA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FtvRlvMhEeC_DqPayyxqsA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Ftv4oPMhEeC_DqPayyxqsA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Ftv4ofMhEeC_DqPayyxqsA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ftv4ovMhEeC_DqPayyxqsA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_I9Tk4PMhEeC_DqPayyxqsA" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I9UL8PMhEeC_DqPayyxqsA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I9UL8fMhEeC_DqPayyxqsA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I9UL8vMhEeC_DqPayyxqsA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I9UL8_MhEeC_DqPayyxqsA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I9UzAPMhEeC_DqPayyxqsA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I9UzAfMhEeC_DqPayyxqsA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_I9UzAvMhEeC_DqPayyxqsA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_I9UzA_MhEeC_DqPayyxqsA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_I9UzBPMhEeC_DqPayyxqsA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_I9UzBfMhEeC_DqPayyxqsA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_I88_kPMhEeC_DqPayyxqsA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I9Tk4fMhEeC_DqPayyxqsA" x="-10" y="50" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NuNvIPMhEeC_DqPayyxqsA" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NuOWMPMhEeC_DqPayyxqsA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NuOWMfMhEeC_DqPayyxqsA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NuOWMvMhEeC_DqPayyxqsA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NuOWM_MhEeC_DqPayyxqsA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NuOWNPMhEeC_DqPayyxqsA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NuOWNfMhEeC_DqPayyxqsA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NuOWNvMhEeC_DqPayyxqsA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NuOWN_MhEeC_DqPayyxqsA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NuOWOPMhEeC_DqPayyxqsA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NuOWOfMhEeC_DqPayyxqsA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_Nt1UoPMhEeC_DqPayyxqsA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NuNvIfMhEeC_DqPayyxqsA" x="186" y="51" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_FtNtIPMhEeC_DqPayyxqsA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FtuqgPMhEeC_DqPayyxqsA" x="70" y="595" width="196" height="86"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_VRsHoPMhEeC_DqPayyxqsA" type="2064" fontName="Segoe UI" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VRsusPMhEeC_DqPayyxqsA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VRsusfMhEeC_DqPayyxqsA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VRsusvMhEeC_DqPayyxqsA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VRsus_MhEeC_DqPayyxqsA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VRsutPMhEeC_DqPayyxqsA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VRsutfMhEeC_DqPayyxqsA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VRsutvMhEeC_DqPayyxqsA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VRsut_MhEeC_DqPayyxqsA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_VRsuuPMhEeC_DqPayyxqsA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VRsuufMhEeC_DqPayyxqsA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XlQ3UPMiEeC_DqPayyxqsA" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XlReYPMiEeC_DqPayyxqsA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XlReYfMiEeC_DqPayyxqsA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XlReYvMiEeC_DqPayyxqsA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XlReY_MiEeC_DqPayyxqsA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XlSFcPMiEeC_DqPayyxqsA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XlSFcfMiEeC_DqPayyxqsA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XlSFcvMiEeC_DqPayyxqsA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XlSFc_MiEeC_DqPayyxqsA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XlSFdPMiEeC_DqPayyxqsA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XlSFdfMiEeC_DqPayyxqsA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_Xk31wPMiEeC_DqPayyxqsA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XlQ3UfMiEeC_DqPayyxqsA" x="-10" y="50" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_bps9IPMiEeC_DqPayyxqsA" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bptkMPMiEeC_DqPayyxqsA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bptkMfMiEeC_DqPayyxqsA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bptkMvMiEeC_DqPayyxqsA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bptkM_MiEeC_DqPayyxqsA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bptkNPMiEeC_DqPayyxqsA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bptkNfMiEeC_DqPayyxqsA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bptkNvMiEeC_DqPayyxqsA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bpuLQPMiEeC_DqPayyxqsA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bpuLQfMiEeC_DqPayyxqsA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bpuLQvMiEeC_DqPayyxqsA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_bpRfUPMiEeC_DqPayyxqsA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bps9IfMiEeC_DqPayyxqsA" x="-10" y="80" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gHsLYPMiEeC_DqPayyxqsA" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gHtZgPMiEeC_DqPayyxqsA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gHtZgfMiEeC_DqPayyxqsA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gHtZgvMiEeC_DqPayyxqsA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gHtZg_MiEeC_DqPayyxqsA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gHtZhPMiEeC_DqPayyxqsA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gHtZhfMiEeC_DqPayyxqsA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gHtZhvMiEeC_DqPayyxqsA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gHtZh_MiEeC_DqPayyxqsA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gHuAkPMiEeC_DqPayyxqsA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gHuAkfMiEeC_DqPayyxqsA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_gHYpYPMiEeC_DqPayyxqsA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gHsLYfMiEeC_DqPayyxqsA" x="186" y="68" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_VRTGEPMhEeC_DqPayyxqsA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VRsHofMhEeC_DqPayyxqsA" x="415" y="15" width="196" height="111"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_la4jUPMiEeC_DqPayyxqsA" type="2064" fontName="Segoe UI" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_la5KYPMiEeC_DqPayyxqsA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_la5KYfMiEeC_DqPayyxqsA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_la5KYvMiEeC_DqPayyxqsA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_la5KY_MiEeC_DqPayyxqsA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_la5KZPMiEeC_DqPayyxqsA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_la5KZfMiEeC_DqPayyxqsA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_la5KZvMiEeC_DqPayyxqsA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_la5KZ_MiEeC_DqPayyxqsA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_la5KaPMiEeC_DqPayyxqsA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_la5KafMiEeC_DqPayyxqsA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2Z9TkPMiEeC_DqPayyxqsA" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2Z96oPMiEeC_DqPayyxqsA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2Z96ofMiEeC_DqPayyxqsA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2Z96ovMiEeC_DqPayyxqsA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2Z96o_MiEeC_DqPayyxqsA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2Z96pPMiEeC_DqPayyxqsA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2Z96pfMiEeC_DqPayyxqsA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2Z96pvMiEeC_DqPayyxqsA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2Z-hsPMiEeC_DqPayyxqsA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2Z-hsfMiEeC_DqPayyxqsA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2Z-hsvMiEeC_DqPayyxqsA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_2Zq_sPMiEeC_DqPayyxqsA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2Z9TkfMiEeC_DqPayyxqsA" x="-10" y="49" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6ttnwPMiEeC_DqPayyxqsA" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6tuO0PMiEeC_DqPayyxqsA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6tuO0fMiEeC_DqPayyxqsA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6tuO0vMiEeC_DqPayyxqsA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6tuO0_MiEeC_DqPayyxqsA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6tuO1PMiEeC_DqPayyxqsA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6tuO1fMiEeC_DqPayyxqsA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6tuO1vMiEeC_DqPayyxqsA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6tu14PMiEeC_DqPayyxqsA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6tu14fMiEeC_DqPayyxqsA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6tu14vMiEeC_DqPayyxqsA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_6tas0PMiEeC_DqPayyxqsA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6ttnwfMiEeC_DqPayyxqsA" x="-10" y="85" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-FIPgPMiEeC_DqPayyxqsA" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-FI2kPMiEeC_DqPayyxqsA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-FI2kfMiEeC_DqPayyxqsA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-FI2kvMiEeC_DqPayyxqsA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-FJdoPMiEeC_DqPayyxqsA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-FJdofMiEeC_DqPayyxqsA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-FJdovMiEeC_DqPayyxqsA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-FJdo_MiEeC_DqPayyxqsA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-FJdpPMiEeC_DqPayyxqsA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-FJdpfMiEeC_DqPayyxqsA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-FJdpvMiEeC_DqPayyxqsA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_-Et_0PMiEeC_DqPayyxqsA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-FIPgfMiEeC_DqPayyxqsA" x="186" y="70" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_lagv4PMiEeC_DqPayyxqsA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_la4jUfMiEeC_DqPayyxqsA" x="415" y="135" width="196" height="111"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CiS-YPMjEeC_DqPayyxqsA" type="2064" fontName="Segoe UI" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CiTlcPMjEeC_DqPayyxqsA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CiTlcfMjEeC_DqPayyxqsA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CiTlcvMjEeC_DqPayyxqsA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CiTlc_MjEeC_DqPayyxqsA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CiTldPMjEeC_DqPayyxqsA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CiTldfMjEeC_DqPayyxqsA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CiTldvMjEeC_DqPayyxqsA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CiTld_MjEeC_DqPayyxqsA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CiTlePMjEeC_DqPayyxqsA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CiTlefMjEeC_DqPayyxqsA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FjllIPMjEeC_DqPayyxqsA" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FjmMMPMjEeC_DqPayyxqsA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FjmMMfMjEeC_DqPayyxqsA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FjmzQPMjEeC_DqPayyxqsA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FjmzQfMjEeC_DqPayyxqsA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FjmzQvMjEeC_DqPayyxqsA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FjmzQ_MjEeC_DqPayyxqsA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FjmzRPMjEeC_DqPayyxqsA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FjmzRfMjEeC_DqPayyxqsA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FjmzRvMjEeC_DqPayyxqsA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FjnaUPMjEeC_DqPayyxqsA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_FjQN8PMjEeC_DqPayyxqsA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FjllIfMjEeC_DqPayyxqsA" x="-10" y="54" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ITbPgPMjEeC_DqPayyxqsA" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ITb2kPMjEeC_DqPayyxqsA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ITb2kfMjEeC_DqPayyxqsA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ITcdoPMjEeC_DqPayyxqsA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ITcdofMjEeC_DqPayyxqsA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ITcdovMjEeC_DqPayyxqsA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ITcdo_MjEeC_DqPayyxqsA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ITcdpPMjEeC_DqPayyxqsA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ITcdpfMjEeC_DqPayyxqsA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ITcdpvMjEeC_DqPayyxqsA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ITcdp_MjEeC_DqPayyxqsA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_ITCN8PMjEeC_DqPayyxqsA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ITbPgfMjEeC_DqPayyxqsA" x="-10" y="82" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Nc2ncPMjEeC_DqPayyxqsA" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Nc3OgPMjEeC_DqPayyxqsA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Nc3OgfMjEeC_DqPayyxqsA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Nc3OgvMjEeC_DqPayyxqsA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Nc3Og_MjEeC_DqPayyxqsA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Nc31kPMjEeC_DqPayyxqsA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Nc31kfMjEeC_DqPayyxqsA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Nc31kvMjEeC_DqPayyxqsA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Nc31k_MjEeC_DqPayyxqsA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Nc31lPMjEeC_DqPayyxqsA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Nc31lfMjEeC_DqPayyxqsA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_NcjsgPMjEeC_DqPayyxqsA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Nc2ncfMjEeC_DqPayyxqsA" x="186" y="65" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_Ch6j4PMjEeC_DqPayyxqsA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CiS-YfMjEeC_DqPayyxqsA" x="415" y="260" width="196" height="111"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_UL55YPMjEeC_DqPayyxqsA" type="2064" fontName="Segoe UI" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UL6gcPMjEeC_DqPayyxqsA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UL6gcfMjEeC_DqPayyxqsA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UL6gcvMjEeC_DqPayyxqsA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UL6gc_MjEeC_DqPayyxqsA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UL6gdPMjEeC_DqPayyxqsA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UL7HgPMjEeC_DqPayyxqsA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UL7HgfMjEeC_DqPayyxqsA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_UL7HgvMjEeC_DqPayyxqsA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_UL7Hg_MjEeC_DqPayyxqsA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UL7HhPMjEeC_DqPayyxqsA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_X8EYUPMjEeC_DqPayyxqsA" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_X8E_YPMjEeC_DqPayyxqsA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X8E_YfMjEeC_DqPayyxqsA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_X8E_YvMjEeC_DqPayyxqsA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X8E_Y_MjEeC_DqPayyxqsA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_X8E_ZPMjEeC_DqPayyxqsA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X8E_ZfMjEeC_DqPayyxqsA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_X8FmcPMjEeC_DqPayyxqsA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_X8FmcfMjEeC_DqPayyxqsA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_X8FmcvMjEeC_DqPayyxqsA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_X8Fmc_MjEeC_DqPayyxqsA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_X7vBIPMjEeC_DqPayyxqsA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_X8EYUfMjEeC_DqPayyxqsA" x="-10" y="50" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cvTd0PMjEeC_DqPayyxqsA" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cvUE4PMjEeC_DqPayyxqsA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cvUE4fMjEeC_DqPayyxqsA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cvUE4vMjEeC_DqPayyxqsA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cvUE4_MjEeC_DqPayyxqsA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cvUE5PMjEeC_DqPayyxqsA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cvUE5fMjEeC_DqPayyxqsA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cvUE5vMjEeC_DqPayyxqsA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cvUr8PMjEeC_DqPayyxqsA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cvUr8fMjEeC_DqPayyxqsA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cvUr8vMjEeC_DqPayyxqsA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_cu-tsPMjEeC_DqPayyxqsA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cvTd0fMjEeC_DqPayyxqsA" x="-10" y="85" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_zPlM0PMjEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zPnpEPMjEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zPnpEfMjEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zPnpEvMjEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zPnpE_MjEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zPoQIPMjEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zPoQIfMjEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zPoQIvMjEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zPoQI_MjEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zPo3MPMjEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zPo3MfMjEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_zO-v4PMjEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zPlM0fMjEeCfS7qBvajEQQ" x="186" y="65" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_ULfCoPMjEeC_DqPayyxqsA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UL55YfMjEeC_DqPayyxqsA" x="415" y="385" width="196" height="111"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_EUQ10PMkEeCfS7qBvajEQQ" type="2064" fontName="Segoe UI" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EURc4PMkEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EURc4fMkEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EURc4vMkEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUSD8PMkEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUSD8fMkEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUSD8vMkEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_EUSD8_MkEeCfS7qBvajEQQ" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_EUSD9PMkEeCfS7qBvajEQQ" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_EUSD9fMkEeCfS7qBvajEQQ" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EUSD9vMkEeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_I8rycPMkEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I8sZgPMkEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I8sZgfMkEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I8sZgvMkEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I8tAkPMkEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I8tAkfMkEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I8tAkvMkEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_I8tAk_MkEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_I8tAlPMkEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_I8tAlfMkEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_I8tAlvMkEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_I8TX8PMkEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I8rycfMkEeCfS7qBvajEQQ" x="-10" y="50" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_RdPeQPMkEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RdQFUPMkEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RdQFUfMkEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RdQFUvMkEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RdQFU_MkEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RdQFVPMkEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RdQFVfMkEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RdQFVvMkEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RdQsYPMkEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RdQsYfMkEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RdQsYvMkEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_Rc-_kPMkEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RdPeQfMkEeCfS7qBvajEQQ" x="-10" y="83" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_o1ORUPMkEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_o1O4YPMkEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o1O4YfMkEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_o1PfcPMkEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o1PfcfMkEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_o1PfcvMkEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o1Pfc_MkEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_o1PfdPMkEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_o1PfdfMkEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_o1PfdvMkEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_o1Pfd_MkEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_o03sAPMkEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_o1ORUfMkEeCfS7qBvajEQQ" x="186" y="63" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_ETy7wPMkEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EUQ10fMkEeCfS7qBvajEQQ" x="415" y="510" width="196" height="111"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yMkbMPMkEeCfS7qBvajEQQ" type="2064" fontName="Segoe UI" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yMlCQPMkEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yMlCQfMkEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yMlCQvMkEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yMlCQ_MkEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yMlCRPMkEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yMlCRfMkEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yMlpUPMkEeCfS7qBvajEQQ" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_yMlpUfMkEeCfS7qBvajEQQ" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_yMlpUvMkEeCfS7qBvajEQQ" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yMlpU_MkEeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_5LUWAPMkEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5LU9EPMkEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5LU9EfMkEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5LU9EvMkEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5LU9E_MkEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5LVkIPMkEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5LVkIfMkEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5LVkIvMkEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5LVkI_MkEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5LVkJPMkEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5LVkJfMkEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_5K9JoPMkEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5LUWAfMkEeCfS7qBvajEQQ" x="-10" y="53" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-ldqgPMkEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-leRkPMkEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-leRkfMkEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-leRkvMkEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-leRk_MkEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-leRlPMkEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-leRlfMkEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-leRlvMkEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-leRl_MkEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-le4oPMkEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-le4ofMkEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_-lMkwPMkEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-ldqgfMkEeCfS7qBvajEQQ" x="186" y="56" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_yMLZoPMkEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yMkbMfMkEeCfS7qBvajEQQ" x="415" y="635" width="196" height="86"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Ib4WAPMlEeCfS7qBvajEQQ" type="2064" fontName="Segoe UI" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ib5kIPMlEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ib5kIfMlEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ib5kIvMlEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ib5kI_MlEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ib5kJPMlEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ib5kJfMlEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Ib5kJvMlEeCfS7qBvajEQQ" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Ib6LMPMlEeCfS7qBvajEQQ" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Ib6LMfMlEeCfS7qBvajEQQ" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ib6LMvMlEeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NjnE0PMlEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Njnr4PMlEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Njnr4fMlEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NjoS8PMlEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NjoS8fMlEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NjoS8vMlEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NjoS8_MlEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NjoS9PMlEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NjoS9fMlEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NjoS9vMlEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NjoS9_MlEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_NjP4cPMlEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NjnE0fMlEeCfS7qBvajEQQ" x="-10" y="50" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_r6L4UPM-EeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r6MfYPM-EeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r6MfYfM-EeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r6MfYvM-EeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r6NGcPM-EeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r6NGcfM-EeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r6NGcvM-EeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_r6NGc_M-EeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_r6NGdPM-EeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_r6NGdfM-EeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_r6NtgPM-EeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_r5xBkPM-EeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r6L4UfM-EeCfS7qBvajEQQ" x="186" y="54" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_IbpFcPMlEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ib4WAfMlEeCfS7qBvajEQQ" x="795" y="15" width="196" height="86"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6kE54PM-EeCfS7qBvajEQQ" type="2064" fontName="Segoe UI" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6kFg8PM-EeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6kFg8fM-EeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6kGIAPM-EeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6kGIAfM-EeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6kGIAvM-EeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6kGIA_M-EeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6kGIBPM-EeCfS7qBvajEQQ" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_6kGIBfM-EeCfS7qBvajEQQ" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_6kGIBvM-EeCfS7qBvajEQQ" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6kGIB_M-EeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9Pbs4PM-EeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9Pbs4vM-EeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9PcT8PM-EeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9PcT8fM-EeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9PcT8vM-EeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9PcT8_M-EeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9PcT9PM-EeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9PcT9fM-EeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9PcT9vM-EeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9PcT9_M-EeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9PcT-PM-EeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_9PKnIPM-EeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Pbs4fM-EeCfS7qBvajEQQ" x="-10" y="47" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_At8bIPM_EeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_At9CMPM_EeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_At9CMfM_EeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_At9CMvM_EeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_At9CM_M_EeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_At9CNPM_EeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_At9CNfM_EeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_At9CNvM_EeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_At9CN_M_EeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_At9pQPM_EeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_At9pQfM_EeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_AtlOwPM_EeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_At8bIfM_EeCfS7qBvajEQQ" x="-10" y="80" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_EEp4QPM_EeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EEqfUPM_EeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EEqfUfM_EeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EEqfUvM_EeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EEqfU_M_EeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EErGYPM_EeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EErGYfM_EeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_EErGYvM_EeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EErGY_M_EeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_EErGZPM_EeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EErGZfM_EeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_EEWWQPM_EeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EEp4QfM_EeCfS7qBvajEQQ" x="186" y="68" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_6jz0IPM-EeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6kE54fM-EeCfS7qBvajEQQ" x="795" y="115" width="196" height="111"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LFp10PM_EeCfS7qBvajEQQ" type="2064" fontName="Segoe UI" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LFrD8PM_EeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LFrD8fM_EeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LFrD8vM_EeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LFrD8_M_EeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LFrrAPM_EeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LFrrAfM_EeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LFrrAvM_EeCfS7qBvajEQQ" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LFrrA_M_EeCfS7qBvajEQQ" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LFrrBPM_EeCfS7qBvajEQQ" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LFrrBfM_EeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_PznZwPM_EeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PzoA0PM_EeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PzoA0fM_EeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PzoA0vM_EeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PzoA0_M_EeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PzoA1PM_EeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PzoA1fM_EeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_PzoA1vM_EeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Pzon4PM_EeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Pzon4fM_EeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Pzon4vM_EeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_PzQ0cPM_EeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PznZwfM_EeCfS7qBvajEQQ" x="-10" y="45" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SEq2YPM_EeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SErdcPM_EeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SErdcfM_EeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SErdcvM_EeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SErdc_M_EeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SErddPM_EeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SErddfM_EeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SErddvM_EeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SErdd_M_EeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SErdePM_EeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SEsEgPM_EeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_SEX7cPM_EeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SEq2YfM_EeCfS7qBvajEQQ" x="-10" y="82" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_U8btsPM_EeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U8cUwPM_EeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U8cUwfM_EeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U8cUwvM_EeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U8cUw_M_EeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U8c70PM_EeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U8c70fM_EeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_U8c70vM_EeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_U8c70_M_EeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_U8c71PM_EeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_U8c71fM_EeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_U8LPAPM_EeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U8btsfM_EeCfS7qBvajEQQ" x="186" y="68" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_LFW64PM_EeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LFp10fM_EeCfS7qBvajEQQ" x="795" y="240" width="196" height="111"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_bIVPQPM_EeCfS7qBvajEQQ" type="2064" fontName="Segoe UI" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bIV2UPM_EeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bIV2UfM_EeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bIV2UvM_EeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bIV2U_M_EeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bIV2VPM_EeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bIV2VfM_EeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bIV2VvM_EeCfS7qBvajEQQ" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_bIWdYPM_EeCfS7qBvajEQQ" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_bIWdYfM_EeCfS7qBvajEQQ" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bIWdYvM_EeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_drZo8PM_EeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_drZo8vM_EeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_draQAPM_EeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_draQAfM_EeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_draQAvM_EeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_draQA_M_EeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_draQBPM_EeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_draQBfM_EeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_draQBvM_EeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_draQB_M_EeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_draQCPM_EeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_drDDoPM_EeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_drZo8fM_EeCfS7qBvajEQQ" x="-10" y="50" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jPXn0PM_EeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jPXn0vM_EeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jPXn0_M_EeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jPYO4PM_EeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jPYO4fM_EeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jPYO4vM_EeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jPYO4_M_EeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jPYO5PM_EeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jPYO5fM_EeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jPYO5vM_EeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jPYO5_M_EeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_jPDewPM_EeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jPXn0fM_EeCfS7qBvajEQQ" x="-10" y="81" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O0nwAPNBEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_O0oXEPNBEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_O0oXEfNBEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_O0o-IPNBEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_O0o-IfNBEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_O0o-IvNBEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_O0o-I_NBEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_O0o-JPNBEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O0o-JfNBEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_O0o-JvNBEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O0o-J_NBEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_O0WqQPNBEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O0nwAfNBEeCfS7qBvajEQQ" x="186" y="64" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_bIAfIPM_EeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bIVPQfM_EeCfS7qBvajEQQ" x="795" y="365" width="196" height="111"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_X7KdwPNBEeCfS7qBvajEQQ" type="2064" fontName="Segoe UI" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_X7LE0PNBEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X7LE0fNBEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_X7LE0vNBEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X7LE0_NBEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_X7LE1PNBEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X7LE1fNBEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_X7LE1vNBEeCfS7qBvajEQQ" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_X7LE1_NBEeCfS7qBvajEQQ" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_X7Lr4PNBEeCfS7qBvajEQQ" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_X7Lr4fNBEeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_bR-BgPNBEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bR-okPNBEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bR-okfNBEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bR-okvNBEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bR_PoPNBEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bR_PofNBEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bR_PovNBEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bR_Po_NBEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bR_PpPNBEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bR_PpfNBEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bR_PpvNBEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_bRuJ4PNBEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bR-BgfNBEeCfS7qBvajEQQ" x="-10" y="46" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_eQkgoPNBEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eQlHsPNBEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eQlHsfNBEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eQluwPNBEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eQluwfNBEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eQluwvNBEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eQluw_NBEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_eQluxPNBEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eQluxfNBEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_eQluxvNBEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eQlux_NBEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_eQSMwPNBEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eQkgofNBEeCfS7qBvajEQQ" x="-10" y="80" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jGDB0PNBEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jGDo4PNBEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jGDo4fNBEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jGDo4vNBEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jGDo4_NBEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jGDo5PNBEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jGDo5fNBEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jGEP8PNBEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jGEP8fNBEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jGEP8vNBEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jGEP8_NBEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_jFzKMPNBEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jGDB0fNBEeCfS7qBvajEQQ" x="186" y="65" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_X6-QgPNBEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_X7KdwfNBEeCfS7qBvajEQQ" x="795" y="490" width="196" height="111"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_oDfzQPNBEeCfS7qBvajEQQ" type="2064" fontName="Segoe UI" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oDgaUPNBEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oDgaUfNBEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oDhBYPNBEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oDhBYfNBEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oDhBYvNBEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oDhBY_NBEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oDhBZPNBEeCfS7qBvajEQQ" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_oDhBZfNBEeCfS7qBvajEQQ" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_oDhBZvNBEeCfS7qBvajEQQ" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oDhBZ_NBEeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_pSRTgPNBEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pSR6kPNBEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pSR6kfNBEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pSR6kvNBEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pSR6k_NBEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pSShoPNBEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pSShofNBEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pSShovNBEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pSSho_NBEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pSShpPNBEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pSShpfNBEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_pSCqAPNBEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pSRTgfNBEeCfS7qBvajEQQ" x="-10" y="45" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_veQ7sPNBEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_veRiwPNBEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_veRiwfNBEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_veRiwvNBEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_veRiw_NBEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_veSJ0PNBEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_veSJ0fNBEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_veSJ0vNBEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_veSJ0_NBEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_veSJ1PNBEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_veSJ1fNBEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_vd020PNBEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_veQ7sfNBEeCfS7qBvajEQQ" x="-10" y="73" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yeXPoPNBEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yeX2sPNBEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yeX2sfNBEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yeX2svNBEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yeX2s_NBEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yeYdwPNBEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yeYdwfNBEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yeYdwvNBEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yeYdw_NBEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yeYdxPNBEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yeYdxfNBEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_yeADQPNBEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yeXPofNBEeCfS7qBvajEQQ" x="-10" y="103" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1aJrUPNBEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1aKSYPNBEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1aKSYfNBEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1aKSYvNBEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1aKSY_NBEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1aKSZPNBEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1aKSZfNBEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1aKSZvNBEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1aK5cPNBEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1aK5cfNBEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1aK5cvNBEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_1Z5zsPNBEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1aJrUfNBEeCfS7qBvajEQQ" x="186" y="73" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_oDKcEPNBEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oDfzQfNBEeCfS7qBvajEQQ" x="795" y="615" width="196" height="131"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-S7C0PNBEeCfS7qBvajEQQ" type="2064" fontName="Segoe UI" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-S8Q8PNBEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-S8Q8fNBEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-S8Q8vNBEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-S8Q8_NBEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-S8Q9PNBEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-S84APNBEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-S84AfNBEeCfS7qBvajEQQ" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-S84AvNBEeCfS7qBvajEQQ" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-S84A_NBEeCfS7qBvajEQQ" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-S84BPNBEeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GH4z8PNCEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GH5bAPNCEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GH5bAfNCEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GH5bAvNCEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GH5bA_NCEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GH6CEPNCEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GH6CEfNCEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GH6CEvNCEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GH6CE_NCEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GH6CFPNCEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GH6CFfNCEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_GHnuMPNCEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GH4z8fNCEeCfS7qBvajEQQ" x="-10" y="47" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_IZ-yYPNCEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IZ_ZcPNCEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IZ_ZcfNCEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IaAAgPNCEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IaAAgfNCEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IaAAgvNCEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IaAAg_NCEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_IaAAhPNCEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IaAAhfNCEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_IaAAhvNCEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IaAAh_NCEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_IZuTsPNCEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IZ-yYfNCEeCfS7qBvajEQQ" x="-10" y="75" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LTNpUPNCEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LTOQYPNCEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LTOQYfNCEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LTOQYvNCEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LTOQY_NCEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LTOQZPNCEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LTO3cPNCEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LTO3cfNCEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LTO3cvNCEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LTO3c_NCEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LTO3dPNCEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_LS4SIPNCEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LTNpUfNCEeCfS7qBvajEQQ" x="-10" y="105" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TMEb8PNCEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TMFDAPNCEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TMFDAfNCEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TMFDAvNCEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TMFDA_NCEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TMFDBPNCEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TMFqEPNCEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TMFqEfNCEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TMFqEvNCEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TMFqE_NCEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TMFqFPNCEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_TLzWMPNCEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TMEb8fNCEeCfS7qBvajEQQ" x="186" y="80" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_-SsZUPNBEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-S7C0fNBEeCfS7qBvajEQQ" x="1180" y="15" width="196" height="136"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZTgUQPNCEeCfS7qBvajEQQ" type="2064" fontName="Segoe UI" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZTg7UPNCEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZThiYPNCEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZThiYfNCEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZThiYvNCEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZThiY_NCEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZThiZPNCEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZThiZfNCEeCfS7qBvajEQQ" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ZThiZvNCEeCfS7qBvajEQQ" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ZThiZ_NCEeCfS7qBvajEQQ" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZThiaPNCEeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_bLAocPNCEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bLBPgPNCEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bLBPgfNCEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bLBPgvNCEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bLBPg_NCEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bLBPhPNCEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bLBPhfNCEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bLB2kPNCEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bLB2kfNCEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bLB2kvNCEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bLB2k_NCEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_bKr4UPNCEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bLAocfNCEeCfS7qBvajEQQ" x="-10" y="48" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_djsXEPNCEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_djtlMPNCEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_djtlMfNCEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_djtlMvNCEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_djtlM_NCEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_djtlNPNCEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_djtlNfNCEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_djuMQPNCEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_djuMQfNCEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_djuMQvNCEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_djuMQ_NCEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_djdGgPNCEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_djsXEfNCEeCfS7qBvajEQQ" x="-10" y="75" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_g93-8PNCEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_g94mAPNCEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_g94mAfNCEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_g94mAvNCEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_g94mA_NCEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_g94mBPNCEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_g95NEPNCEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_g95NEfNCEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_g95NEvNCEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_g95NE_NCEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_g95NFPNCEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_g9ouYPNCEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g93-8fNCEeCfS7qBvajEQQ" x="-10" y="105" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_knns0PNCEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kno68PNCEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kno68fNCEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kno68vNCEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kno68_NCEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kno69PNCEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kno69fNCEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kno69vNCEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_knpiAPNCEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_knpiAfNCEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_knpiAvNCEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_knQgcPNCEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_knns0fNCEeCfS7qBvajEQQ" x="186" y="79" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_ZTRqwPNCEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZTgUQfNCEeCfS7qBvajEQQ" x="1180" y="165" width="196" height="136"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qeYr4PNCEeCfS7qBvajEQQ" type="2064" fontName="Segoe UI" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qeZS8PNCEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qeZS8fNCEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qeZS8vNCEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qeZS8_NCEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qeZS9PNCEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qeZS9fNCEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qeZ6APNCEeCfS7qBvajEQQ" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qeZ6AfNCEeCfS7qBvajEQQ" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qeZ6AvNCEeCfS7qBvajEQQ" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qeZ6A_NCEeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_sbyzwPNCEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sbza0PNCEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sbza0fNCEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sbza0vNCEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sb0B4PNCEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sb0B4fNCEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sb0B4vNCEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_sb0B4_NCEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sb0B5PNCEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_sb0B5fNCEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sb0B5vNCEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_sbiVEPNCEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sbyzwfNCEeCfS7qBvajEQQ" x="-10" y="46" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_un3pwPNCEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_un4Q0PNCEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_un4Q0fNCEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_un4Q0vNCEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_un4Q0_NCEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_un4Q1PNCEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_un4Q1fNCEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_un4Q1vNCEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_un434PNCEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_un434fNCEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_un434vNCEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_uniSkPNCEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_un3pwfNCEeCfS7qBvajEQQ" x="-10" y="75" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yQf9UPNCEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yQf9UvNCEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yQgkYPNCEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yQgkYfNCEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yQgkYvNCEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yQgkY_NCEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yQgkZPNCEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yQgkZfNCEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yQgkZvNCEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yQgkZ_NCEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yQgkaPNCEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_yQJ_EPNCEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yQf9UfNCEeCfS7qBvajEQQ" x="186" y="60" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_qeGYAPNCEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qeYr4fNCEeCfS7qBvajEQQ" x="1180" y="315" width="196" height="106"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1mBusPNCEeCfS7qBvajEQQ" type="2064" fontName="Segoe UI" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1mBusvNCEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1mCVwPNCEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1mCVwfNCEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1mCVwvNCEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1mCVw_NCEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1mCVxPNCEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1mCVxfNCEeCfS7qBvajEQQ" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1mCVxvNCEeCfS7qBvajEQQ" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1mCVx_NCEeCfS7qBvajEQQ" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1mCVyPNCEeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_4gEd8PNCEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4gFFAPNCEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4gFsEPNCEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4gFsEfNCEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4gFsEvNCEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4gFsE_NCEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4gFsFPNCEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4gFsFfNCEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4gFsFvNCEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4gGTIPNCEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4gGTIfNCEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_4fz_QPNCEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4gEd8fNCEeCfS7qBvajEQQ" x="-10" y="43" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7GLkkPNCEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7GMLoPNCEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7GMLofNCEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7GMLovNCEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7GMLo_NCEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7GMLpPNCEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7GMLpfNCEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7GMLpvNCEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7GMLp_NCEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7GMLqPNCEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7GMLqfNCEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_7F5QsPNCEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7GLkkfNCEeCfS7qBvajEQQ" x="-10" y="74" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9uecgPNCEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9ufDkPNCEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9ufDkfNCEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9ufDkvNCEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9ufqoPNCEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9ufqofNCEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9ufqovNCEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9ufqo_NCEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9ufqpPNCEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9ufqpfNCEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9ufqpvNCEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_9uNWwPNCEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9uecgfNCEeCfS7qBvajEQQ" x="186" y="60" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_1lzFMPNCEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1mBusfNCEeCfS7qBvajEQQ" x="1180" y="435" width="196" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8o8iYPNDEeCfS7qBvajEQQ" type="2064" fontName="Segoe UI" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8o9JcPNDEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8o9JcfNDEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8o9wgPNDEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8o9wgfNDEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8o9wgvNDEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8o9wg_NDEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8o9whPNDEeCfS7qBvajEQQ" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8o9whfNDEeCfS7qBvajEQQ" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8o9whvNDEeCfS7qBvajEQQ" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8o9wh_NDEeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GmrhYPNFEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GmsIcPNFEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GmsvgPNFEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GmsvgfNFEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GmsvgvNFEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Gmsvg_NFEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GmsvhPNFEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GmsvhfNFEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GmsvhvNFEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Gmsvh_NFEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Gmt9oPNFEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_GmZ0kPNFEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GmrhYfNFEeCfS7qBvajEQQ" x="-10" y="46" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_J-ZEEPNFEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J-aSMPNFEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_J-aSMfNFEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J-aSMvNFEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_J-aSM_NFEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J-aSNPNFEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_J-aSNfNFEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_J-a5QPNFEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_J-a5QfNFEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_J-a5QvNFEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_J-a5Q_NFEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_J-ET8PNFEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-ZrIPNFEeCfS7qBvajEQQ" x="-10" y="76" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Qe15UPNFEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qe2gYPNFEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qe2gYfNFEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qe2gYvNFEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qe2gY_NFEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qe2gZPNFEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qe2gZfNFEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Qe2gZvNFEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Qe2gZ_NFEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Qe3HcPNFEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Qe3HcfNFEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_QehwQPNFEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qe15UfNFEeCfS7qBvajEQQ" x="186" y="61" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_8opAYPNDEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8o8iYfNDEeCfS7qBvajEQQ" x="1180" y="545" width="196" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_VUSlUPNFEeCfS7qBvajEQQ" type="2064" fontName="Segoe UI" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VUTzcPNFEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VUTzcfNFEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VUTzcvNFEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VUTzc_NFEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VUUagPNFEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VUUagfNFEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VUUagvNFEeCfS7qBvajEQQ" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VUUag_NFEeCfS7qBvajEQQ" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_VUUahPNFEeCfS7qBvajEQQ" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VUUahfNFEeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XUSHIPNFEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XUSuMfNFEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XUSuMvNFEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XUSuM_NFEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XUTVQPNFEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XUTVQfNFEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XUTVQvNFEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XUTVQ_NFEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XUTVRPNFEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XUTVRfNFEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XUTVRvNFEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_XT9-EPNFEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XUSuMPNFEeCfS7qBvajEQQ" x="-10" y="43" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Z7xGwPNFEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z7xt0PNFEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z7xt0fNFEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z7xt0vNFEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z7xt0_NFEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z7xt1PNFEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z7xt1fNFEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z7xt1vNFEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Z7yU4PNFEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z7yU4fNFEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Z7yU4vNFEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_Z7gBAPNFEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z7xGwfNFEeCfS7qBvajEQQ" x="-10" y="71" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cPRacPNFEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cPSBgPNFEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cPSBgfNFEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cPSBgvNFEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cPSBg_NFEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cPSBhPNFEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cPSBhfNFEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cPSBhvNFEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cPSBh_NFEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cPSokPNFEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cPSokfNFEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_cO-fgPNFEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cPRacfNFEeCfS7qBvajEQQ" x="-10" y="97" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_fWDlMPNFEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fWEMQPNFEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fWEMQfNFEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fWEMQvNFEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fWEMQ_NFEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fWEMRPNFEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fWEzUPNFEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fWEzUfNFEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fWEzUvNFEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fWEzU_NFEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fWEzVPNFEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_fVsY0PNFEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fWDlMfNFEeCfS7qBvajEQQ" x="186" y="66" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_VT9OIPNFEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VUSlUfNFEeCfS7qBvajEQQ" x="1180" y="660" width="196" height="121"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3rzoEPNFEeCfS7qBvajEQQ" type="2064" fontName="Segoe UI" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3r0PIPNFEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3r0PIfNFEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3r0PIvNFEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3r0PI_NFEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3r0PJPNFEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3r0PJfNFEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3r0PJvNFEeCfS7qBvajEQQ" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3r0PJ_NFEeCfS7qBvajEQQ" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3r0PKPNFEeCfS7qBvajEQQ" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3r0PKfNFEeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6mZw8PNFEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6maYAPNFEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6maYAfNFEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6maYAvNFEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6maYA_NFEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6maYBPNFEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6maYBfNFEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6maYBvNFEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6maYB_NFEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6maYCPNFEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6maYCfNFEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_6mIrMPNFEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6mZw8fNFEeCfS7qBvajEQQ" x="-10" y="52" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-h254PNFEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-h3g8PNFEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-h3g8fNFEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-h3g8vNFEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-h3g8_NFEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-h3g9PNFEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-h3g9fNFEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-h4IAPNFEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-h4IAfNFEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-h4IAvNFEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-h4IA_NFEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_-hkmAPNFEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-h254fNFEeCfS7qBvajEQQ" x="-10" y="80" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AFM78PNGEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AFNjAPNGEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AFNjAfNGEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AFNjAvNGEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AFNjA_NGEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AFOKEPNGEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AFOKEfNGEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AFOKEvNGEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AFOKE_NGEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AFOKFPNGEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AFOKFfNGEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_AE6BAPNGEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AFM78fNGEeCfS7qBvajEQQ" x="-10" y="110" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GNoSwPNGEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GNo50PNGEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GNpg4PNGEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GNpg4fNGEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GNpg4vNGEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GNpg4_NGEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GNqH8PNGEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GNqH8fNGEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GNqH8vNGEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GNqH8_NGEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GNqH9PNGEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_GNQfUPNGEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GNoSwfNGEeCfS7qBvajEQQ" x="191" y="79" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_3riiUPNFEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3rzoEfNFEeCfS7qBvajEQQ" x="1560" y="15" width="201" height="136"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_N-bVkPNGEeCfS7qBvajEQQ" type="2064" fontName="Segoe UI" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_N-cjsPNGEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_N-cjsfNGEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_N-cjsvNGEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_N-cjs_NGEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_N-cjtPNGEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_N-cjtfNGEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_N-cjtvNGEeCfS7qBvajEQQ" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_N-dKwPNGEeCfS7qBvajEQQ" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_N-dKwfNGEeCfS7qBvajEQQ" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_N-dKwvNGEeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QStFUPNGEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QStsYPNGEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QStsYfNGEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QStsYvNGEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QStsY_NGEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QStsZPNGEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QStsZfNGEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QStsZvNGEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QStsZ_NGEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QStsaPNGEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QStsafNGEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_QSXHEPNGEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QStFUfNGEeCfS7qBvajEQQ" x="-10" y="47" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TG-jwPNGEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TG_K0PNGEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TG_K0fNGEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TG_K0vNGEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TG_K0_NGEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TG_K1PNGEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TG_K1fNGEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TG_K1vNGEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TG_K1_NGEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TG_K2PNGEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TG_x4PNGEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_TGs28PNGEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TG-jwfNGEeCfS7qBvajEQQ" x="-10" y="79" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XB120PNGEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XB2d4PNGEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XB2d4fNGEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XB2d4vNGEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XB2d4_NGEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XB2d5PNGEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XB2d5fNGEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XB2d5vNGEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XB2d5_NGEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XB3E8PNGEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XB3E8fNGEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_XBdcUPNGEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XB120fNGEeCfS7qBvajEQQ" x="-10" y="110" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZXnbYPNGEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZXoCcPNGEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZXoCcfNGEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZXoCcvNGEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZXopgPNGEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZXopgfNGEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZXopgvNGEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZXopg_NGEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZXophPNGEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZXophfNGEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZXophvNGEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_ZXXjwPNGEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZXnbYfNGEeCfS7qBvajEQQ" x="191" y="76" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_N-K24PNGEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_N-bVkfNGEeCfS7qBvajEQQ" x="1560" y="165" width="201" height="136"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_fFcg4PNGEeCfS7qBvajEQQ" type="2064" fontName="Segoe UI" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fFdvAPNGEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fFdvAfNGEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fFdvAvNGEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fFdvA_NGEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fFdvBPNGEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fFdvBfNGEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fFdvBvNGEeCfS7qBvajEQQ" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_fFdvB_NGEeCfS7qBvajEQQ" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_fFdvCPNGEeCfS7qBvajEQQ" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fFdvCfNGEeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hpIloPNGEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hpJMsPNGEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hpJMsfNGEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hpJzwPNGEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hpJzwfNGEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hpJzwvNGEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hpJzw_NGEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hpJzxPNGEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hpJzxfNGEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hpJzxvNGEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hpJzx_NGEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_ho5VEPNGEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hpIlofNGEeCfS7qBvajEQQ" x="-10" y="45" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jp15IPNGEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jp2gMPNGEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jp2gMfNGEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jp2gMvNGEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jp2gM_NGEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jp2gNPNGEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jp3HQPNGEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jp3HQfNGEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jp3HQvNGEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jp3HQ_NGEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jp3HRPNGEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_jpmBgPNGEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jp15IfNGEeCfS7qBvajEQQ" x="-10" y="75" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_mbYMoPNGEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mbYzsPNGEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mbYzsfNGEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mbYzsvNGEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mbYzs_NGEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mbZawPNGEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mbZawfNGEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mbZawvNGEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mbZaw_NGEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mbZaxPNGEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mbZaxfNGEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_mbC1cPNGEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mbYMofNGEeCfS7qBvajEQQ" x="-10" y="106" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_pynOMPNGEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pyn1QPNGEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pyn1QfNGEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pyn1QvNGEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pyn1Q_NGEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pyn1RPNGEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pyn1RfNGEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pyn1RvNGEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pyn1R_NGEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pyocUPNGEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pyocUfNGEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_pyQB0PNGEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pynOMfNGEeCfS7qBvajEQQ" x="191" y="73" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_fFN3YPNGEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fFcg4fNGEeCfS7qBvajEQQ" x="1560" y="315" width="201" height="136"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yG-REPNGEeCfS7qBvajEQQ" type="2064" fontName="Segoe UI" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yG-4IPNGEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yG_fMPNGEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yG_fMfNGEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yG_fMvNGEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yG_fM_NGEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yG_fNPNGEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yG_fNfNGEeCfS7qBvajEQQ" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_yG_fNvNGEeCfS7qBvajEQQ" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_yG_fN_NGEeCfS7qBvajEQQ" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yG_fOPNGEeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_07j4kPNGEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_07kfoPNGEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_07kfofNGEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_07kfovNGEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_07kfo_NGEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_07kfpPNGEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_07lGsPNGEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_07lGsfNGEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_07lGsvNGEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_07lGs_NGEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_07lGtPNGEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_07UoAPNGEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_07j4kfNGEeCfS7qBvajEQQ" x="-10" y="49" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_4ap1oPNGEeCfS7qBvajEQQ" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4aqcsPNGEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4aqcsfNGEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4aqcsvNGEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4aqcs_NGEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4aqctPNGEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4arDwPNGEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4arDwfNGEeCfS7qBvajEQQ" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4arDwvNGEeCfS7qBvajEQQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4arDw_NGEeCfS7qBvajEQQ" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4arDxPNGEeCfS7qBvajEQQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_4aZW8PNGEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4ap1ofNGEeCfS7qBvajEQQ" x="191" y="51" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_yGrWIPNGEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yG-REfNGEeCfS7qBvajEQQ" x="1560" y="465" width="201" height="86"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_QLJBYfMdEeCxrPjksdBlsg"/>
+ <element xmi:type="uml:Package" href="alflibrary.uml#_psK3wH1BEeCKy5kSqd4eVw"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_6Xi_IPNREeCfS7qBvajEQQ" type="PapyrusUMLClassDiagram" name="ClassDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_7Oo_MPNREeCfS7qBvajEQQ" type="2008" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7OqNUPNREeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7Oq0YPNREeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7Oq0YfNREeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7Oq0YvNREeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7Oq0Y_NREeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7Oq0ZPNREeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7OrbcPNREeCfS7qBvajEQQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7OrbcfNREeCfS7qBvajEQQ" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7OrbcvNREeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7Orbc_NREeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7OrbdPNREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7OrbdfNREeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7OrbdvNREeCfS7qBvajEQQ" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7Orbd_NREeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7OrbePNREeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7OrbefNREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7OrbevNREeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7Orbe_NREeCfS7qBvajEQQ" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7OrbfPNREeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7OrbffNREeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7OrbfvNREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7Orbf_NREeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8DzsoPNREeCfS7qBvajEQQ" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8D0TsPNREeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8D0TsfNREeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8D0TsvNREeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8D0Ts_NREeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8D0TtPNREeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8D0TtfNREeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8D06wPNREeCfS7qBvajEQQ" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_87N1wPNREeCfS7qBvajEQQ" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_8rO5APNREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_87N1wfNREeCfS7qBvajEQQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8D06wfNREeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8D06wvNREeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8D06w_NREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8D06xPNREeCfS7qBvajEQQ"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_8De8gPNREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8DzsofNREeCfS7qBvajEQQ" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_nFgGsfNREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7OpmQPNREeCfS7qBvajEQQ" x="65" y="40" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Mgh9wPNSEeCfS7qBvajEQQ" type="2008" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MgjL4PNSEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MgjL4fNSEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MgjL4vNSEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MgjL4_NSEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MgjL5PNSEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Mgjy8PNSEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Mgjy8fNSEeCfS7qBvajEQQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Mgjy8vNSEeCfS7qBvajEQQ" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Mgjy8_NSEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Mgjy9PNSEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Mgjy9fNSEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Mgjy9vNSEeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Mgjy9_NSEeCfS7qBvajEQQ" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Mgjy-PNSEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Mgjy-fNSEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Mgjy-vNSEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Mgjy-_NSEeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MgkaAPNSEeCfS7qBvajEQQ" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_MgkaAfNSEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MgkaAvNSEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MgkaA_NSEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MgkaBPNSEeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_RoZPcPNSEeCfS7qBvajEQQ" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RoZ2gPNSEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RoZ2gfNSEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RoZ2gvNSEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RoZ2g_NSEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RoadkPNSEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RoadkfNSEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RoadkvNSEeCfS7qBvajEQQ" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_S7nK0PNSEeCfS7qBvajEQQ" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_SpXkQPNSEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_S7nK0fNSEeCfS7qBvajEQQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Roadk_NSEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RoadlPNSEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RoadlfNSEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RoadlvNSEeCfS7qBvajEQQ"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_Rn78cPNSEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RoZPcfNSEeCfS7qBvajEQQ" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_nFgGuPNREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Mgh9wfNSEeCfS7qBvajEQQ" x="65" y="115" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_iCdOIPNSEeCfS7qBvajEQQ" type="2008" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iCecQPNSEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iCecQfNSEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iCecQvNSEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iCfDUPNSEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iCfDUfNSEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iCfDUvNSEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iCfDU_NSEeCfS7qBvajEQQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iCfqYPNSEeCfS7qBvajEQQ" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iCfqYfNSEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_iCfqYvNSEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_iCfqY_NSEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iCfqZPNSEeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iCfqZfNSEeCfS7qBvajEQQ" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iCfqZvNSEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_iCfqZ_NSEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_iCfqaPNSEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iCfqafNSEeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iCfqavNSEeCfS7qBvajEQQ" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iCfqa_NSEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_iCfqbPNSEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_iCfqbfNSEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iCfqbvNSEeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lny9IPNSEeCfS7qBvajEQQ" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lnzkMPNSEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lnzkMfNSEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lnzkMvNSEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lnzkM_NSEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lnzkNPNSEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lnzkNfNSEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ln0LQPNSEeCfS7qBvajEQQ" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_o2CawPNSEeCfS7qBvajEQQ" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_omyd0PNSEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_o2CawfNSEeCfS7qBvajEQQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ln0LQfNSEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ln0LQvNSEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ln0LQ_NSEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ln0LRPNSEeCfS7qBvajEQQ"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_lnWRMPNSEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lny9IfNSEeCfS7qBvajEQQ" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_nFgGwvNREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iCdOIfNSEeCfS7qBvajEQQ" x="65" y="190" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_zNyRsPNSEeCfS7qBvajEQQ" type="2008" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zNzf0PNSEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zNzf0fNSEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zNzf0vNSEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zNzf0_NSEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zN0G4PNSEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zN0G4fNSEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zN0G4vNSEeCfS7qBvajEQQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_zN0G4_NSEeCfS7qBvajEQQ" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_zN0G5PNSEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zN0G5fNSEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zN0G5vNSEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zN0G5_NSEeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_zN0G6PNSEeCfS7qBvajEQQ" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_zN0G6fNSEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zN0G6vNSEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zN0G6_NSEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zN0G7PNSEeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_zN0t8PNSEeCfS7qBvajEQQ" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_zN0t8fNSEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zN0t8vNSEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zN0t8_NSEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zN0t9PNSEeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_23pUUPNSEeCfS7qBvajEQQ" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_23p7YfNSEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_23p7YvNSEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_23p7Y_NSEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_23p7ZPNSEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_23qicPNSEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_23qicfNSEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_23qicvNSEeCfS7qBvajEQQ" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_4CfW0PNSEeCfS7qBvajEQQ" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_3zji8PNSEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4CfW0fNSEeCfS7qBvajEQQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_23qic_NSEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_23qidPNSEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_23qidfNSEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_23qidvNSEeCfS7qBvajEQQ"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_23PrsPNSEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_23p7YPNSEeCfS7qBvajEQQ" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_nFgGzPNREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zNyRsfNSEeCfS7qBvajEQQ" x="65" y="265" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_D_8AQPNTEeCfS7qBvajEQQ" type="2008" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D_8nUPNTEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D_8nUfNTEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D_9OYPNTEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D_9OYfNTEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D_9OYvNTEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D_9OY_NTEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_D_9OZPNTEeCfS7qBvajEQQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_D_91cPNTEeCfS7qBvajEQQ" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_D_91cfNTEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D_91cvNTEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D_91c_NTEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D_91dPNTEeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_D_91dfNTEeCfS7qBvajEQQ" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_D_91dvNTEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D_91d_NTEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D_91ePNTEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D_91efNTEeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_D_91evNTEeCfS7qBvajEQQ" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_D_91e_NTEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D_91fPNTEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D_91ffNTEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D_91fvNTEeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GvNC4PNTEeCfS7qBvajEQQ" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GvNC4vNTEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GvNp8PNTEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GvNp8fNTEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GvNp8vNTEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GvNp8_NTEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GvNp9PNTEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GvNp9fNTEeCfS7qBvajEQQ" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_H7jhQPNTEeCfS7qBvajEQQ" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_Hr8_APNTEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_H7jhQfNTEeCfS7qBvajEQQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GvNp9vNTEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GvNp9_NTEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GvNp-PNTEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GvNp-fNTEeCfS7qBvajEQQ"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_GuUSEPNTEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GvNC4fNTEeCfS7qBvajEQQ" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_nFgtwPNREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D_8AQfNTEeCfS7qBvajEQQ" x="65" y="340" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QTif4PNTEeCfS7qBvajEQQ" type="2008" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QTjuAPNTEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QTjuAfNTEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QTkVEPNTEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QTkVEfNTEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QTkVEvNTEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QTkVE_NTEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QTkVFPNTEeCfS7qBvajEQQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QTk8IPNTEeCfS7qBvajEQQ" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QTk8IfNTEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QTk8IvNTEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QTk8I_NTEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QTk8JPNTEeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QTk8JfNTEeCfS7qBvajEQQ" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QTk8JvNTEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QTk8J_NTEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QTk8KPNTEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QTk8KfNTEeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QTk8KvNTEeCfS7qBvajEQQ" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QTk8K_NTEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QTk8LPNTEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QTk8LfNTEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QTk8LvNTEeCfS7qBvajEQQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TyGRcPNTEeCfS7qBvajEQQ" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TyG4gPNTEeCfS7qBvajEQQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TyG4gfNTEeCfS7qBvajEQQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TyHfkPNTEeCfS7qBvajEQQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TyHfkfNTEeCfS7qBvajEQQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TyHfkvNTEeCfS7qBvajEQQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TyHfk_NTEeCfS7qBvajEQQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TyHflPNTEeCfS7qBvajEQQ" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_VHmr0PNTEeCfS7qBvajEQQ" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_U2qs0PNTEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VHmr0fNTEeCfS7qBvajEQQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TyHflfNTEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TyHflvNTEeCfS7qBvajEQQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TyHfl_NTEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TyHfmPNTEeCfS7qBvajEQQ"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_Txo-cPNTEeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TyGRcfNTEeCfS7qBvajEQQ" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_nFgtx_NREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QTif4fNTEeCfS7qBvajEQQ" x="65" y="415" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2W-fsPPgEeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2XA78PPgEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2XA78fPgEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2XBjAPPgEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2XBjAfPgEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2XCKEPPgEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2XCKEfPgEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2XCKEvPgEeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2XCKE_PgEeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2XCKFPPgEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2XCKFfPgEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2XCKFvPgEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2XCKF_PgEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2XCxIPPgEeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2XCxIfPgEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2XCxIvPgEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2XCxI_PgEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2XCxJPPgEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2XCxJfPgEeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2XCxJvPgEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2XCxJ_PgEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2XCxKPPgEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2XCxKfPgEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7U7ncPPgEeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7U8OgPPgEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7U8OgfPgEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7U8OgvPgEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7U8Og_PgEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7U8OhPPgEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7U81kPPgEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7U81kfPgEeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_8j8YQPPgEeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_8OY_APPgEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8j8YQfPgEeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7U81kvPgEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7U81k_PgEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7U81lPPgEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7U81lfPgEeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_7UAaYPPgEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7U7ncfPgEeCjkLKmJeBqEw" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_nFgtzvNREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2W-fsfPgEeCjkLKmJeBqEw" x="65" y="490" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GGpdkPPhEeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GGrSwPPhEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GGrSwfPhEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GGrSwvPhEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GGrSw_PhEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GGr50PPhEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GGr50fPhEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GGsg4PPhEeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GGsg4fPhEeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GGsg4vPhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GGsg4_PhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GGsg5PPhEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GGsg5fPhEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GGsg5vPhEeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GGsg5_PhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GGtH8PPhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GGtH8fPhEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GGtH8vPhEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GGtH8_PhEeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GGtH9PPhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GGtH9fPhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GGtH9vPhEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GGtH9_PhEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_I1OjsPPhEeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I1PKwPPhEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I1PKwfPhEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I1PKwvPhEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I1PKw_PhEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I1Px0PPhEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I1Px0fPhEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_I1Px0vPhEeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_J_CrcPPhEeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_JwQokPPhEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_J_CrcfPhEeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_I1Px0_PhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_I1Px1PPhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_I1Px1fPhEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I1Px1vPhEeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_I0uNYPPhEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I1OjsfPhEeCjkLKmJeBqEw" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_nFgt2PNREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GGpdkfPhEeCjkLKmJeBqEw" x="65" y="565" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TddGoPPhEeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Tde70PPhEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Tde70fPhEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Tde70vPhEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Tdfi4PPhEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Tdfi4fPhEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Tdfi4vPhEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Tdfi4_PhEeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TdgJ8PPhEeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TdgJ8fPhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TdgJ8vPhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TdgJ8_PhEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TdgJ9PPhEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TdgJ9fPhEeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TdgJ9vPhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TdgJ9_PhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TdgJ-PPhEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TdgJ-fPhEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TdgJ-vPhEeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TdgJ-_PhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TdgJ_PPhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TdgJ_fPhEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TdgJ_vPhEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WQU24PPhEeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WQVd8PPhEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WQVd8fPhEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WQVd8vPhEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WQVd8_PhEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WQVd9PPhEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WQVd9fPhEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WQVd9vPhEeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_XUaKEPPhEeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_XDnVAPPhEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XUaKEfPhEeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WQVd9_PhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_WQVd-PPhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_WQVd-fPhEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WQWFAPPhEeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_WPz5gPPhEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WQU24fPhEeCjkLKmJeBqEw" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_nFgt4vNREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TddGofPhEeCjkLKmJeBqEw" x="65" y="640" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gl3HUPPhEeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gl4VcPPhEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gl4VcfPhEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gl48gPPhEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gl48gfPhEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gl48gvPhEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gl48g_PhEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gl5jkPPhEeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gl5jkfPhEeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gl5jkvPhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gl5jk_PhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gl5jlPPhEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gl5jlfPhEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gl5jlvPhEeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gl5jl_PhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gl5jmPPhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gl5jmfPhEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gl5jmvPhEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gl6KoPPhEeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gl6KofPhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gl6KovPhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gl6Ko_PhEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gl6KpPPhEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_iyyR4PPhEeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iyyR4vPhEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iyyR4_PhEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iyy48PPhEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iyy48fPhEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iyy48vPhEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iyy48_PhEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iyy49PPhEeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_kPW9kPPhEeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_kAHnsPPhEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kPW9kfPhEeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iyy49fPhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_iyy49vPhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_iyy49_PhEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iyy4-PPhEeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_iyL08PPhEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iyyR4fPhEeCjkLKmJeBqEw" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_nFgt7PNREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gl3HUfPhEeCjkLKmJeBqEw" x="260" y="40" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_sq5mgPPhEeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sq60oPPhEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sq60ofPhEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sq60ovPhEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sq60o_PhEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sq7bsPPhEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sq7bsfPhEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_sq7bsvPhEeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sq7bs_PhEeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_sq7btPPhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_sq7btfPhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_sq8CwPPhEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sq8CwfPhEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sq8CwvPhEeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_sq8Cw_PhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_sq8CxPPhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_sq8CxfPhEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sq8CxvPhEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sq8Cx_PhEeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_sq8CyPPhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_sq8CyfPhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_sq8CyvPhEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sq8Cy_PhEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_vez4kPPhEeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ve0foPPhEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ve0fofPhEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ve0fovPhEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ve0fo_PhEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ve0fpPPhEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ve0fpfPhEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ve0fpvPhEeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_wtggUPPhEeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_wezV8PPhEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wtggUfPhEeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ve0fp_PhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ve0fqPPhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ve0fqfPhEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ve0fqvPhEeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_vegWkPPhEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vez4kfPhEeCjkLKmJeBqEw" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_nFgt9vNREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sq5mgfPhEeCjkLKmJeBqEw" x="260" y="115" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_4H9fsPPhEeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4H-t0PPhEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4H_U4PPhEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4H_U4fPhEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4H_U4vPhEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4H_U4_PhEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4H_78PPhEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4H_78fPhEeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4H_78vPhEeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4H_78_PhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_4H_79PPhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_4H_79fPhEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4H_79vPhEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4H_79_PhEeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4H_7-PPhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_4H_7-fPhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_4H_7-vPhEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4H_7-_PhEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4IAjAPPhEeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4IAjAfPhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_4IAjAvPhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_4IAjA_PhEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4IAjBPPhEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6RGWcPPhEeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6RGWcvPhEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6RGWc_PhEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6RG9gPPhEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6RG9gfPhEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6RG9gvPhEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6RG9g_PhEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6RG9hPPhEeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_7KsQ4PPhEeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_65jdkPPhEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7KsQ4fPhEeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_6RG9hfPhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6RG9hvPhEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6RG9h_PhEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6RG9iPPhEeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_6QqRkPPhEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6RGWcfPhEeCjkLKmJeBqEw" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_nFguAPNREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4H9fsfPhEeCjkLKmJeBqEw" x="260" y="190" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_D7A3APPiEeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D7CFIPPiEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D7CFIfPiEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D7CsMPPiEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D7CsMfPiEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D7CsMvPiEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D7DTQPPiEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_D7DTQfPiEeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_D7DTQvPiEeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_D7DTQ_PiEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D7DTRPPiEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D7DTRfPiEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D7DTRvPiEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_D7DTR_PiEeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_D7DTSPPiEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D7DTSfPiEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D7DTSvPiEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D7DTS_PiEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_D7D6UPPiEeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_D7D6UfPiEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D7D6UvPiEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D7D6U_PiEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D7D6VPPiEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GUrdEPPiEeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GUsEIPPiEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GUsEIfPiEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GUsEIvPiEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GUsEI_PiEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GUsrMPPiEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GUsrMfPiEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GUsrMvPiEeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_HO97EPPiEeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_HAR-0PPiEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_HO97EfPiEeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GUsrM_PiEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GUsrNPPiEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GUsrNfPiEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GUsrNvPiEeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_GUBVwPPiEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GUrdEfPiEeCjkLKmJeBqEw" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_nFguB_NREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D7A3AfPiEeCjkLKmJeBqEw" x="260" y="265" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Ocw-gPPiEeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OcyMoPPiEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OcyMofPiEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OcyzsPPiEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OcyzsfPiEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OcyzsvPiEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ocyzs_PiEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_OczawPPiEeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_OczawfPiEeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_OczawvPiEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Oczaw_PiEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_OczaxPPiEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OczaxfPiEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_OczaxvPiEeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Oczax_PiEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_OczayPPiEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_OczayfPiEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OczayvPiEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Oc0B0PPiEeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Oc0B0fPiEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Oc0B0vPiEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Oc0B0_PiEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Oc0B1PPiEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QXpW0PPiEeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QXp94PPiEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QXp94fPiEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QXp94vPiEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QXp94_PiEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QXqk8PPiEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QXqk8fPiEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QXqk8vPiEeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_RSToQPPiEeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_RDvn0PPiEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RSToQfPiEeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QXqk8_PiEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QXqk9PPiEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QXqk9fPiEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QXqk9vPiEeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_QXHyYPPiEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QXpW0fPiEeCjkLKmJeBqEw" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_nFguDvNREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ocw-gfPiEeCjkLKmJeBqEw" x="260" y="340" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_alttUPPiEeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aluUYPPiEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aluUYfPiEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_alu7cPPiEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_alu7cfPiEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_alu7cvPiEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_alu7c_PiEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_alu7dPPiEeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_alvigPPiEeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_alvigfPiEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_alvigvPiEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_alvig_PiEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_alvihPPiEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_alvihfPiEeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_alvihvPiEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_alvih_PiEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_alviiPPiEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_alviifPiEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_alviivPiEeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_alvii_PiEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_alvijPPiEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_alvijfPiEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_alvijvPiEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cyE3MPPiEeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cyE3MvPiEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cyE3M_PiEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cyFeQPPiEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cyFeQfPiEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cyFeQvPiEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cyFeQ_PiEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cyFeRPPiEeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_eDCv0PPiEeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_dzDzEPPiEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eDCv0fPiEeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cyFeRfPiEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cyFeRvPiEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cyFeR_PiEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cyFeSPPiEeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_cxUpQPPiEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cyE3MfPiEeCjkLKmJeBqEw" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_nFguGPNREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_alttUfPiEeCjkLKmJeBqEw" x="260" y="415" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_q8264PPiEeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_q84JAPPiEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q84JAfPiEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_q84wEPPiEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q84wEfPiEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_q84wEvPiEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q84wE_PiEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_q85XIPPiEeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_q85XIfPiEeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_q85XIvPiEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_q85XI_PiEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_q85XJPPiEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q85XJfPiEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_q85XJvPiEeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_q85XJ_PiEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_q85XKPPiEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_q85XKfPiEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q85XKvPiEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_q85XK_PiEeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_q85XLPPiEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_q85-MPPiEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_q85-MfPiEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q85-MvPiEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tBJt4PPiEeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tBJt4vPiEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tBKU8PPiEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tBKU8fPiEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tBKU8vPiEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tBKU8_PiEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tBKU9PPiEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tBKU9fPiEeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_vKEiMPPiEeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_u68hEPPiEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vKEiMfPiEeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tBKU9vPiEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tBKU9_PiEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tBKU-PPiEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tBKU-fPiEeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_tAeYcPPiEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tBJt4fPiEeCjkLKmJeBqEw" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_nFguIvNREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q8264fPiEeCjkLKmJeBqEw" x="260" y="490" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_EBA74PPjEeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EBCKAPPjEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EBCKAfPjEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EBCxEPPjEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EBCxEfPjEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EBCxEvPjEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EBDYIPPjEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_EBDYIfPjEeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_EBDYIvPjEeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_EBDYI_PjEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_EBDYJPPjEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_EBDYJfPjEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EBDYJvPjEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_EBDYJ_PjEeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_EBDYKPPjEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_EBDYKfPjEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_EBDYKvPjEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EBDYK_PjEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_EBD_MPPjEeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_EBD_MfPjEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_EBD_MvPjEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_EBD_M_PjEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EBD_NPPjEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GvCoYPPjEeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GvDPcPPjEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GvDPcfPjEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GvDPcvPjEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GvDPc_PjEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GvDPdPPjEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GvDPdfPjEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GvD2gPPjEeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_HvXc8PPjEeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_HgTGMPPjEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_HvXc8fPjEeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GvD2gfPjEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GvD2gvPjEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GvD2g_PjEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GvD2hPPjEeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_GuXS8PPjEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GvCoYfPjEeCjkLKmJeBqEw" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_nFguLPNREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EBA74fPjEeCjkLKmJeBqEw" x="260" y="565" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Tj1JgPPjEeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Tj2XoPPjEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Tj2XofPjEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Tj2XovPjEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Tj2Xo_PjEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Tj2-sPPjEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Tj2-sfPjEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Tj2-svPjEeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Tj2-s_PjEeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Tj2-tPPjEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Tj2-tfPjEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Tj2-tvPjEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Tj2-t_PjEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Tj3lwPPjEeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Tj3lwfPjEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Tj3lwvPjEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Tj3lw_PjEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Tj3lxPPjEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Tj3lxfPjEeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Tj3lxvPjEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Tj3lx_PjEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Tj3lyPPjEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Tj3lyfPjEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Vv7NoPPjEeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Vv7NovPjEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vv7No_PjEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Vv70sPPjEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vv70sfPjEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Vv70svPjEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vv70s_PjEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Vv70tPPjEeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_Wy9_APPjEeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_Wjv3QPPjEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wy9_AfPjEeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Vv70tfPjEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Vv70tvPjEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Vv70t_PjEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vv70uPPjEeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_VvJKgPPjEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vv7NofPjEeCjkLKmJeBqEw" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_nFguNvNREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Tj1JgfPjEeCjkLKmJeBqEw" x="260" y="640" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jehEkPPjEeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jeiSsPPjEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jeiSsfPjEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jeiSsvPjEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jeiSs_PjEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jei5wPPjEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jei5wfPjEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jei5wvPjEeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jei5w_PjEeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jei5xPPjEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jei5xfPjEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jei5xvPjEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jei5x_PjEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jejg0PPjEeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jejg0fPjEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jejg0vPjEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jejg0_PjEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jejg1PPjEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jejg1fPjEeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jejg1vPjEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jejg1_PjEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jejg2PPjEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jejg2fPjEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lq4OcPPjEeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lq41gPPjEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lq41gfPjEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lq41gvPjEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lq41g_PjEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lq41hPPjEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lq41hfPjEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lq41hvPjEeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_myBcsPPjEeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_miyG0PPjEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_myBcsfPjEeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lq41h_PjEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lq41iPPjEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lq41ifPjEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lq41ivPjEeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_lqDvEPPjEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lq4OcfPjEeCjkLKmJeBqEw" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_nFguQ_NREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jehEkfPjEeCjkLKmJeBqEw" x="440" y="40" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BQrFwPPkEeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BQsT4PPkEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BQsT4fPkEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BQs68PPkEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BQs68fPkEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BQs68vPkEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BQs68_PkEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BQs69PPkEeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BQtiAPPkEeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BQtiAfPkEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BQtiAvPkEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BQtiA_PkEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BQtiBPPkEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BQtiBfPkEeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BQtiBvPkEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BQtiB_PkEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BQtiCPPkEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BQtiCfPkEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BQtiCvPkEeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BQtiC_PkEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BQtiDPPkEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BQtiDfPkEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BQtiDvPkEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_DLQjIPPkEeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DLQjIvPkEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DLRKMPPkEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DLRKMfPkEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DLRKMvPkEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DLRKM_PkEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DLRKNPPkEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DLRKNfPkEeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_EA2HUPPkEeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_DxSoYPPkEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EA2HUfPkEeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_DLRKNvPkEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_DLRKN_PkEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_DLRKOPPkEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DLRKOfPkEeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_DKg8QPPkEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DLQjIfPkEeCjkLKmJeBqEw" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_nFguUPNREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BQrFwfPkEeCjkLKmJeBqEw" x="440" y="115" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3BrswPPkEeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Bs64PPkEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Bs64fPkEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Bth8PPkEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Bth8fPkEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Bth8vPkEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Bth8_PkEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Bth9PPkEeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3BuJAPPkEeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3BuJAfPkEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3BuJAvPkEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3BuJA_PkEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3BuJBPPkEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3BuJBfPkEeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3BuJBvPkEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3BuJB_PkEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3BuJCPPkEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3BuJCfPkEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3BuJCvPkEeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3BuJC_PkEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3BuJDPPkEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3BuJDfPkEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3BuJDvPkEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6mRN0PPkEeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6mR04PPkEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6mR04fPkEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6mR04vPkEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6mR04_PkEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6mR05PPkEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6mR05fPkEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6mR05vPkEeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_7kSVQPPkEeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_7W7OsPPkEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7kSVQfPkEeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_6mR05_PkEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6mR06PPkEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6mR06fPkEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6mR06vPkEeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_6llRUPPkEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6mRN0fPkEeCjkLKmJeBqEw" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_nFguXfNREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3BrswfPkEeCjkLKmJeBqEw" x="440" y="190" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FV7OcPPlEeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FV8ckPPlEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FV8ckfPlEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FV8ckvPlEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FV8ck_PlEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FV9DoPPlEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FV9DofPlEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FV9DovPlEeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FV9Do_PlEeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_FV9DpPPlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FV9DpfPlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FV9DpvPlEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FV9Dp_PlEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FV9qsPPlEeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_FV9qsfPlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FV9qsvPlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FV9qs_PlEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FV9qtPPlEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FV9qtfPlEeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_FV9qtvPlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FV9qt_PlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FV9quPPlEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FV9qufPlEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Hd95APPlEeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Hd-gEPPlEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Hd-gEfPlEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Hd-gEvPlEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Hd-gE_PlEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Hd-gFPPlEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Hd-gFfPlEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Hd-gFvPlEeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_J1fxEPPlEeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_JnzTUPPlEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_J1fxEfPlEeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Hd-gF_PlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Hd-gGPPlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Hd-gGfPlEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hd-gGvPlEeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_HdQHUPPlEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hd95AfPlEeCjkLKmJeBqEw" x="90" y="-10"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_nFguZ_NREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FV7OcfPlEeCjkLKmJeBqEw" x="440" y="265" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SE2YIPPlEeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SE3mQPPlEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SE3mQfPlEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SE3mQvPlEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SE4NUPPlEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SE4NUfPlEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SE4NUvPlEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SE4NU_PlEeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SE40YPPlEeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SE40YfPlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SE40YvPlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SE40Y_PlEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SE40ZPPlEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SE40ZfPlEeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SE40ZvPlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SE40Z_PlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SE40aPPlEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SE40afPlEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SE40avPlEeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SE40a_PlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SE40bPPlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SE40bfPlEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SE40bvPlEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_UM634PPlEeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UM634vPlEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UM634_PlEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UM7e8PPlEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UM7e8fPlEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UM7e8vPlEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UM7e8_PlEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UM7e9PPlEeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_V-BCEPPlEeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_VrUIgPPlEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_V-BCEfPlEeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_UM7e9fPlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_UM7e9vPlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_UM7e9_PlEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UM7e-PPlEeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_UMLRAPPlEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UM634fPlEeCjkLKmJeBqEw" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_nFgucfNREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SE2YIfPlEeCjkLKmJeBqEw" x="440" y="340" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dkXIYPPlEeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dkYWgPPlEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dkYWgfPlEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dkYWgvPlEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dkYWg_PlEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dkY9kPPlEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dkY9kfPlEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dkY9kvPlEeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dkY9k_PlEeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dkY9lPPlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dkY9lfPlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dkZkoPPlEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dkZkofPlEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dkZkovPlEeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dkZko_PlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dkZkpPPlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dkZkpfPlEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dkZkpvPlEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dkZkp_PlEeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dkZkqPPlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dkZkqfPlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dkZkqvPlEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dkZkq_PlEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gTHNoPPlEeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gTH0sPPlEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gTH0sfPlEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gTH0svPlEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gTH0s_PlEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gTH0tPPlEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gTH0tfPlEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gTH0tvPlEeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_hN1JcPPlEeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_g_JNMPPlEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hN1JcfPlEeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gTH0t_PlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gTH0uPPlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gTH0ufPlEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gTH0uvPlEeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_gSMnoPPlEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gTHNofPlEeCjkLKmJeBqEw" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_nFgue_NREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dkXIYfPlEeCjkLKmJeBqEw" x="440" y="415" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_so9wAPPlEeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_so--IPPlEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_so--IfPlEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_so_lMPPlEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_so_lMfPlEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_so_lMvPlEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_so_lM_PlEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_spAMQPPlEeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_spAMQfPlEeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_spAMQvPlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_spAMQ_PlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_spAMRPPlEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_spAMRfPlEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_spAMRvPlEeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_spAMR_PlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_spAMSPPlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_spAMSfPlEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_spAMSvPlEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_spAzUPPlEeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_spAzUfPlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_spAzUvPlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_spAzU_PlEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_spAzVPPlEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_u9O4sPPlEeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_u9PfwPPlEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_u9PfwfPlEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_u9PfwvPlEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_u9Pfw_PlEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_u9PfxPPlEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_u9PfxfPlEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_u9PfxvPlEeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_wj8-4PPlEeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_wVivcPPlEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wj8-4fPlEeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_u9Pfx_PlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_u9QG0PPlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_u9QG0fPlEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u9QG0vPlEeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_u8TroPPlEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u9O4sfPlEeCjkLKmJeBqEw" x="90" y="-10"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_nFguiPNREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_so9wAfPlEeCjkLKmJeBqEw" x="440" y="490" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6kQmMPPlEeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6kR0UPPlEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6kR0UfPlEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6kSbYPPlEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6kSbYfPlEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6kSbYvPlEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6kSbY_PlEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6kTCcPPlEeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_6kTCcfPlEeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_6kTCcvPlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6kTCc_PlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6kTCdPPlEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6kTCdfPlEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_6kTCdvPlEeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_6kTCd_PlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6kTCePPlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6kTCefPlEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6kTCevPlEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_6kTCe_PlEeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_6kTCfPPlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6kTpgPPlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6kTpgfPlEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6kTpgvPlEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9XHIUPPlEeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9XHvYPPlEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9XHvYfPlEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9XHvYvPlEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9XHvY_PlEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9XHvZPPlEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9XHvZfPlEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9XHvZvPlEeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_-m0csPPlEeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_-Y2SIPPlEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-m0csfPlEeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9XHvZ_PlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9XHvaPPlEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9XHvafPlEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9XHvavPlEeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_9WUeIPPlEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9XHIUfPlEeCjkLKmJeBqEw" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_nFgulfNREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6kRNQPPlEeCjkLKmJeBqEw" x="440" y="565" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_IDUzYPPmEeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IDVacPPmEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IDVacfPmEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IDVacvPmEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IDVac_PmEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IDWBgPPmEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IDWBgfPmEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_IDWBgvPmEeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IDWBg_PmEeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IDWBhPPmEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IDWBhfPmEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IDWBhvPmEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IDWBh_PmEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IDWBiPPmEeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IDWBifPmEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IDWBivPmEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IDWBi_PmEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IDWBjPPmEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IDWBjfPmEeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IDWBjvPmEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IDWBj_PmEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IDWBkPPmEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IDWBkfPmEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_KEkSYPPmEeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KEk5cPPmEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KEk5cfPmEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KEk5cvPmEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KEk5c_PmEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KElggPPmEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KElggfPmEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_KElggvPmEeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_LFKzwPPmEeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_K1AQ0PPmEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LFKzwfPmEeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_KElgg_PmEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_KElghPPmEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_KElghfPmEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KElghvPmEeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_KDvzAPPmEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KEkSYfPmEeCjkLKmJeBqEw" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_nFguovNREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IDUzYfPmEeCjkLKmJeBqEw" x="440" y="640" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_UI-9oPPmEeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UJALwPPmEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UJALwfPmEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UJAy0PPmEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UJAy0fPmEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UJAy0vPmEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UJAy0_PmEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UJBZ4PPmEeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_UJBZ4fPmEeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_UJBZ4vPmEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_UJBZ4_PmEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_UJBZ5PPmEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UJBZ5fPmEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_UJBZ5vPmEeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_UJBZ5_PmEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_UJBZ6PPmEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_UJBZ6fPmEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UJBZ6vPmEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_UJCA8PPmEeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_UJCA8fPmEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_UJCA8vPmEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_UJCA8_PmEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UJCA9PPmEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WaklwPPmEeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WalM0PPmEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WalM0fPmEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WalM0vPmEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WalM0_PmEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WalM1PPmEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WalM1fPmEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WalM1vPmEeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_XjGUEPPmEeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_XU-YgPPmEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XjGUEfPmEeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WalM1_PmEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_WalM2PPmEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_WalM2fPmEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WalM2vPmEeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_WZscAPPmEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WaklwfPmEeCjkLKmJeBqEw" x="90" y="-10"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="alflibrary.uml#_nFgur_NREeCfS7qBvajEQQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UI-9ofPmEeCjkLKmJeBqEw" x="615" y="40" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_y0fBoPPmEeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y0gPwPPmEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y0g20PPmEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y0g20fPmEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y0g20vPmEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y0g20_PmEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y0hd4PPmEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_y0hd4fPmEeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_y0hd4vPmEeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_y0hd4_PmEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_y0hd5PPmEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_y0hd5fPmEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y0hd5vPmEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_y0hd5_PmEeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_y0hd6PPmEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_y0iE8PPmEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_y0iE8fPmEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y0iE8vPmEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_y0iE8_PmEeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_y0iE9PPmEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_y0iE9fPmEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_y0iE9vPmEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y0iE9_PmEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2T-nUPPmEeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2T_OYPPmEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2T_OYfPmEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2T_OYvPmEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2T_OY_PmEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2T_1cPPmEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2T_1cfPmEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2T_1cvPmEeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_3UrPUPPmEeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_3Hu_gPPmEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3UrPUfPmEeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2T_1c_PmEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2T_1dPPmEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2T_1dfPmEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2T_1dvPmEeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_2TjJgPPmEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2T-nUfPmEeCjkLKmJeBqEw" x="80" y="-10"/>
+ </children>
+ <element xmi:type="uml:Activity" href="alflibrary.uml#_vDk70PPmEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y0fosPPmEeCjkLKmJeBqEw" x="615" y="115" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tN7zYPPnEeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tN9okPPnEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tN9okfPnEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tN9okvPnEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tN9ok_PnEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tN-PoPPnEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tN-PofPnEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tN-PovPnEeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tN-Po_PnEeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tN-PpPPnEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tN-PpfPnEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tN-PpvPnEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tN-Pp_PnEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tN-2sPPnEeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tN-2sfPnEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tN-2svPnEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tN-2s_PnEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tN-2tPPnEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tN-2tfPnEeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tN-2tvPnEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tN-2t_PnEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tN-2uPPnEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tN-2ufPnEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xGeLMPPnEeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xGeyQPPnEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xGeyQfPnEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xGfZUPPnEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xGfZUfPnEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xGfZUvPnEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xGfZU_PnEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xGfZVPPnEeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_ySLwYPPnEeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_yFoiIPPnEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ySMXcPPnEeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_xGfZVfPnEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xGfZVvPnEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xGfZV_PnEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xGfZWPPnEeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_xGIM8PPnEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xGeLMfPnEeCjkLKmJeBqEw" x="80" y="-10"/>
+ </children>
+ <element xmi:type="uml:Activity" href="alflibrary.uml#_ZLNr8PPnEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tN8acPPnEeCjkLKmJeBqEw" x="615" y="190" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_U8CgUPPoEeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U8DucPPoEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U8DucfPoEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U8DucvPoEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U8Duc_PoEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U8EVgPPoEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U8EVgfPoEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_U8EVgvPoEeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_U8EVg_PoEeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_U8EVhPPoEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_U8EVhfPoEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_U8EVhvPoEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U8EVh_PoEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_U8E8kPPoEeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_U8E8kfPoEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_U8E8kvPoEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_U8E8k_PoEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U8E8lPPoEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_U8E8lfPoEeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_U8E8lvPoEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_U8E8l_PoEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_U8E8mPPoEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U8E8mfPoEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XSs1sPPoEeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XSs1svPoEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XSs1s_PoEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XSs1tPPoEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XStcwPPoEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XStcwfPoEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XStcwvPoEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XStcw_PoEeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_YhPscPPoEeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_YRs0kPPoEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YhPscfPoEeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XStcxPPoEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_XStcxfPoEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_XStcxvPoEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XStcx_PoEeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_XSYsoPPoEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XSs1sfPoEeCjkLKmJeBqEw" x="80" y="-10"/>
+ </children>
+ <element xmi:type="uml:Activity" href="alflibrary.uml#_-S0QsPPnEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U8CgUfPoEeCjkLKmJeBqEw" x="615" y="265" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qIL4gPPpEeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qINGoPPpEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qINGofPpEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qINtsPPpEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qINtsfPpEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qINtsvPpEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qINts_PpEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qIOUwPPpEeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qIOUwfPpEeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qIOUwvPpEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qIOUw_PpEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qIOUxPPpEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qIOUxfPpEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qIOUxvPpEeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qIOUx_PpEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qIOUyPPpEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qIOUyfPpEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qIOUyvPpEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qIO70PPpEeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qIO70fPpEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qIO70vPpEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qIO70_PpEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qIO71PPpEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tKGKUPPpEeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tKGxYPPpEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tKGxYfPpEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tKGxYvPpEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tKGxY_PpEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tKHYcPPpEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tKHYcfPpEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tKHYcvPpEeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_ufJ4wPPpEeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_uPg6QPPpEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ufJ4wfPpEeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tKHYc_PpEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tKHYdPPpEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tKHYdfPpEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tKHYdvPpEeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_tJo3UPPpEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tKGKUfPpEeCjkLKmJeBqEw" x="80" y="-10"/>
+ </children>
+ <element xmi:type="uml:Activity" href="alflibrary.uml#_Qye0gPPpEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qIL4gfPpEeCjkLKmJeBqEw" x="615" y="340" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SrP3gPPqEeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SrRFoPPqEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SrRFofPqEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SrRFovPqEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SrRFo_PqEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SrRssPPqEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SrRssfPqEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SrRssvPqEeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SrRss_PqEeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SrRstPPqEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SrRstfPqEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SrRstvPqEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SrRst_PqEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SrSTwPPqEeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SrSTwfPqEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SrSTwvPqEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SrSTw_PqEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SrSTxPPqEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SrSTxfPqEeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SrSTxvPqEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SrSTx_PqEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SrSTyPPqEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SrSTyfPqEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_VNubUPPqEeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VNvpcPPqEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VNvpcfPqEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VNvpcvPqEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VNvpc_PqEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VNwQgPPqEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VNwQgfPqEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VNwQgvPqEeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_WEHQwPPqEeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_V2BKYPPqEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WEHQwfPqEeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_VNwQg_PqEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_VNwQhPPqEeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_VNwQhfPqEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VNwQhvPqEeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_VNOsEPPqEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VNubUfPqEeCjkLKmJeBqEw" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:Activity" href="alflibrary.uml#__TPhAPPpEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SrP3gfPqEeCjkLKmJeBqEw" x="615" y="415" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LpwM4PP5EeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LpxbAPP5EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LpxbAfP5EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LpxbAvP5EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LpxbA_P5EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LpyCEPP5EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LpyCEfP5EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LpyCEvP5EeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LpyCE_P5EeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LpyCFPP5EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LpyCFfP5EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LpyCFvP5EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LpyCF_P5EeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LpypIPP5EeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LpypIfP5EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LpypIvP5EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LpypI_P5EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LpypJPP5EeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LpypJfP5EeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LpypJvP5EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LpypJ_P5EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LpypKPP5EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LpypKfP5EeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_OBNMcPP5EeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OBNzgPP5EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OBNzgfP5EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OBNzgvP5EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OBNzg_P5EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OBNzhPP5EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OBNzhfP5EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_OBNzhvP5EeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_O_4bMPP5EeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_OtK6kPP5EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O_4bMfP5EeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_OBNzh_P5EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_OBNziPP5EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_OBNzifP5EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OBNzivP5EeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_OAxuoPP5EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OBNMcfP5EeCjkLKmJeBqEw" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:Activity" href="alflibrary.uml#_iQZncPPqEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LpwM4fP5EeCjkLKmJeBqEw" x="615" y="490" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_sFbOAPP5EeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sFb1EPP5EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sFccIPP5EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sFccIfP5EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sFccIvP5EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sFccI_P5EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sFdDMPP5EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_sFdDMfP5EeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sFdDMvP5EeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_sFdDM_P5EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_sFdDNPP5EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_sFdDNfP5EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sFdDNvP5EeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sFdDN_P5EeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_sFdDOPP5EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_sFdDOfP5EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_sFdDOvP5EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sFdDO_P5EeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sFdqQPP5EeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_sFdqQfP5EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_sFdqQvP5EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_sFdqQ_P5EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sFdqRPP5EeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_vHfQ0PP5EeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vHfQ0vP5EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vHfQ0_P5EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vHf34PP5EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vHf34fP5EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vHf34vP5EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vHf34_P5EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vHf35PP5EeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_v-S9APP5EeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_vvRCgPP5EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_v-S9AfP5EeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_vHf35fP5EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_vHf35vP5EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_vHf35_P5EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vHf36PP5EeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_vG5a8PP5EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vHfQ0fP5EeCjkLKmJeBqEw" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:Activity" href="alflibrary.uml#_Z-Z-QPP5EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sFbOAfP5EeCjkLKmJeBqEw" x="615" y="565" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_PNlDgPP6EeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PNmRoPP6EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PNmRofP6EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PNm4sPP6EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PNm4sfP6EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PNm4svP6EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PNm4s_P6EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_PNnfwPP6EeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PNnfwfP6EeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PNnfwvP6EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PNnfw_P6EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PNnfxPP6EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PNnfxfP6EeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PNnfxvP6EeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PNnfx_P6EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PNnfyPP6EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PNnfyfP6EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PNnfyvP6EeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PNnfy_P6EeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PNnfzPP6EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PNnfzfP6EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PNnfzvP6EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PNnfz_P6EeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_RylW4PP6EeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ryl98PP6EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ryl98fP6EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ryl98vP6EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ryl98_P6EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ryl99PP6EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ryl99fP6EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RymlAPP6EeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_SvkjkPP6EeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_Sf0QUPP6EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SvkjkfP6EeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RymlAfP6EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RymlAvP6EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RymlA_P6EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RymlBPP6EeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_Rx-S4PP6EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RylW4fP6EeCjkLKmJeBqEw" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:Activity" href="alflibrary.uml#_90f30PP5EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PNlqkPP6EeCjkLKmJeBqEw" x="615" y="640" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wLYhUPP6EeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wLZvcPP6EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wLZvcfP6EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wLZvcvP6EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wLaWgPP6EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wLaWgfP6EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wLaWgvP6EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wLaWg_P6EeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wLaWhPP6EeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wLaWhfP6EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wLaWhvP6EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wLaWh_P6EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wLaWiPP6EeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wLa9kPP6EeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wLa9kfP6EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wLa9kvP6EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wLa9k_P6EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wLa9lPP6EeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wLa9lfP6EeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wLa9lvP6EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wLa9l_P6EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wLa9mPP6EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wLa9mfP6EeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_y-qhQPP6EeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y-rIUPP6EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y-rIUfP6EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y-rIUvP6EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y-rIU_P6EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y-rvYPP6EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y-rvYfP6EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_y-rvYvP6EeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_z5tNMPP6EeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_zp52oPP6EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_z5tNMfP6EeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_y-rvY_P6EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_y-rvZPP6EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_y-rvZfP6EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y-rvZvP6EeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_y-I80PP6EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y-qhQfP6EeCjkLKmJeBqEw" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:Activity" href="alflibrary.uml#_fDa60PP6EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wLYhUfP6EeCjkLKmJeBqEw" x="790" y="40" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3iBs0PP8EeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3iC68PP8EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3iC68fP8EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3iC68vP8EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3iC68_P8EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3iDiAPP8EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3iDiAfP8EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3iDiAvP8EeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3iDiA_P8EeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3iDiBPP8EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3iDiBfP8EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3iDiBvP8EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3iDiB_P8EeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3iDiCPP8EeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3iDiCfP8EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3iDiCvP8EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3iDiC_P8EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3iDiDPP8EeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3iEJEPP8EeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3iEJEfP8EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3iEJEvP8EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3iEJE_P8EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3iEJFPP8EeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_5zO6cPP8EeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5zPhgPP8EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5zPhgfP8EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5zPhgvP8EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5zPhg_P8EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5zPhhPP8EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5zPhhfP8EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5zPhhvP8EeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_6qvxQPP8EeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_6d7dQPP8EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6qvxQfP8EeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5zPhh_P8EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5zPhiPP8EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5zPhifP8EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5zPhivP8EeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_5ysu8PP8EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5zO6cfP8EeCjkLKmJeBqEw" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:Activity" href="alflibrary.uml#_c2ooQPP8EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3iBs0fP8EeCjkLKmJeBqEw" x="790" y="115" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_go6xoPP9EeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_go7_wPP9EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_go7_wfP9EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_go7_wvP9EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_go7_w_P9EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_go8m0PP9EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_go8m0fP9EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_go8m0vP9EeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_go8m0_P9EeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_go8m1PP9EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_go8m1fP9EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_go8m1vP9EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_go8m1_P9EeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_go8m2PP9EeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_go8m2fP9EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_go8m2vP9EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_go8m2_P9EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_go8m3PP9EeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_go9N4PP9EeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_go9N4fP9EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_go9N4vP9EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_go9N4_P9EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_go9N5PP9EeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ivYu4PP9EeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ivZV8PP9EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ivZV8fP9EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ivZV8vP9EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ivZV8_P9EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ivZV9PP9EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ivZ9APP9EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ivZ9AfP9EeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_jluhAPP9EeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_jWytIPP9EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jluhAfP9EeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ivZ9AvP9EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ivZ9A_P9EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ivZ9BPP9EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ivZ9BfP9EeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_iuunkPP9EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ivYu4fP9EeCjkLKmJeBqEw" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:Activity" href="alflibrary.uml#_Gm9EkPP9EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_go6xofP9EeCjkLKmJeBqEw" x="790" y="190" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0NWakPP9EeCjkLKmJeBqEw" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0NXosPP9EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0NXosfP9EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0NXosvP9EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0NXos_P9EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0NXotPP9EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0NYPwPP9EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0NYPwfP9EeCjkLKmJeBqEw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0NYPwvP9EeCjkLKmJeBqEw" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0NYPw_P9EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0NYPxPP9EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0NYPxfP9EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0NYPxvP9EeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0NYPx_P9EeCjkLKmJeBqEw" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0NYPyPP9EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0NYPyfP9EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0NYPyvP9EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0NYPy_P9EeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0NY20PP9EeCjkLKmJeBqEw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0NY20fP9EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0NY20vP9EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0NY20_P9EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0NY21PP9EeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2emrgPP9EeCjkLKmJeBqEw" type="3015" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2enSkPP9EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2enSkfP9EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2enSkvP9EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2enSk_P9EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2enSlPP9EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2enSlfP9EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2enSlvP9EeCjkLKmJeBqEw" type="7014">
+ <children xmi:type="notation:Shape" xmi:id="_3lAS4PP9EeCjkLKmJeBqEw" type="3031" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:ClassifierTemplateParameter" href="alflibrary.uml#_3WumUPP9EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3lAS4fP9EeCjkLKmJeBqEw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2enSl_P9EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2enSmPP9EeCjkLKmJeBqEw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2enSmfP9EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2enSmvP9EeCjkLKmJeBqEw"/>
+ </children>
+ <element xmi:type="uml:RedefinableTemplateSignature" href="alflibrary.uml#_2eDR4PP9EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2emrgfP9EeCjkLKmJeBqEw" x="85" y="-10"/>
+ </children>
+ <element xmi:type="uml:Activity" href="alflibrary.uml#_ums7IPP9EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0NWakfP9EeCjkLKmJeBqEw" x="790" y="265" height="61"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_6Xi_IfNREeCfS7qBvajEQQ"/>
+ <element xmi:type="uml:Package" href="alflibrary.uml#_nFgGsPNREeCfS7qBvajEQQ"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_n6KCEPPmEeCjkLKmJeBqEw" type="CompositeStructure" name="CompositeDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_vEBnwPPmEeCjkLKmJeBqEw" type="2060" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vECO0PPmEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vECO0fPmEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vECO0vPmEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vEC14PPmEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vEC14fPmEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vEC14vPmEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vEC14_PmEeCjkLKmJeBqEw" type="5112"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_vEC15PPmEeCjkLKmJeBqEw" type="7063">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_vEC15fPmEeCjkLKmJeBqEw" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vEC15vPmEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_74TLgPPmEeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_74TykPPmEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_74TykfPmEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_74TykvPmEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_74Tyk_PmEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_74UZoPPmEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_74UZofPmEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_74UZovPmEeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_74UZo_PmEeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_74UZpPPmEeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_74UZpfPmEeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_733GoPPmEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_74TLgfPmEeCjkLKmJeBqEw" x="-10" y="55" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ENFsMPPnEeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ENGTQPPnEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ENGTQfPnEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ENGTQvPnEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ENGTQ_PnEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ENGTRPPnEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ENGTRfPnEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ENG6UPPnEeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ENG6UfPnEeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ENG6UvPnEeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ENG6U_PnEeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_EMtRsPPnEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ENFsMfPnEeCjkLKmJeBqEw" x="-10" y="83" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Hcx7UPPnEeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HcyiYPPnEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HcyiYfPnEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HcyiYvPnEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HcyiY_PnEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HcyiZPPnEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HczJcPPnEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_HczJcfPnEeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_HczJcvPnEeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_HczJc_PnEeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_HczJdPPnEeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_HcdyQPPnEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hcx7UfPnEeCjkLKmJeBqEw" x="181" y="69" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:Activity" href="alflibrary.uml#_vDk70PPmEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vEBnwfPmEeCjkLKmJeBqEw" x="65" y="35" width="191" height="116"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZLjDIPPnEeCjkLKmJeBqEw" type="2060" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZLjqMfPnEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZLkRQPPnEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZLkRQfPnEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZLkRQvPnEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZLkRQ_PnEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZLkRRPPnEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZLkRRfPnEeCjkLKmJeBqEw" type="5112"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ZLkRRvPnEeCjkLKmJeBqEw" type="7063">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ZLkRR_PnEeCjkLKmJeBqEw" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZLkRSPPnEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cbl3kPPnEeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cbmeoPPnEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cbmeofPnEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cbmeovPnEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cbnFsPPnEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cbnFsfPnEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cbnFsvPnEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cbnFs_PnEeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cbnFtPPnEeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cbnFtfPnEeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cbnFtvPnEeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_cbNdEPPnEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cbl3kfPnEeCjkLKmJeBqEw" x="-10" y="50" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_h3VukPPnEeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_h3WVoPPnEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_h3WVofPnEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_h3WVovPnEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_h3WVo_PnEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_h3WVpPPnEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_h3WVpfPnEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_h3W8sPPnEeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_h3W8sfPnEeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_h3W8svPnEeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_h3W8s_PnEeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_h29UEPPnEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_h3VukfPnEeCjkLKmJeBqEw" x="-10" y="82" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_oF6wsPPnEeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oF7XwPPnEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oF7XwfPnEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oF7XwvPnEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oF7Xw_PnEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oF7XxPPnEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oF7XxfPnEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oF7XxvPnEeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oF7Xx_PnEeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oF7-0PPnEeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oF7-0fPnEeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_oFkLYPPnEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oF6wsfPnEeCjkLKmJeBqEw" x="181" y="67" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:Activity" href="alflibrary.uml#_ZLNr8PPnEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZLjqMPPnEeCjkLKmJeBqEw" x="65" y="160" width="191" height="116"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-TOgYPPnEeCjkLKmJeBqEw" type="2060" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-TPHcPPnEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-TPHcfPnEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-TPHcvPnEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-TPugPPnEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-TPugfPnEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-TPugvPnEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-TPug_PnEeCjkLKmJeBqEw" type="5112"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-TPuhPPnEeCjkLKmJeBqEw" type="7063">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-TPuhfPnEeCjkLKmJeBqEw" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-TPuhvPnEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BoZFYPPoEeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BoZFYvPoEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BoZscPPoEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BoZscfPoEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BoZscvPoEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BoZsc_PoEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BoZsdPPoEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BoZsdfPoEeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BoZsdvPoEeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BoZsd_PoEeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BoaTgPPoEeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_BoDuMPPoEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BoZFYfPoEeCjkLKmJeBqEw" x="-10" y="54" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GeHeMPPoEeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GeIFQPPoEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GeIFQfPoEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GeIFQvPoEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GeIFQ_PoEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GeIFRPPoEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GeIFRfPoEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GeIFRvPoEeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GeIFR_PoEeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GeIsUPPoEeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GeIsUfPoEeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_Gdt1kPPoEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GeHeMfPoEeCjkLKmJeBqEw" x="-10" y="84" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LM6voPPoEeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LM7WsPPoEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LM7WsfPoEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LM7WsvPoEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LM7Ws_PoEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LM7WtPPoEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LM79wPPoEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LM79wfPoEeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LM79wvPoEeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LM79w_PoEeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LM79xPPoEeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_LMlYcPPoEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LM6vofPoEeCjkLKmJeBqEw" x="-10" y="112" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_PsxmIPPoEeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PsyNMPPoEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PsyNMfPoEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PsyNMvPoEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Psy0QPPoEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Psy0QfPoEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Psy0QvPoEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Psy0Q_PoEeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Psy0RPPoEeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Psy0RfPoEeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Psy0RvPoEeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_PsbA0PPoEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PsxmIfPoEeCjkLKmJeBqEw" x="181" y="83" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:Activity" href="alflibrary.uml#_-S0QsPPnEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-TOgYfPnEeCjkLKmJeBqEw" x="65" y="285" width="191" height="136"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QzGfkPPpEeCjkLKmJeBqEw" type="2060" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QzHGoPPpEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QzHGofPpEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QzHGovPpEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QzHGo_PpEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QzHtsPPpEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QzHtsfPpEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QzHtsvPpEeCjkLKmJeBqEw" type="5112"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QzHts_PpEeCjkLKmJeBqEw" type="7063">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QzHttPPpEeCjkLKmJeBqEw" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QzHttfPpEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_VgVqwPPpEeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VgWR0PPpEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VgWR0fPpEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VgWR0vPpEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VgWR0_PpEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VgWR1PPpEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VgW44PPpEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VgW44fPpEeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VgW44vPpEeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VgW44_PpEeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VgW45PPpEeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_Vf-eYPPpEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VgVqwfPpEeCjkLKmJeBqEw" x="-10" y="51" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_agApwPPpEeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_agBQ0PPpEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_agBQ0fPpEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_agBQ0vPpEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_agBQ0_PpEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_agBQ1PPpEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_agBQ1fPpEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_agB34PPpEeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_agB34fPpEeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_agB34vPpEeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_agB34_PpEeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_afoPQPPpEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_agApwfPpEeCjkLKmJeBqEw" x="-10" y="80" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_e4maoPPpEeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_e4nBsPPpEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_e4nBsfPpEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_e4nBsvPpEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_e4nBs_PpEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_e4nBtPPpEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_e4nBtfPpEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_e4nBtvPpEeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_e4nBt_PpEeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_e4nowPPpEeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_e4nowfPpEeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_e4OnMPPpEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_e4maofPpEeCjkLKmJeBqEw" x="-10" y="107" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_k3OVMPPpEeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_k3O8QPPpEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k3O8QfPpEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_k3O8QvPpEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k3O8Q_PpEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_k3O8RPPpEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_k3O8RfPpEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_k3O8RvPpEeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_k3O8R_PpEeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_k3PjUPPpEeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_k3PjUfPpEeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_k24-APPpEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k3OVMfPpEeCjkLKmJeBqEw" x="181" y="80" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:Activity" href="alflibrary.uml#_Qye0gPPpEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QzGfkfPpEeCjkLKmJeBqEw" x="65" y="430" width="191" height="136"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__T2lAPPpEeCjkLKmJeBqEw" type="2060" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__T3MEPPpEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__T3MEfPpEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__T3MEvPpEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__T3ME_PpEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__T3zIPPpEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__T3zIfPpEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="__T3zIvPpEeCjkLKmJeBqEw" type="5112"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__T3zI_PpEeCjkLKmJeBqEw" type="7063">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__T3zJPPpEeCjkLKmJeBqEw" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__T3zJfPpEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CfZT8PPqEeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CfZ7APPqEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CfZ7AfPqEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CfZ7AvPqEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CfZ7A_PqEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CfZ7BPPqEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CfaiEPPqEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CfaiEfPqEeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CfaiEvPqEeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CfaiE_PqEeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CfaiFPPqEeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_CfCHkPPqEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CfZT8fPqEeCjkLKmJeBqEw" x="-10" y="50" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GnyFoPPqEeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GnyssPPqEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GnyssfPqEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GnyssvPqEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Gnyss_PqEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GnzTwPPqEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GnzTwfPqEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GnzTwvPqEeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GnzTw_PqEeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GnzTxPPqEeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GnzTxfPqEeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_GnaSMPPqEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GnyFofPqEeCjkLKmJeBqEw" x="-10" y="82" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LdG10PPqEeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LdHc4PPqEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LdHc4fPqEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LdHc4vPqEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LdHc4_PqEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LdHc5PPqEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LdHc5fPqEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LdHc5vPqEeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LdHc5_PqEeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LdHc6PPqEeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LdHc6fPqEeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_Lct0QPPqEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LdG10fPqEeCjkLKmJeBqEw" x="181" y="69" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:Activity" href="alflibrary.uml#__TPhAPPpEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__T2lAfPpEeCjkLKmJeBqEw" x="65" y="575" width="191" height="116"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_iQ1FQPPqEeCjkLKmJeBqEw" type="2060" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iQ1sUPPqEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iQ1sUfPqEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iQ1sUvPqEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iQ1sU_PqEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iQ1sVPPqEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iQ1sVfPqEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iQ1sVvPqEeCjkLKmJeBqEw" type="5112"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iQ2TYPPqEeCjkLKmJeBqEw" type="7063">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iQ2TYfPqEeCjkLKmJeBqEw" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iQ2TYvPqEeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_o3zZQPPqEeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_o30AUPPqEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o30AUfPqEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_o30AUvPqEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o30AU_PqEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_o30AVPPqEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_o30nYPPqEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_o30nYfPqEeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_o30nYvPqEeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_o30nY_PqEeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_o30nZPPqEeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_o3aXsPPqEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_o3zZQfPqEeCjkLKmJeBqEw" x="-10" y="56" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tuI2EPPqEeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tuI2EvPqEeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tuI2E_PqEeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tuJdIPPqEeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tuJdIfPqEeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tuJdIvPqEeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tuJdI_PqEeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tuJdJPPqEeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tuJdJfPqEeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tuJdJvPqEeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tuJdJ_PqEeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_ttxpsPPqEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tuI2EfPqEeCjkLKmJeBqEw" x="-10" y="89" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__7yw8PP4EeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__7zYAPP4EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__7zYAfP4EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__7zYAvP4EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__7zYA_P4EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__7zYBPP4EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__7zYBfP4EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="__7zYBvP4EeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__7zYB_P4EeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="__7zYCPP4EeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__7z_EPP4EeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#__7RzkPP4EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__7yw8fP4EeCjkLKmJeBqEw" x="181" y="75" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:Activity" href="alflibrary.uml#_iQZncPPqEeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iQ1FQfPqEeCjkLKmJeBqEw" x="375" y="35" width="191" height="116"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Z-2DIPP5EeCjkLKmJeBqEw" type="2060" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z-2qMPP5EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z-2qMfP5EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z-2qMvP5EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z-2qM_P5EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z-2qNPP5EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z-2qNfP5EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z-2qNvP5EeCjkLKmJeBqEw" type="5112"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Z-2qN_P5EeCjkLKmJeBqEw" type="7063">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Z-2qOPP5EeCjkLKmJeBqEw" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z-2qOfP5EeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_epLrUPP5EeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_epMSYPP5EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_epMSYfP5EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_epMSYvP5EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_epMSY_P5EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_epMSZPP5EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_epMSZfP5EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_epMSZvP5EeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_epM5cPP5EeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_epM5cfP5EeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_epM5cvP5EeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_eotKMPP5EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_epLrUfP5EeCjkLKmJeBqEw" x="-10" y="50" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kOBz8PP5EeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kOCbAPP5EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kOCbAfP5EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kOCbAvP5EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kODCEPP5EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kODCEfP5EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kODCEvP5EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kODCE_P5EeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kODCFPP5EeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kODCFfP5EeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kODCFvP5EeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_kNqAgPP5EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kOBz8fP5EeCjkLKmJeBqEw" x="-10" y="89" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nvNbsPP5EeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nvOCwPP5EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nvOCwfP5EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nvOCwvP5EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nvOp0PP5EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nvOp0fP5EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nvOp0vP5EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_nvOp0_P5EeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nvOp1PP5EeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_nvOp1fP5EeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nvOp1vP5EeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_nuzMAPP5EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nvNbsfP5EeCjkLKmJeBqEw" x="181" y="68" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:Activity" href="alflibrary.uml#_Z-Z-QPP5EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z-2DIfP5EeCjkLKmJeBqEw" x="375" y="160" width="191" height="116"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_91D4gPP5EeCjkLKmJeBqEw" type="2060" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_91EfkPP5EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_91EfkfP5EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_91EfkvP5EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_91Efk_P5EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_91EflPP5EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_91EflfP5EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_91EflvP5EeCjkLKmJeBqEw" type="5112"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_91Efl_P5EeCjkLKmJeBqEw" type="7063">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_91EfmPP5EeCjkLKmJeBqEw" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_91EfmfP5EeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AdALIPP6EeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AdAyMPP6EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AdAyMfP6EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AdAyMvP6EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AdAyM_P6EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AdAyNPP6EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AdAyNfP6EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AdAyNvP6EeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AdAyN_P6EeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AdAyOPP6EeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AdAyOfP6EeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_AcktUPP6EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AdALIfP6EeCjkLKmJeBqEw" x="-10" y="50" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_EWC5QPP6EeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EWC5QvP6EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EWDgUPP6EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EWDgUfP6EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EWDgUvP6EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EWDgU_P6EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EWDgVPP6EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_EWDgVfP6EeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EWDgVvP6EeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_EWDgV_P6EeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EWDgWPP6EeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_EVk_MPP6EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EWC5QfP6EeCjkLKmJeBqEw" x="-10" y="86" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_IJ3JIPP6EeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IJ3wMPP6EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IJ3wMfP6EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IJ3wMvP6EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IJ3wM_P6EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IJ3wNPP6EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IJ3wNfP6EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_IJ3wNvP6EeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IJ3wN_P6EeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_IJ4XQPP6EeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IJ4XQfP6EeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_IJeHkPP6EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IJ3JIfP6EeCjkLKmJeBqEw" x="181" y="66" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:Activity" href="alflibrary.uml#_90f30PP5EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_91D4gfP5EeCjkLKmJeBqEw" x="375" y="285" width="191" height="116"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_fD0jcPP6EeCjkLKmJeBqEw" type="2060" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fD1KgPP6EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fD1KgfP6EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fD1xkPP6EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fD1xkfP6EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fD1xkvP6EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fD1xk_P6EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fD1xlPP6EeCjkLKmJeBqEw" type="5112"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_fD1xlfP6EeCjkLKmJeBqEw" type="7063">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_fD1xlvP6EeCjkLKmJeBqEw" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fD1xl_P6EeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hrVYQPP6EeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hrV_UPP6EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hrV_UfP6EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hrV_UvP6EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hrV_U_P6EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hrWmYPP6EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hrWmYfP6EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hrWmYvP6EeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hrWmY_P6EeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hrWmZPP6EeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hrWmZfP6EeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_hrBPMPP6EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hrVYQfP6EeCjkLKmJeBqEw" x="-10" y="53" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_noYlgPP6EeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_noZMkPP6EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_noZMkfP6EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_noZMkvP6EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_noZMk_P6EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_noZMlPP6EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_noZMlfP6EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_noZMlvP6EeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_noZMl_P6EeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_noZMmPP6EeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_noZMmfP6EeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_nn7SgPP6EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_noYlgfP6EeCjkLKmJeBqEw" x="-10" y="79" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_pabK4PP6EeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pabx8PP6EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pabx8fP6EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pabx8vP6EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pabx8_P6EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pabx9PP6EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pabx9fP6EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pacZAPP6EeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pacZAfP6EeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pacZAvP6EeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pacZA_P6EeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_pZ_GAPP6EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pabK4fP6EeCjkLKmJeBqEw" x="-10" y="107" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_rkLssPP6EeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rkLssvP6EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rkLss_P6EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rkMTwPP6EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rkMTwfP6EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rkMTwvP6EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rkMTw_P6EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_rkMTxPP6EeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_rkMTxfP6EeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_rkMTxvP6EeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_rkMTx_P6EeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_rjtLkPP6EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rkLssfP6EeCjkLKmJeBqEw" x="181" y="78" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:Activity" href="alflibrary.uml#_fDa60PP6EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fD0jcfP6EeCjkLKmJeBqEw" x="375" y="410" width="191" height="136"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_c3KzwPP8EeCjkLKmJeBqEw" type="2060" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_c3La0PP8EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_c3La0fP8EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_c3MB4PP8EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_c3MB4fP8EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_c3MB4vP8EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_c3MB4_P8EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_c3MB5PP8EeCjkLKmJeBqEw" type="5112"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_c3MB5fP8EeCjkLKmJeBqEw" type="7063">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_c3MB5vP8EeCjkLKmJeBqEw" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c3MB5_P8EeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jHRf4PP8EeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jHRf4vP8EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jHRf4_P8EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jHSG8PP8EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jHSG8fP8EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jHSG8vP8EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jHSG8_P8EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jHSG9PP8EeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jHSG9fP8EeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jHSG9vP8EeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jHSG9_P8EeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_jG0M4PP8EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jHRf4fP8EeCjkLKmJeBqEw" x="-10" y="56" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_m3N8YPP8EeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m3OjcPP8EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m3OjcfP8EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m3OjcvP8EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m3Ojc_P8EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m3OjdPP8EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m3OjdfP8EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_m3PKgPP8EeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_m3PKgfP8EeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_m3PKgvP8EeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_m3PKg_P8EeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_m2wpYPP8EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_m3N8YfP8EeCjkLKmJeBqEw" x="-10" y="80" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qK1CMPP8EeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qK1pQPP8EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qK1pQfP8EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qK1pQvP8EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qK1pQ_P8EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qK2QUPP8EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qK2QUfP8EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qK2QUvP8EeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qK2QU_P8EeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qK2QVPP8EeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qK2QVfP8EeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_qKV6APP8EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qK1CMfP8EeCjkLKmJeBqEw" x="-10" y="105" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_sttOoPP8EeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_stt1sPP8EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_stt1sfP8EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_stt1svP8EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_stt1s_P8EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_stt1tPP8EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_stt1tfP8EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_stt1tvP8EeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_stt1t_P8EeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_stt1uPP8EeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_stt1ufP8EeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_stOtgPP8EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sttOofP8EeCjkLKmJeBqEw" x="181" y="85" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:Activity" href="alflibrary.uml#_c2ooQPP8EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c3KzwfP8EeCjkLKmJeBqEw" x="375" y="555" width="191" height="136"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GnaXkPP9EeCjkLKmJeBqEw" type="2060" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GnaXkvP9EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Gna-oPP9EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Gna-ofP9EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Gna-ovP9EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Gna-o_P9EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Gna-pPP9EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Gna-pfP9EeCjkLKmJeBqEw" type="5112"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Gna-pvP9EeCjkLKmJeBqEw" type="7063">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Gna-p_P9EeCjkLKmJeBqEw" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Gna-qPP9EeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LNYdIPP9EeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LNYdIvP9EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LNYdI_P9EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LNZEMPP9EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LNZEMfP9EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LNZEMvP9EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LNZEM_P9EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LNZENPP9EeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LNZENfP9EeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LNZENvP9EeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LNZEN_P9EeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_LM-NcPP9EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LNYdIfP9EeCjkLKmJeBqEw" x="-10" y="53" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QNEqQPP9EeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QNFRUPP9EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QNFRUfP9EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QNFRUvP9EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QNFRU_P9EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QNFRVPP9EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QNFRVfP9EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QNFRVvP9EeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QNFRV_P9EeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QNFRWPP9EeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QNFRWfP9EeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_QMk7APP9EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QNEqQfP9EeCjkLKmJeBqEw" x="-10" y="78" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_UHB-YPP9EeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UHClcPP9EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UHClcfP9EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UHClcvP9EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UHClc_P9EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UHDMgPP9EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UHDMgfP9EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UHDMgvP9EeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UHDMg_P9EeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UHDMhPP9EeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UHDMhfP9EeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_UGekwPP9EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UHB-YfP9EeCjkLKmJeBqEw" x="-10" y="103" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Xqk9oPP9EeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Xqk9ovP9EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XqlksPP9EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XqlksfP9EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XqlksvP9EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Xqlks_P9EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XqlktPP9EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XqlktfP9EeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XqlktvP9EeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Xqlkt_P9EeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XqlkuPP9EeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_XqIRsPP9EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Xqk9ofP9EeCjkLKmJeBqEw" x="181" y="75" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:Activity" href="alflibrary.uml#_Gm9EkPP9EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GnaXkfP9EeCjkLKmJeBqEw" x="690" y="35" width="191" height="131"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_unSJ8PP9EeCjkLKmJeBqEw" type="2060" fontName="Segoe UI" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_unSxAPP9EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_unSxAfP9EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_unSxAvP9EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_unSxA_P9EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_unSxBPP9EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_unSxBfP9EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_unSxBvP9EeCjkLKmJeBqEw" type="5112"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_unTYEPP9EeCjkLKmJeBqEw" type="7063">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_unTYEfP9EeCjkLKmJeBqEw" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_unTYEvP9EeCjkLKmJeBqEw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w91KkPP9EeCjkLKmJeBqEw" type="3088" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w91xoPP9EeCjkLKmJeBqEw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_w91xofP9EeCjkLKmJeBqEw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w91xovP9EeCjkLKmJeBqEw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_w91xo_P9EeCjkLKmJeBqEw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w91xpPP9EeCjkLKmJeBqEw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_w91xpfP9EeCjkLKmJeBqEw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_w91xpvP9EeCjkLKmJeBqEw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w92YsPP9EeCjkLKmJeBqEw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_w92YsfP9EeCjkLKmJeBqEw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w92YsvP9EeCjkLKmJeBqEw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="alflibrary.uml#_w9SYAPP9EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w91KkfP9EeCjkLKmJeBqEw" x="-10" y="53" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:Activity" href="alflibrary.uml#_ums7IPP9EeCjkLKmJeBqEw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_unSJ8fP9EeCjkLKmJeBqEw" x="690" y="175" width="191" height="86"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_n6KCEfPmEeCjkLKmJeBqEw"/>
+ <element xmi:type="uml:Package" href="alflibrary.uml#_nFgGsPNREeCfS7qBvajEQQ"/>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/extraplugins/alf09/resources/alflibrary.uml b/extraplugins/alf09/resources/alflibrary.uml
new file mode 100644
index 00000000000..71057cdc1b2
--- /dev/null
+++ b/extraplugins/alf09/resources/alflibrary.uml
@@ -0,0 +1,3188 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Standard="http://www.eclipse.org/uml2/schemas/Standard/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/3.0.0/UML">
+ <uml:Model xmi:id="_0bBI4Hy5EeCKy5kSqd4eVw" name="Alf">
+ <packageImport xmi:id="_ZasfQH0_EeCKy5kSqd4eVw">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packageImport xmi:id="_E0bwcH1AEeCKy5kSqd4eVw">
+ <importedPackage xmi:type="uml:Model" href="fUMLlibrary.uml#_QP6hEHyXEeCAIan9YGu1mA"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Package" xmi:id="_6xFuIH09EeCKy5kSqd4eVw" name="Library">
+ <packagedElement xmi:type="uml:Package" xmi:id="_i6NtsH0_EeCKy5kSqd4eVw" name="PrimitiveTypes">
+ <packageImport xmi:id="_tRBwgH0_EeCKy5kSqd4eVw">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_6LrzoH1AEeCKy5kSqd4eVw" name="Natural">
+ <generalization xmi:id="_A3WaYH1BEeCKy5kSqd4eVw">
+ <general xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </generalization>
+ <generalization xmi:id="_ClLOIH1BEeCKy5kSqd4eVw">
+ <general xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
+ </generalization>
+ </packagedElement>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_9G_uMH1AEeCKy5kSqd4eVw" name="BitString"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_nVfmMH0_EeCKy5kSqd4eVw" name="PrimitiveBehaviors">
+ <packageImport xmi:id="_wdBLYH0_EeCKy5kSqd4eVw" importedPackage="_i6NtsH0_EeCKy5kSqd4eVw"/>
+ <packagedElement xmi:type="uml:Package" xmi:id="_fRoykH1BEeCKy5kSqd4eVw" name="BooleanFunctions">
+ <elementImport xmi:id="_uQxO4H1CEeCKy5kSqd4eVw" alias="|">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_iJlb4HyYEeCAIan9YGu1mA"/>
+ </elementImport>
+ <elementImport xmi:id="_ylLqYH1CEeCKy5kSqd4eVw" alias="^">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#__Mg_kHyYEeCAIan9YGu1mA"/>
+ </elementImport>
+ <elementImport xmi:id="_2lL8IH1CEeCKy5kSqd4eVw" alias="&amp;">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_LsHT0HyZEeCAIan9YGu1mA"/>
+ </elementImport>
+ <elementImport xmi:id="_6cQUUH1CEeCKy5kSqd4eVw" alias="!">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_VBDp8HyZEeCAIan9YGu1mA"/>
+ </elementImport>
+ <elementImport xmi:id="_BqomkH1DEeCKy5kSqd4eVw" alias="Implies">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_sAQwoHyZEeCAIan9YGu1mA"/>
+ </elementImport>
+ <elementImport xmi:id="_FIXRsH1DEeCKy5kSqd4eVw" alias="ToString">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_3q4LYHyeEeCAIan9YGu1mA"/>
+ </elementImport>
+ <elementImport xmi:id="_JCPtUH1DEeCKy5kSqd4eVw" alias="ToBoolean">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_L9g-IHyfEeCAIan9YGu1mA"/>
+ </elementImport>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_g16owH1BEeCKy5kSqd4eVw" name="IntegerFunctions">
+ <elementImport xmi:id="_0YGmEH-eEeCO_pg6CtXdNg" alias="Neg">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_oeYhIHygEeCAIan9YGu1mA"/>
+ </elementImport>
+ <elementImport xmi:id="_38_CEH-eEeCO_pg6CtXdNg" alias="Abs">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_9xT2wHyhEeCAIan9YGu1mA"/>
+ </elementImport>
+ <elementImport xmi:id="_6LuxkH-eEeCO_pg6CtXdNg" alias="+">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_96MicHygEeCAIan9YGu1mA"/>
+ </elementImport>
+ <elementImport xmi:id="_9B008H-eEeCO_pg6CtXdNg" alias="-">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_KKl9EHyhEeCAIan9YGu1mA"/>
+ </elementImport>
+ <elementImport xmi:id="_--_sQH-eEeCO_pg6CtXdNg" alias="*">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_2ff2AHyhEeCAIan9YGu1mA"/>
+ </elementImport>
+ <elementImport xmi:id="_BdPQUH-fEeCO_pg6CtXdNg" alias="/">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_aDhIIHyiEeCAIan9YGu1mA"/>
+ </elementImport>
+ <elementImport xmi:id="_EFBx8H-fEeCO_pg6CtXdNg" alias="%">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_kIpIkHyjEeCAIan9YGu1mA"/>
+ </elementImport>
+ <elementImport xmi:id="_Ir7EkH-fEeCO_pg6CtXdNg" alias="Max">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_tbNgIHyjEeCAIan9YGu1mA"/>
+ </elementImport>
+ <elementImport xmi:id="_OFB3QH-fEeCO_pg6CtXdNg" alias="Min">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_2euIAHyjEeCAIan9YGu1mA"/>
+ </elementImport>
+ <elementImport xmi:id="_Q2pqUH-fEeCO_pg6CtXdNg" alias="&lt;">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_Gd13IHykEeCAIan9YGu1mA"/>
+ </elementImport>
+ <elementImport xmi:id="_SWBLUH-fEeCO_pg6CtXdNg" alias=">">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_R44-IHykEeCAIan9YGu1mA"/>
+ </elementImport>
+ <elementImport xmi:id="_T528oH-fEeCO_pg6CtXdNg" alias="&lt;=">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_bUG7YHykEeCAIan9YGu1mA"/>
+ </elementImport>
+ <elementImport xmi:id="_VYBjwH-fEeCO_pg6CtXdNg" alias=">=">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_kPAZ0HykEeCAIan9YGu1mA"/>
+ </elementImport>
+ <elementImport xmi:id="_XZE1gH-fEeCO_pg6CtXdNg" alias="ToUnlimitedNatural">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_vEQFEHykEeCAIan9YGu1mA"/>
+ </elementImport>
+ <elementImport xmi:id="_aJWkwH-fEeCO_pg6CtXdNg" alias="ToInteger">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_xrcw0HykEeCAIan9YGu1mA"/>
+ </elementImport>
+ <elementImport xmi:id="_c8A5oH-fEeCO_pg6CtXdNg" alias="ToString">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_tAgrsHykEeCAIan9YGu1mA"/>
+ </elementImport>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_o_vxQH-fEeCO_pg6CtXdNg" name="ToNatural">
+ <ownedParameter xmi:id="_rmyE8H-fEeCO_pg6CtXdNg" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w3QgEH-fEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w28-EH-fEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_yPKuMH-fEeCO_pg6CtXdNg" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3N55EH-fEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3Nm-IH-fEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_jJvskH1BEeCKy5kSqd4eVw" name="StringFunctions">
+ <elementImport xmi:id="_N-y28H-gEeCO_pg6CtXdNg" alias="+">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_jCwzsHylEeCAIan9YGu1mA"/>
+ </elementImport>
+ <elementImport xmi:id="_P79uQH-gEeCO_pg6CtXdNg" alias="Size">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_2weUcHylEeCAIan9YGu1mA"/>
+ </elementImport>
+ <elementImport xmi:id="_SUQbUH-gEeCO_pg6CtXdNg" alias="Substring">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_EMRyQHymEeCAIan9YGu1mA"/>
+ </elementImport>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_kmbF8H1BEeCKy5kSqd4eVw" name="UnlimitedNaturalFunctions">
+ <elementImport xmi:id="_yAT9YH-gEeCO_pg6CtXdNg" alias="Min">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_lqywcHymEeCAIan9YGu1mA"/>
+ </elementImport>
+ <elementImport xmi:id="_zqaHsH-gEeCO_pg6CtXdNg" alias="Max">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_lqywenymEeCAIan9YGu1mA"/>
+ </elementImport>
+ <elementImport xmi:id="_1kTokH-gEeCO_pg6CtXdNg" alias=">">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_lqywhHymEeCAIan9YGu1mA"/>
+ </elementImport>
+ <elementImport xmi:id="_3ihBsH-gEeCO_pg6CtXdNg" alias=">=">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_lqywjnymEeCAIan9YGu1mA"/>
+ </elementImport>
+ <elementImport xmi:id="_5wq7UH-gEeCO_pg6CtXdNg" alias="&lt;">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_lqywmHymEeCAIan9YGu1mA"/>
+ </elementImport>
+ <elementImport xmi:id="_7K-WIH-gEeCO_pg6CtXdNg" alias="&lt;=">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_lqywonymEeCAIan9YGu1mA"/>
+ </elementImport>
+ <elementImport xmi:id="_85_csH-gEeCO_pg6CtXdNg" alias="ToInteger">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_oj32YHymEeCAIan9YGu1mA"/>
+ </elementImport>
+ <elementImport xmi:id="__QWQEH-gEeCO_pg6CtXdNg" alias="ToUnlimitedNatural">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_oj32Z3ymEeCAIan9YGu1mA"/>
+ </elementImport>
+ <elementImport xmi:id="_Cy2GcH-hEeCO_pg6CtXdNg" alias="ToString">
+ <importedElement xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_oj32bnymEeCAIan9YGu1mA"/>
+ </elementImport>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_nem0AH1BEeCKy5kSqd4eVw" name="BitStringFunctions">
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_3LVl4H-iEeCO_pg6CtXdNg" name="IsSet">
+ <ownedParameter xmi:id="_JdPP8H-jEeCO_pg6CtXdNg" name="b" visibility="public" type="_9G_uMH1AEeCKy5kSqd4eVw" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MbOrEH-jEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ma7wIH-jEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_NyG-cH-jEeCO_pg6CtXdNg" name="n" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QKZrgH-jEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QKP6gH-jEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_RcDgoH-jEeCO_pg6CtXdNg" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TtpIwH-jEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TtfXwH-jEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_43qk0H-iEeCO_pg6CtXdNg" name="BitLength">
+ <ownedParameter xmi:id="_YMDNwH-jEeCO_pg6CtXdNg" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_bBP5QH-jEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bA8-UH-jEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_7Q2pwH-iEeCO_pg6CtXdNg" name="ToBitString">
+ <ownedParameter xmi:id="_d3MLoH-jEeCO_pg6CtXdNg" name="n" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_k4BKEX-jEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_k4BKEH-jEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nWkQIH-jEeCO_pg6CtXdNg" name="result" visibility="public" type="_9G_uMH1AEeCKy5kSqd4eVw" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_pq-iwH-jEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_pq1Y0H-jEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_9pJW0H-iEeCO_pg6CtXdNg" name="ToInteger">
+ <ownedParameter xmi:id="_s3bQoH-jEeCO_pg6CtXdNg" name="b" visibility="public" type="_9G_uMH1AEeCKy5kSqd4eVw" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_vQ5pcH-jEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_vQwfgH-jEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_wIL2wH-jEeCO_pg6CtXdNg" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_yjT1YH-jEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_yjKEYH-jEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="__06q0H-iEeCO_pg6CtXdNg" name="ToHexString">
+ <ownedParameter xmi:id="_2Hl0cH-jEeCO_pg6CtXdNg" name="b" visibility="public" type="_9G_uMH1AEeCKy5kSqd4eVw" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3_slkH-jEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3_i0kH-jEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_8fcHUH-jEeCO_pg6CtXdNg" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-mcQEH-jEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-mSfEH-jEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_BZ8u8H-jEeCO_pg6CtXdNg" name="ToOctalString">
+ <ownedParameter xmi:id="_Aq6CMH-kEeCO_pg6CtXdNg" name="b" visibility="public" type="_9G_uMH1AEeCKy5kSqd4eVw" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Cl_O0H-kEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Cl2E4H-kEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_DIamcH-kEeCO_pg6CtXdNg" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GWym8H-kEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GWpdAH-kEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_TM4voH-kEeCO_pg6CtXdNg" name="~">
+ <ownedParameter xmi:id="_FKoHEH-qEeCO_pg6CtXdNg" name="b" visibility="public" type="_9G_uMH1AEeCKy5kSqd4eVw" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HJJCMH-qEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HI_RMH-qEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_H66dYH-qEeCO_pg6CtXdNg" name="result" visibility="public" type="_9G_uMH1AEeCKy5kSqd4eVw" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Lcz20H-qEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Lcg74H-qEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_TWuBEH-kEeCO_pg6CtXdNg" name="&amp;">
+ <ownedParameter xmi:id="_OVcQ0H-qEeCO_pg6CtXdNg" name="b1" visibility="public" type="_9G_uMH1AEeCKy5kSqd4eVw" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QG1V8H-qEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QGibAH-qEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_QmRrAH-qEeCO_pg6CtXdNg" name="b2" visibility="public" type="_9G_uMH1AEeCKy5kSqd4eVw" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SYIDIH-qEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SX-SIH-qEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_TNxRsH-qEeCO_pg6CtXdNg" name="result" visibility="public" type="_9G_uMH1AEeCKy5kSqd4eVw" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VLF6AH-qEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VKyYAH-qEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_TfqhsH-kEeCO_pg6CtXdNg" name="^">
+ <ownedParameter xmi:id="_a4xOgH-qEeCO_pg6CtXdNg" name="b1" visibility="public" type="_9G_uMH1AEeCKy5kSqd4eVw" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cuVpAH-qEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cuCuEH-qEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_e8fioH-qEeCO_pg6CtXdNg" name="b2" visibility="public" type="_9G_uMH1AEeCKy5kSqd4eVw" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hEi0QH-qEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hEZDQH-qEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_iDH8YH-qEeCO_pg6CtXdNg" name="result" visibility="public" type="_9G_uMH1AEeCKy5kSqd4eVw" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j9KnMH-qEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j9BdQH-qEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_Tpo9EH-kEeCO_pg6CtXdNg" name="|">
+ <ownedParameter xmi:id="_meZ04H-qEeCO_pg6CtXdNg" name="b1" visibility="public" type="_9G_uMH1AEeCKy5kSqd4eVw" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oW8q4H-qEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oWzg8H-qEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_o0T8UH-qEeCO_pg6CtXdNg" name="b2" visibility="public" type="_9G_uMH1AEeCKy5kSqd4eVw" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_qfmZcH-qEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qfS3cH-qEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_rv6x0H-qEeCO_pg6CtXdNg" name="result" visibility="public" type="_9G_uMH1AEeCKy5kSqd4eVw" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tnk3AH-qEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tnRVAH-qEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_T6VEcH-kEeCO_pg6CtXdNg" name="&lt;&lt;">
+ <ownedParameter xmi:id="_0iI1YH-qEeCO_pg6CtXdNg" name="b" visibility="public" type="_9G_uMH1AEeCKy5kSqd4eVw" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2aF1gH-qEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2Z8EgH-qEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_3Qob8H-qEeCO_pg6CtXdNg" name="n" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6CGeAH-qEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6B8tAH-qEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_73hHgH-qEeCO_pg6CtXdNg" name="result" visibility="public" type="_9G_uMH1AEeCKy5kSqd4eVw" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-2GYgH-qEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-1zdkH-qEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_UEUG4H-kEeCO_pg6CtXdNg" name=">>">
+ <ownedParameter xmi:id="_C5risH-rEeCO_pg6CtXdNg" name="b" visibility="public" type="_9G_uMH1AEeCKy5kSqd4eVw" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_E0wvUH-rEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_E0dNUH-rEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FS3AkH-rEeCO_pg6CtXdNg" name="n" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HEjnsH-rEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HEQFsH-rEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Icd10H-rEeCO_pg6CtXdNg" name="result" visibility="public" type="_9G_uMH1AEeCKy5kSqd4eVw" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KmdBIH-rEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KmTQIH-rEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_UOAOYH-kEeCO_pg6CtXdNg" name=">>>">
+ <ownedParameter xmi:id="_Lb8esH-rEeCO_pg6CtXdNg" name="b" visibility="public" type="_9G_uMH1AEeCKy5kSqd4eVw" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_O05-kH-rEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_O0wNkH-rEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_PTAP0H-rEeCO_pg6CtXdNg" name="n" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Q50coH-rEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Q5hhsH-rEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_RUpXcH-rEeCO_pg6CtXdNg" name="result" visibility="public" type="_9G_uMH1AEeCKy5kSqd4eVw" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TgHJcH-rEeCO_pg6CtXdNg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Tf0OgH-rEeCO_pg6CtXdNg" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_psK3wH1BEeCKy5kSqd4eVw" name="SequenceFunctions">
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_Rr7esPMdEeCxrPjksdBlsg" name="Size">
+ <ownedParameter xmi:id="_VaJc4PMdEeCxrPjksdBlsg" name="seq" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_a9meYPMdEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_a9d7gPMdEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_dj7ncPMdEeCxrPjksdBlsg" name="result" visibility="public" isOrdered="true" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kPrGsPMdEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kPjx8PMdEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_wbUkMPMdEeCxrPjksdBlsg" name="Includes">
+ <ownedParameter xmi:id="_1hfMwPMdEeCxrPjksdBlsg" name="seq" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_7DljYPMdEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7DeOoPMdEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_SpHqQPMeEeCxrPjksdBlsg" name="element" visibility="public" isOrdered="true" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ULrpMPMeEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ULk7gPMeEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_WNZCQPMeEeCxrPjksdBlsg" name="result" visibility="public" isOrdered="true" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Zn6oYPMeEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZnzToPMeEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_hfFY8PMeEeCxrPjksdBlsg" name="Excludes">
+ <ownedParameter xmi:id="_l3ZdAPMeEeCxrPjksdBlsg" name="seq" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rkC2wPMeEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rj8JEPMeEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_tQ-SoPMeEeCxrPjksdBlsg" name="element" visibility="public" isOrdered="true" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_uTpQkPMeEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uTii4PMeEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_vi2OoPMeEeCxrPjksdBlsg" name="result" visibility="public" isOrdered="true" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ziCBAPMeEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zh6sQPMeEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_6H_BUPMeEeCxrPjksdBlsg" name="Count">
+ <ownedParameter xmi:id="_9d_64PMeEeCxrPjksdBlsg" name="seq" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__pHHkPMeEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__pAZ4PMeEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_B60EcPMfEeCxrPjksdBlsg" name="element" visibility="public" isOrdered="true" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DLRmwPMfEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DLKSAPMfEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_EOc7APMfEeCxrPjksdBlsg" name="result" visibility="public" isOrdered="true" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Hmpl4PMfEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HmiRIPMfEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_KrugcPMfEeCxrPjksdBlsg" name="IsEmpty">
+ <ownedParameter xmi:id="_OI7nIPMfEeCxrPjksdBlsg" name="seq" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QHwrUPMfEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QHqksPMfEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_76OwIPMgEeC_DqPayyxqsA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_AEP5gPMhEeC_DqPayyxqsA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ADtuAPMhEeC_DqPayyxqsA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_FtNtIPMhEeC_DqPayyxqsA" name="NotEmpty">
+ <ownedParameter xmi:id="_I88_kPMhEeC_DqPayyxqsA" name="seq" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Kx8LQPMhEeC_DqPayyxqsA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Kxuv4PMhEeC_DqPayyxqsA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Nt1UoPMhEeC_DqPayyxqsA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QQ-m0PMhEeC_DqPayyxqsA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QQwkYPMhEeC_DqPayyxqsA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_VRTGEPMhEeC_DqPayyxqsA" name="IncludesAll">
+ <ownedParameter xmi:id="_Xk31wPMiEeC_DqPayyxqsA" name="seq1" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ag0pgPMiEeC_DqPayyxqsA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_agpqYPMiEeC_DqPayyxqsA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_bpRfUPMiEeC_DqPayyxqsA" name="seq2" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eDmzwPMiEeC_DqPayyxqsA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eDbNkPMiEeC_DqPayyxqsA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_gHYpYPMiEeC_DqPayyxqsA" name="result" visibility="public" isOrdered="true" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_idwq4PMiEeC_DqPayyxqsA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_idlrwPMiEeC_DqPayyxqsA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_lagv4PMiEeC_DqPayyxqsA" name="ExcludesAll">
+ <ownedParameter xmi:id="_2Zq_sPMiEeC_DqPayyxqsA" name="seq1" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_5V3rEPMiEeC_DqPayyxqsA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_5VsE4PMiEeC_DqPayyxqsA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_6tas0PMiEeC_DqPayyxqsA" name="seq2" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8QNVQPMiEeC_DqPayyxqsA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8QCWIPMiEeC_DqPayyxqsA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_-Et_0PMiEeC_DqPayyxqsA" name="result" visibility="public" isOrdered="true" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BGqt4PMjEeC_DqPayyxqsA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BGegoPMjEeC_DqPayyxqsA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_Ch6j4PMjEeC_DqPayyxqsA" name="Equals">
+ <ownedParameter xmi:id="_FjQN8PMjEeC_DqPayyxqsA" name="seq1" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HVAfcPMjEeC_DqPayyxqsA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HU1gUPMjEeC_DqPayyxqsA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_ITCN8PMjEeC_DqPayyxqsA" name="seq2" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KXIzsPMjEeC_DqPayyxqsA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KW-boPMjEeC_DqPayyxqsA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_NcjsgPMjEeC_DqPayyxqsA" name="result" visibility="public" isOrdered="true" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Qtn0oPMjEeC_DqPayyxqsA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QtdckPMjEeC_DqPayyxqsA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_ULfCoPMjEeC_DqPayyxqsA" name="At">
+ <ownedParameter xmi:id="_X7vBIPMjEeC_DqPayyxqsA" name="seq" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_a7nSoPMjEeC_DqPayyxqsA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_a7cTgPMjEeC_DqPayyxqsA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_cu-tsPMjEeC_DqPayyxqsA" name="index" visibility="public" isOrdered="true" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_c7SrYPMjEeC_DqPayyxqsA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_c7F3EPMjEeC_DqPayyxqsA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_zO-v4PMjEeCfS7qBvajEQQ" name="result" visibility="public" isOrdered="true" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zdtIYPMjEeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zdgUEPMjEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_ETy7wPMkEeCfS7qBvajEQQ" name="IndexOf">
+ <ownedParameter xmi:id="_I8TX8PMkEeCfS7qBvajEQQ" name="seq" visibility="public" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_NK9JsPMkEeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_NKsD8PMkEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Rc-_kPMkEeCfS7qBvajEQQ" name="element" visibility="public" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SprcMPMkEeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SphrMPMkEeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_o03sAPMkEeCfS7qBvajEQQ" name="result" visibility="public" isOrdered="true" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ri28QPMkEeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rityUPMkEeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_yMLZoPMkEeCfS7qBvajEQQ" name="First">
+ <ownedParameter xmi:id="_5K9JoPMkEeCfS7qBvajEQQ" name="seq" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_7WQjkPMkEeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7WIAsPMkEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_-lMkwPMkEeCfS7qBvajEQQ" name="result" visibility="public" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BP-I8PMlEeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BP1mEPMlEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_IbpFcPMlEeCfS7qBvajEQQ" name="Last">
+ <ownedParameter xmi:id="_NjP4cPMlEeCfS7qBvajEQQ" name="seq" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_P1njsPMlEeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_P1fA0PMlEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_r5xBkPM-EeCfS7qBvajEQQ" name="result" visibility="public" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ssISoPM-EeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sr_vwPM-EeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_6jz0IPM-EeCfS7qBvajEQQ" name="Union">
+ <ownedParameter xmi:id="_9PKnIPM-EeCfS7qBvajEQQ" name="seq1" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__FlWMPM-EeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__FczUPM-EeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_AtlOwPM_EeCfS7qBvajEQQ" name="seq2" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CBIhUPM_EeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CA9iMPM_EeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_EEWWQPM_EeCfS7qBvajEQQ" name="result" visibility="public" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GMrUsPM_EeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GMegYPM_EeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_LFW64PM_EeCfS7qBvajEQQ" name="Intersection">
+ <ownedParameter xmi:id="_PzQ0cPM_EeCfS7qBvajEQQ" name="seq1" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_RLr_8PM_EeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_RLhn4PM_EeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_SEX7cPM_EeCfS7qBvajEQQ" name="seq2" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TsJxkPM_EeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TsB1wPM_EeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_U8LPAPM_EeCfS7qBvajEQQ" name="result" visibility="public" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XBwbcPM_EeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XBmDYPM_EeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_bIAfIPM_EeCfS7qBvajEQQ" name="Difference">
+ <ownedParameter xmi:id="_drDDoPM_EeCfS7qBvajEQQ" name="seq1" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hci_UPM_EeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hcaccPM_EeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_jPDewPM_EeCfS7qBvajEQQ" name="seq2" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kut6sPM_EeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kuiUgPM_EeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_O0WqQPNBEeCfS7qBvajEQQ" name="result" visibility="public" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_RQk1EPNBEeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_RQcSMPNBEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_X6-QgPNBEeCfS7qBvajEQQ" name="Including">
+ <ownedParameter xmi:id="_bRuJ4PNBEeCfS7qBvajEQQ" name="seq" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ckIM8PNBEeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cj_qEPNBEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_eQSMwPNBEeCfS7qBvajEQQ" name="element" visibility="public" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_grtGUPNBEeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_grlKgPNBEeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_jFzKMPNBEeCfS7qBvajEQQ" name="result" visibility="public" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lvH84PNBEeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lu_aAPNBEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_oDKcEPNBEeCfS7qBvajEQQ" name="IncludeAt">
+ <ownedParameter xmi:id="_pSCqAPNBEeCfS7qBvajEQQ" name="seq" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rcmdEPNBEeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rcehQPNBEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_vd020PNBEeCfS7qBvajEQQ" name="index" visibility="public" isOrdered="true" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xtxgMPNBEeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xtpkYPNBEeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_yeADQPNBEeCfS7qBvajEQQ" name="element" visibility="public" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_z1PjAPNBEeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_z1HAIPNBEeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_1Z5zsPNBEeCfS7qBvajEQQ" name="result" visibility="public" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3ZV74PNBEeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3ZNZAPNBEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_-SsZUPNBEeCfS7qBvajEQQ" name="InsertAt">
+ <ownedParameter xmi:id="_GHnuMPNCEeCfS7qBvajEQQ" name="seq" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HUGIYPNCEeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HT8XYPNCEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IZuTsPNCEeCfS7qBvajEQQ" name="index" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KV00APNCEeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KVs4MPNCEeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_LS4SIPNCEeCfS7qBvajEQQ" name="element" visibility="public" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MmJ34PNCEeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MmB8EPNCEeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_TLzWMPNCEeCfS7qBvajEQQ" name="result" visibility="public" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Vb8z4PNCEeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Vb04EPNCEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_ZTRqwPNCEeCfS7qBvajEQQ" name="IncludeAllAt">
+ <ownedParameter xmi:id="_bKr4UPNCEeCfS7qBvajEQQ" name="seq1" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ce2O4PNCEeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cerPwPNCEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_djdGgPNCEeCfS7qBvajEQQ" name="index" visibility="public" isOrdered="true" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gBfPMPNCEeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gBXTYPNCEeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_g9ouYPNCEeCfS7qBvajEQQ" name="seq2" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ikq9oPNCEeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ikjB0PNCEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_knQgcPNCEeCfS7qBvajEQQ" name="result" visibility="public" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mq_SwPNCEeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mq3W8PNCEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_qeGYAPNCEeCfS7qBvajEQQ" name="Excluding">
+ <ownedParameter xmi:id="_sbiVEPNCEeCfS7qBvajEQQ" name="seq" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tsg0wPNCEeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tsY48PNCEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_uniSkPNCEeCfS7qBvajEQQ" name="element" visibility="public" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w0mnEPNCEeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w0erQPNCEeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_yQJ_EPNCEeCfS7qBvajEQQ" name="result" visibility="public" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zyAMUPNCEeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zx3CYPNCEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_1lzFMPNCEeCfS7qBvajEQQ" name="ExcludingOne">
+ <ownedParameter xmi:id="_4fz_QPNCEeCfS7qBvajEQQ" name="seq" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6QRQQPNCEeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6QJUcPNCEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_7F5QsPNCEeCfS7qBvajEQQ" name="element" visibility="public" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_7znSUPNCEeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7zfWgPNCEeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_9uNWwPNCEeCfS7qBvajEQQ" name="result" visibility="public" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BdnAsPNDEeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BdfE4PNDEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_8opAYPNDEeCfS7qBvajEQQ" name="ExcludeAt">
+ <ownedParameter xmi:id="_GmZ0kPNFEeCfS7qBvajEQQ" name="seq" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IrXV8PNFEeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IrPaIPNFEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_J-ET8PNFEeCfS7qBvajEQQ" name="index" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Pd29cPNFEeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PdslYPNFEeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_QehwQPNFEeCfS7qBvajEQQ" name="result" visibility="public" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SbHYwPNFEeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Sa_c8PNFEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_VT9OIPNFEeCfS7qBvajEQQ" name="Replacing">
+ <ownedParameter xmi:id="_XT9-EPNFEeCfS7qBvajEQQ" name="seq" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_YlVfUPNFEeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_YlFAoPNFEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Z7gBAPNFEeCfS7qBvajEQQ" name="element" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_bZ6fwPNFEeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bZxV0PNFEeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_cO-fgPNFEeCfS7qBvajEQQ" name="newElement" visibility="public" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_d6owEPNFEeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_d6LdEPNFEeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_fVsY0PNFEeCfS7qBvajEQQ" name="result" visibility="public" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iugHsPNFEeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iuXk0PNFEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_3riiUPNFEeCfS7qBvajEQQ" name="ReplacingOne">
+ <ownedParameter xmi:id="_6mIrMPNFEeCfS7qBvajEQQ" name="seq" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8qoSgPNFEeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8qgWsPNFEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_-hkmAPNFEeCfS7qBvajEQQ" name="element" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__UnMgPNFEeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__UU4oPNFEeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_AE6BAPNGEeCfS7qBvajEQQ" name="newElement" visibility="public" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CPXGYPNGEeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CPPKkPNGEeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GNQfUPNGEeCfS7qBvajEQQ" name="result" visibility="public" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IwGPgPNGEeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Iv-TsPNGEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_N-K24PNGEeCfS7qBvajEQQ" name="ReplacingAt">
+ <ownedParameter xmi:id="_QSXHEPNGEeCfS7qBvajEQQ" name="seq" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Rwc1sPNGEeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_RwU54PNGEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_TGs28PNGEeCfS7qBvajEQQ" name="index" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUvb0PNGEeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUngAPNGEeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_XBdcUPNGEeCfS7qBvajEQQ" name="element" visibility="public" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ye98IPNGEeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ye0yMPNGEeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_ZXXjwPNGEeCfS7qBvajEQQ" name="result" visibility="public" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_bIrJUPNGEeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bIdG4PNGEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_fFN3YPNGEeCfS7qBvajEQQ" name="Subsequence">
+ <ownedParameter xmi:id="_ho5VEPNGEeCfS7qBvajEQQ" name="seq" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_izpQ8PNGEeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_izff8PNGEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_jpmBgPNGEeCfS7qBvajEQQ" name="lower" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lfRwwPNGEeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lfH_wPNGEeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mbC1cPNGEeCfS7qBvajEQQ" name="upper" visibility="public" isOrdered="true" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oYOT0PNGEeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oYG_EPNGEeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_pyQB0PNGEeCfS7qBvajEQQ" name="result" visibility="public" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_r-Cj8PNGEeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_r96BEPNGEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_yGrWIPNGEeCfS7qBvajEQQ" name="ToOrderedSet">
+ <ownedParameter xmi:id="_07UoAPNGEeCfS7qBvajEQQ" name="seq" visibility="public" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2RfJsPNGEeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2RX08PNGEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_4aZW8PNGEeCfS7qBvajEQQ" name="result" visibility="public" isOrdered="true" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A1EdMPNHEeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A05eEPNHEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_OP8BkH1AEeCKy5kSqd4eVw" name="BasicInputOutput">
+ <packageImport xmi:id="_Wb3hMH1AEeCKy5kSqd4eVw">
+ <importedPackage href="fUMLlibrary.uml#_mBev8HyXEeCAIan9YGu1mA"/>
+ </packageImport>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_dfOPMH1AEeCKy5kSqd4eVw" name="CollectionClasses">
+ <packagedElement xmi:type="uml:Class" xmi:id="_VRDjEKiyEeCw3MW-Flzemw" name="Collection" isAbstract="true">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_dBkSAKiyEeCw3MW-Flzemw" name="CollectionTemplateSignature" parameter="_Mjzw4O6UEeCttc32wS_Cjw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_Mjzw4O6UEeCttc32wS_Cjw" parameteredElement="_Ofs10O6UEeCttc32wS_Cjw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_Ofs10O6UEeCttc32wS_Cjw" name="T" templateParameter="_Mjzw4O6UEeCttc32wS_Cjw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="_ChPmIO6cEeCttc32wS_Cjw" name="add">
+ <ownedParameter xmi:id="_O6VCsO6cEeCttc32wS_Cjw" name="element" type="_Ofs10O6UEeCttc32wS_Cjw"/>
+ <ownedParameter xmi:id="_qAi7gPDgEeCxrPjksdBlsg" name="result" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_1DPM4PDgEeCxrPjksdBlsg" name="addAll" visibility="public">
+ <ownedComment xmi:id="_37E8sPDgEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public addAll (in seq : any [0..*] sequence) : Boolean{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="__9NAEPDgEeCxrPjksdBlsg" name="seq" type="_Ofs10O6UEeCttc32wS_Cjw" isOrdered="true" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9OOMPDgEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9NnIPDgEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9PcUPDgEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9QqcPDgEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9QDYPDgEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_IM9PwPDhEeCxrPjksdBlsg" name="clear" visibility="public">
+ <ownedComment xmi:id="_KNZdgPDhEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public clear () { }</body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:id="_M_ET4PDhEeCxrPjksdBlsg" name="count" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_S4NRgPDhEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public count (in element : any) : Integer{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_S4JnIPDhEeCxrPjksdBlsg" name="element" type="_Ofs10O6UEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_S4K1QPDhEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_S4KOMPDhEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_S4LcUPDhEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_S4MqcPDhEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_S4MDYPDhEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_d9x3wPDhEeCxrPjksdBlsg" name="equals" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_mU6h0PDhEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public equals (in seq : any [0..*] sequence) : Boolean { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_mVmeUPDhEeCxrPjksdBlsg" name="seq" type="_Ofs10O6UEeCttc32wS_Cjw" isOrdered="true" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mVnscPDhEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mVnFYPDhEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mVo6kPDhEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mVphoPDhEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mVo6kfDhEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_veR6EPDhEeCxrPjksdBlsg" name="excludes" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_zSImMPDhEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public excludes (in element : any) : Boolean{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_zSEUwPDhEeCxrPjksdBlsg" name="element" type="_Ofs10O6UEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zSGJ8PDhEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zSFi4PDhEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_zSGxAPDhEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zSH_IPDhEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zSHYEPDhEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_5CD9cPDhEeCxrPjksdBlsg" name="excludesAll" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_90S9YPDhEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public excludesAll (in seq : any [0..*] sequence) : Boolean{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="__CG0UPDhEeCxrPjksdBlsg" name="seq" type="_Ofs10O6UEeCttc32wS_Cjw" isOrdered="true" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__CICcPDhEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__CHbYPDhEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__CIpgPDhEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__CJ3oPDhEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__CJQkPDhEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Hwm1gPDiEeCxrPjksdBlsg" name="includes" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_KqnIgPDiEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public includes (in element : any) : Boolean{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_KqjeIPDiEeCxrPjksdBlsg" name="element" type="_Ofs10O6UEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KqksQPDiEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KqkFMPDiEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_KqlTUPDiEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KqmhcPDiEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Kql6YPDiEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_S8eRAPDiEeCxrPjksdBlsg" name="includesAll" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_XKBPgPDiEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public includesAll (in seq : any [0..*] sequence) : Boolean{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_XJ8XAPDiEeCxrPjksdBlsg" name="seq" type="_Ofs10O6UEeCttc32wS_Cjw" isOrdered="true" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XJ9lIPDiEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XJ8-EPDiEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_XJ_aUPDiEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XKAocPDiEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XKABYPDiEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_eww-cPDiEeCxrPjksdBlsg" name="isEmpty" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_jh9ckfDiEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public isEmpty () : Boolean { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jh8OcPDiEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jh9ckPDiEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jh81gPDiEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_k-4GgPDiEeCxrPjksdBlsg" name="notEmpty" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_m0hZgPDiEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public notEmpty () : Boolean{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_m0gLYPDiEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_m0gycfDiEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_m0gycPDiEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_oyTU0PDiEeCxrPjksdBlsg" name="remove" visibility="public">
+ <ownedComment xmi:id="_sAJJ0PDiEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public remove (in element : any) : Integer{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_sAGGgPDiEeCxrPjksdBlsg" name="element" type="_Ofs10O6UEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sAGtkfDiEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sAGtkPDiEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_sAHUoPDiEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sAIiwPDiEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sAH7sPDiEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_xsC8sPDiEeCxrPjksdBlsg" name="removeAll" visibility="public">
+ <ownedComment xmi:id="_3fLY8PDiEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public removeAll (in seq : any [0..*] sequence) : Boolean{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_3fHukPDiEeCxrPjksdBlsg" name="seq" type="_Ofs10O6UEeCttc32wS_Cjw" isOrdered="true" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3fI8sPDiEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3fIVoPDiEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_3fJjwPDiEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3fKx4PDiEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3fKK0PDiEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_9dsl0PDiEeCxrPjksdBlsg" name="removeOne" visibility="public">
+ <ownedComment xmi:id="_MEkIkPDjEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public removeOne (in element : any) : Boolean{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_MEgeMPDjEeCxrPjksdBlsg" name="element" type="_Ofs10O6UEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MEhsUPDjEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MEhFQPDjEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_MEiTYPDjEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MEjhgPDjEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MEi6cPDjEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_RCcX0PDjEeCxrPjksdBlsg" name="replace" visibility="public">
+ <ownedComment xmi:id="_VeeeQPDjEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public replace (in element : any, in newElement : any) : Integer{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_VeaM0PDjEeCxrPjksdBlsg" name="element" type="_Ofs10O6UEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Veaz4fDjEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Veaz4PDjEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Veba8PDjEeCxrPjksdBlsg" name="newElement" type="_Ofs10O6UEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VecpEPDjEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VecCAPDjEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_VedQIPDjEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ved3MfDjEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ved3MPDjEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_dLkFwPDjEeCxrPjksdBlsg" name="replaceOne" visibility="public">
+ <ownedComment xmi:id="_iWaaAPDjEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public replaceOne(in element : any, in newElement : any) : Boolean { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_iWVhgPDjEeCxrPjksdBlsg" name="element" type="_Ofs10O6UEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iWWvoPDjEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iWWIkPDjEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_iWXWsPDjEeCxrPjksdBlsg" name="newElement" type="_Ofs10O6UEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iWYk0PDjEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iWX9wPDjEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_iWZL4PDjEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iWZy8fDjEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iWZy8PDjEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_oFpNsPDjEeCxrPjksdBlsg" name="retainAll" visibility="public">
+ <ownedComment xmi:id="_t6bPwPDjEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public retainAll (in seq : any [0..*]) : Boolean { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_t6VwMPDjEeCxrPjksdBlsg" name="seq" type="_Ofs10O6UEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t6YzgPDjEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t6XlYPDjEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_t6ZakPDjEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t6aosfDjEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t6aosPDjEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_yScY4PDjEeCxrPjksdBlsg" name="size" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_0ueWcfDjEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public size () : Integer{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_0udIUPDjEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0ueWcPDjEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0udvYPDjEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_314zUPDjEeCxrPjksdBlsg" name="toSequence" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_83DAEPDjEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public toSequence () : any [0..*] sequence{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_82_VsPDjEeCxrPjksdBlsg" type="_Ofs10O6UEeCttc32wS_Cjw" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_83Bx8PDjEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_83Aj0PDjEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_sv_5wKiyEeCw3MW-Flzemw" name="Set" isAbstract="true">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_F_i18Ki0EeCw3MW-Flzemw" name="SetTemplateSignature" parameter="_wMyQ8O6TEeCttc32wS_Cjw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_wMyQ8O6TEeCttc32wS_Cjw" parameteredElement="_zHnqYO6TEeCttc32wS_Cjw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_zHnqYO6TEeCttc32wS_Cjw" name="T" templateParameter="_wMyQ8O6TEeCttc32wS_Cjw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <generalization xmi:id="_6-3eAO6UEeCttc32wS_Cjw" general="_c6L-4O6TEeCttc32wS_Cjw"/>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_c6L-4O6TEeCttc32wS_Cjw" name="Collection&lt;T>" isAbstract="true">
+ <templateBinding xmi:id="_9uMLAO6UEeCttc32wS_Cjw" signature="_dBkSAKiyEeCw3MW-Flzemw">
+ <parameterSubstitution xmi:id="_eWjngO6ZEeCttc32wS_Cjw" formal="_Mjzw4O6UEeCttc32wS_Cjw" actual="_zHnqYO6TEeCttc32wS_Cjw"/>
+ </templateBinding>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_8y9C4PDmEeCxrPjksdBlsg" name="Set&lt;T>" isAbstract="true">
+ <templateBinding xmi:id="_WUOdsPDnEeCxrPjksdBlsg" signature="_F_i18Ki0EeCw3MW-Flzemw">
+ <parameterSubstitution xmi:id="_Y9tBYPDnEeCxrPjksdBlsg" formal="_wMyQ8O6TEeCttc32wS_Cjw" actual="_zHnqYO6TEeCttc32wS_Cjw"/>
+ </templateBinding>
+ </nestedClassifier>
+ <ownedOperation xmi:id="_xIZ8wPDlEeCxrPjksdBlsg" name="add" visibility="public">
+ <ownedComment xmi:id="_zkI_YPDlEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public add (in element : any) : Boolean { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_zkFVAPDlEeCxrPjksdBlsg" name="element" type="_zHnqYO6TEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zkGjIPDlEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zkF8EPDlEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_zkHKMPDlEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zkIYUPDlEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zkHxQPDlEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_4_42YPDlEeCxrPjksdBlsg" name="addAll" visibility="public">
+ <ownedComment xmi:id="_9E2goPDlEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public addAll (in seq : any [0..*] sequence) : Boolean { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_9ExoIPDlEeCxrPjksdBlsg" name="seq" type="_zHnqYO6TEeCttc32wS_Cjw" isOrdered="true" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9Ey2QPDlEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9EyPMPDlEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_9E0rcPDlEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9E15kPDlEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9E1SgPDlEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_EWAaEPDmEeCxrPjksdBlsg" name="count" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_HCtQ4PDmEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public count (in element : any) : Integer{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_HCqNkPDmEeCxrPjksdBlsg" name="element" type="_zHnqYO6TEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HCrbsPDmEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HCq0oPDmEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_HCsCwPDmEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HCsp0fDmEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HCsp0PDmEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_OqqgwPDmEeCxrPjksdBlsg" name="destroy" visibility="public">
+ <ownedComment xmi:id="_R4tKEPDmEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public destroy () { }</body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:id="_YBlz4PDmEeCxrPjksdBlsg" name="equals" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_cTZAQPDmEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public equals (in seq : any [0..*] sequence) : Boolean{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_cTUu0PDmEeCxrPjksdBlsg" name="seq" type="_zHnqYO6TEeCttc32wS_Cjw" isOrdered="true" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cTV88PDmEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cTVV4PDmEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_cTXLEPDmEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cTYZMPDmEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cTXyIPDmEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_g_lCkPDmEeCxrPjksdBlsg" name="Set" visibility="public">
+ <ownedComment xmi:id="_1RNvwPDmEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public Set (in seq : any [0..*]) { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_1RLTgPDmEeCxrPjksdBlsg" name="seq" type="_zHnqYO6TEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1RMhofDmEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1RMhoPDmEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GnxL4PDnEeCxrPjksdBlsg" name="Parameter0" type="_8y9C4PDmEeCxrPjksdBlsg" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Gn02QPDnEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GnzoIPDnEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_2lSj4KiyEeCw3MW-Flzemw" name="Bag" isAbstract="true">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_MufaMKi0EeCw3MW-Flzemw" name="BagTemplateSignature" parameter="_0e_tAO6TEeCttc32wS_Cjw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_0e_tAO6TEeCttc32wS_Cjw" parameteredElement="_2fMDIO6TEeCttc32wS_Cjw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_2fMDIO6TEeCttc32wS_Cjw" name="T" templateParameter="_0e_tAO6TEeCttc32wS_Cjw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <generalization xmi:id="_71inUO6UEeCttc32wS_Cjw" general="_VRTFcO6UEeCttc32wS_Cjw"/>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_VRTFcO6UEeCttc32wS_Cjw" name="Collection&lt;T>" isAbstract="true">
+ <templateBinding xmi:id="_RnI5IO6aEeCttc32wS_Cjw" signature="_dBkSAKiyEeCw3MW-Flzemw">
+ <parameterSubstitution xmi:id="_T71foO6aEeCttc32wS_Cjw" formal="_Mjzw4O6UEeCttc32wS_Cjw" actual="_2fMDIO6TEeCttc32wS_Cjw"/>
+ </templateBinding>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_WgrI0PDoEeCxrPjksdBlsg" name="Bag&lt;T>">
+ <templateBinding xmi:id="_Zj63YPDoEeCxrPjksdBlsg" signature="_MufaMKi0EeCw3MW-Flzemw">
+ <parameterSubstitution xmi:id="_b7gZ0PDoEeCxrPjksdBlsg" formal="_0e_tAO6TEeCttc32wS_Cjw" actual="_2fMDIO6TEeCttc32wS_Cjw"/>
+ </templateBinding>
+ </nestedClassifier>
+ <ownedOperation xmi:id="_7WAuUPDnEeCxrPjksdBlsg" name="add" visibility="public">
+ <ownedComment xmi:id="_9qNlkPDnEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public add (in element : any) : Boolean{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_9qJ7MPDnEeCxrPjksdBlsg" name="element" type="_2fMDIO6TEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9qLJUfDnEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9qLJUPDnEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_9qLwYPDnEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9qM-gPDnEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9qMXcPDnEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Ct0pYPDoEeCxrPjksdBlsg" name="addAll" visibility="public">
+ <ownedComment xmi:id="_GqcP8PDoEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public addAll (in seq : any [0..*] sequence) : Boolean{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_GqYlkPDoEeCxrPjksdBlsg" name="seq" type="_2fMDIO6TEeCttc32wS_Cjw" isOrdered="true" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GqZzsPDoEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GqZMoPDoEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GqaawPDoEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Gqbo4PDoEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GqbB0PDoEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_M9rIkPDoEeCxrPjksdBlsg" name="Bag" visibility="public">
+ <ownedComment xmi:id="_S_0RMPDoEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public Bag (in seq : any [0..*] sequence) { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_S_ycAPDoEeCxrPjksdBlsg" name="seq" type="_2fMDIO6TEeCttc32wS_Cjw" isOrdered="true" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_S_zqIPDoEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_S_zDEPDoEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_jpv34PDoEeCxrPjksdBlsg" name="Parameter0" type="_WgrI0PDoEeCxrPjksdBlsg" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jpy7MPDoEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jpxGAPDoEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_sI840PDoEeCxrPjksdBlsg" name="destroy" visibility="public">
+ <ownedComment xmi:id="_tAp84PDoEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public destroy () { }</body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:id="_wajQ4PDoEeCxrPjksdBlsg" name="equals" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_0IzEQPDoEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public equals (in seq : any [0..*] sequence) : Boolean{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_0IvZ4PDoEeCxrPjksdBlsg" name="seq" type="_2fMDIO6TEeCttc32wS_Cjw" isOrdered="true" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0IwoAPDoEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0IwA8PDoEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_0Ix2IPDoEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0IydMfDoEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0IydMPDoEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_3o7yMKiyEeCw3MW-Flzemw" name="Queue" isAbstract="true">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_Oa0ZIKi0EeCw3MW-Flzemw" name="QueueTemplateSignature" parameter="_4ttJIO6TEeCttc32wS_Cjw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_4ttJIO6TEeCttc32wS_Cjw" parameteredElement="_7MjKIO6TEeCttc32wS_Cjw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_7MjKIO6TEeCttc32wS_Cjw" name="T" templateParameter="_4ttJIO6TEeCttc32wS_Cjw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <generalization xmi:id="_8i2ZQO6UEeCttc32wS_Cjw" general="_roQgYO6UEeCttc32wS_Cjw"/>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_roQgYO6UEeCttc32wS_Cjw" name="Collection&lt;W>" isAbstract="true">
+ <templateBinding xmi:id="_c3J00O6aEeCttc32wS_Cjw" signature="_dBkSAKiyEeCw3MW-Flzemw">
+ <parameterSubstitution xmi:id="_fivRUO6aEeCttc32wS_Cjw" formal="_Mjzw4O6UEeCttc32wS_Cjw" actual="_7MjKIO6TEeCttc32wS_Cjw"/>
+ </templateBinding>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_n4fB0PDrEeCxrPjksdBlsg" name="Queue&lt;T>" isAbstract="true">
+ <templateBinding xmi:id="_rRasgPDrEeCxrPjksdBlsg" signature="_Oa0ZIKi0EeCw3MW-Flzemw">
+ <parameterSubstitution xmi:id="_tEWpwPDrEeCxrPjksdBlsg" formal="_4ttJIO6TEeCttc32wS_Cjw" actual="_7MjKIO6TEeCttc32wS_Cjw"/>
+ </templateBinding>
+ </nestedClassifier>
+ <ownedOperation xmi:id="_D7JtQPDqEeCxrPjksdBlsg" name="add" visibility="public">
+ <ownedComment xmi:id="_GI8agPDqEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public add (in element : any) : Boolean{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_GI4wIPDqEeCxrPjksdBlsg" name="element" type="_7MjKIO6TEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GI5-QPDqEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GI5XMPDqEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GI6lUPDqEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GI7zcPDqEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GI7MYPDqEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_H4a0EPDqEeCxrPjksdBlsg" name="addAll" visibility="public">
+ <ownedComment xmi:id="_NPRkAPDqEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public addAll (in seq : any [0..*] sequence) : Boolean{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_NPN5oPDqEeCxrPjksdBlsg" name="seq" type="_7MjKIO6TEeCttc32wS_Cjw" isOrdered="true" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_NPPHwPDqEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_NPOgsPDqEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_NPQV4PDqEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_NPQ88PDqEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_NPQV4fDqEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_OhRXYPDqEeCxrPjksdBlsg" name="addLast" visibility="public">
+ <ownedComment xmi:id="_UUpEMPDqEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public addLast (in element : any) : Boolean{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_UVD68PDqEeCxrPjksdBlsg" name="element" type="_7MjKIO6TEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UVFJEPDqEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UVEiAPDqEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_UVFwIPDqEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UVG-QPDqEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UVGXMPDqEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_VTbnsPDqEeCxrPjksdBlsg" name="destroy" visibility="public">
+ <ownedComment xmi:id="_WYjcsPDqEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public destroy () { }</body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Xm-XoPDqEeCxrPjksdBlsg" name="equals" visibility="public">
+ <ownedComment xmi:id="_b_-_QPDqEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public equals (in seq : any [0..*] sequence) : Boolean{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_b_6t0PDqEeCxrPjksdBlsg" name="seq" type="_7MjKIO6TEeCttc32wS_Cjw" isOrdered="true" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_b_778PDqEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_b_7U4PDqEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_b_9KEPDqEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_b_-YMPDqEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_b_9xIPDqEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_eD7M8PDqEeCxrPjksdBlsg" name="first" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_iBM60PDqEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public first () : any [0..1]{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_iBvtYPDqEeCxrPjksdBlsg" type="_7MjKIO6TEeCttc32wS_Cjw" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iBxikPDqEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iBw7gPDqEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jRFOUPDqEeCxrPjksdBlsg" name="Queue" visibility="public">
+ <ownedComment xmi:id="_nR0f4PDqEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public Queue (in seq : any [0..*] sequence) { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_nSUPIPDqEeCxrPjksdBlsg" name="seq" type="_7MjKIO6TEeCttc32wS_Cjw" isOrdered="true" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nSVdQPDqEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nSU2MPDqEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_28U0cPDrEeCxrPjksdBlsg" name="Parameter0" type="_n4fB0PDrEeCxrPjksdBlsg" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_28Ye0PDrEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_28WpoPDrEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_oLZMMPDqEeCxrPjksdBlsg" name="remove" visibility="public">
+ <ownedComment xmi:id="_q2vYIPDqEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public remove (in element : any) : Integer{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_q3RjoPDqEeCxrPjksdBlsg" name="element" type="_7MjKIO6TEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_q3SxwPDqEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_q3SKsPDqEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_q3TY0PDqEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_q3T_4fDqEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_q3T_4PDqEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ryZIEPDqEeCxrPjksdBlsg" name="removeAll" visibility="public">
+ <ownedComment xmi:id="_v9CjkPDqEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public removeAll (in seq : any [0..*] sequence) : Boolean{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_v89rEPDqEeCxrPjksdBlsg" name="seq" type="_7MjKIO6TEeCttc32wS_Cjw" isOrdered="true" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_v8-5MPDqEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_v8-SIPDqEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_v9AHUPDqEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_v9B8gPDqEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_v9BVcPDqEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_wqzBcPDqEeCxrPjksdBlsg" name="removeFirst" visibility="public">
+ <ownedComment xmi:id="_2BpKUPDqEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public removeFirst () : any [0..1]{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_2CUfwPDqEeCxrPjksdBlsg" type="_7MjKIO6TEeCttc32wS_Cjw" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2CW8APDqEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2CVt4PDqEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_29MMkPDqEeCxrPjksdBlsg" name="removeFirstOne" visibility="public">
+ <ownedComment xmi:id="_7RCnYPDqEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public removeFirstOne (in element : any [1]) : any [0..1] { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_7RiWoPDqEeCxrPjksdBlsg" name="element" type="_7MjKIO6TEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_7RjkwPDqEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7Ri9sPDqEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_7Rky4PDqEeCxrPjksdBlsg" type="_7MjKIO6TEeCttc32wS_Cjw" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_7RmBAPDqEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7RlZ8PDqEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_9P4SoPDqEeCxrPjksdBlsg" name="removeOne" visibility="public">
+ <ownedComment xmi:id="_A1JwMPDrEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public removeOne (in element : any) : Boolean{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_A1km8PDrEeCxrPjksdBlsg" name="element" type="_7MjKIO6TEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A1l1EPDrEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A1lOAPDrEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_A1mcIPDrEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A1nqQPDrEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A1nDMPDrEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_B0XxgPDrEeCxrPjksdBlsg" name="replace" visibility="public">
+ <ownedComment xmi:id="_FjQeEPDrEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public replace (in element : any, in newElement : any) : Integer{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_FjtxEPDrEeCxrPjksdBlsg" name="element" type="_7MjKIO6TEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Fju_MPDrEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FjuYIPDrEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FjvmQPDrEeCxrPjksdBlsg" name="newElement" type="_7MjKIO6TEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Fjw0YPDrEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FjwNUPDrEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FjxbcPDrEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FjypkPDrEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FjyCgPDrEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_GcEVYPDrEeCxrPjksdBlsg" name="replaceOne" visibility="public">
+ <ownedComment xmi:id="_K0CbMPDrEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public replaceOne (in element : any, in newElement : any) : Boolean{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_K0d5APDrEeCxrPjksdBlsg" name="element" type="_7MjKIO6TEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K0gVQPDrEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K0fHIPDrEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_K0hjYPDrEeCxrPjksdBlsg" name="newElement" type="_7MjKIO6TEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K0jYkPDrEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K0iKcPDrEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_K0kmsPDrEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K0l00PDrEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K0lNwPDrEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_L1ClMPDrEeCxrPjksdBlsg" name="retainAll" visibility="public">
+ <ownedComment xmi:id="_O7UZoPDrEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public retainAll (in seq : any) : Boolean{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_O7QIMPDrEeCxrPjksdBlsg" name="seq" type="_7MjKIO6TEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_O7RWUPDrEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_O7QvQPDrEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_O7SkcPDrEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_O7TykPDrEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_O7TLgPDrEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_8ReqoKiyEeCw3MW-Flzemw" name="OrderedSet" isAbstract="true">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_PhJvEKi0EeCw3MW-Flzemw" name="OrderedSetTemplateSignature" parameter="_AYPL4O6UEeCttc32wS_Cjw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_AYPL4O6UEeCttc32wS_Cjw" parameteredElement="_C1OywO6UEeCttc32wS_Cjw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_C1OywO6UEeCttc32wS_Cjw" name="T" templateParameter="_AYPL4O6UEeCttc32wS_Cjw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <generalization xmi:id="_NpvaAO6bEeCttc32wS_Cjw" general="_o1eoAO6aEeCttc32wS_Cjw"/>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_o1eoAO6aEeCttc32wS_Cjw" name="Set&lt;T>" isAbstract="true">
+ <templateBinding xmi:id="_VdMvQO6bEeCttc32wS_Cjw" signature="_F_i18Ki0EeCw3MW-Flzemw">
+ <parameterSubstitution xmi:id="_ZdPdQO6bEeCttc32wS_Cjw" formal="_wMyQ8O6TEeCttc32wS_Cjw" actual="_C1OywO6UEeCttc32wS_Cjw"/>
+ </templateBinding>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_6cGUsPDwEeCxrPjksdBlsg" name="OrderedSet&lt;T>" isAbstract="true">
+ <templateBinding xmi:id="__6nL0PDwEeCxrPjksdBlsg" signature="_PhJvEKi0EeCw3MW-Flzemw">
+ <parameterSubstitution xmi:id="_DACrsPDxEeCxrPjksdBlsg" formal="_AYPL4O6UEeCttc32wS_Cjw" actual="_C1OywO6UEeCttc32wS_Cjw"/>
+ </templateBinding>
+ </nestedClassifier>
+ <ownedOperation xmi:id="_uvvYEPDsEeCxrPjksdBlsg" name="add" visibility="public">
+ <ownedComment xmi:id="_xz2pUPDsEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public add (in element : any) : Boolean{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_x0UjYPDsEeCxrPjksdBlsg" name="element" type="_C1OywO6UEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_x0VxgPDsEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_x0VKcPDsEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_x0WYkPDsEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_x0XmsPDsEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_x0W_oPDsEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_y--YoPDsEeCxrPjksdBlsg" name="addAll" visibility="public">
+ <ownedComment xmi:id="_2isXAPDsEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public addAll (in seq : any [0..*] sequence) : Boolean { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_2jGmsPDsEeCxrPjksdBlsg" name="seq" type="_C1OywO6UEeCttc32wS_Cjw" isOrdered="true" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2jH00PDsEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2jHNwPDsEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_2jJC8PDsEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2jKREPDsEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2jJqAPDsEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_3-PH8PDsEeCxrPjksdBlsg" name="addAllAt" visibility="public">
+ <ownedComment xmi:id="_9kygwPDsEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public addAllAt (in index : Integer, in seq : any [0..*] sequence) : Boolean{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_9lMJYPDsEeCxrPjksdBlsg" name="index">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9lN-kPDsEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9lNXgPDsEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_9lOloPDsEeCxrPjksdBlsg" name="seq" type="_C1OywO6UEeCttc32wS_Cjw" isOrdered="true" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9lPzwPDsEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9lPMsPDsEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_9lRB4PDsEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9lSQAPDsEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9lRo8PDsEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-rZjgPDsEeCxrPjksdBlsg" name="addAt" visibility="public">
+ <ownedComment xmi:id="_GgyycPDtEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public addAt (in index : Integer, in element : any) : Boolean { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_Ghdg0PDtEeCxrPjksdBlsg" name="index">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GhfWAPDtEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Gheu8PDtEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ghf9EPDtEeCxrPjksdBlsg" name="element" type="_C1OywO6UEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GhhLMPDtEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GhgkIPDtEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GhhyQPDtEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GhjAYPDtEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GhiZUPDtEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_INUlsPDtEeCxrPjksdBlsg" name="at" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_L-ct8PDtEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public at (in index : Integer) : any [0..1] { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_L-2WkPDtEeCxrPjksdBlsg" name="index">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_L-4y0PDtEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_L-3ksPDtEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_L-5Z4PDtEeCxrPjksdBlsg" type="_C1OywO6UEeCttc32wS_Cjw" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_L-6oAPDtEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_L-6A8PDtEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_M1zzwPDtEeCxrPjksdBlsg" name="destroy" visibility="public">
+ <ownedComment xmi:id="_Or-rMPDtEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public destroy () { }</body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:id="_PuvvwPDtEeCxrPjksdBlsg" name="equals" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_SsD1cPDtEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public equals (in seq : any [0..*] sequence) : Boolean { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_Ssf6UPDtEeCxrPjksdBlsg" name="seq" type="_C1OywO6UEeCttc32wS_Cjw" isOrdered="true" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SshIcPDtEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SsghYPDtEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_SsiWkPDtEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SsjksPDtEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ssi9oPDtEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TxYewPDtEeCxrPjksdBlsg" name="first" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_XzuS0PDtEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public first () : any [0..1]{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_X0Mz8PDtEeCxrPjksdBlsg" type="_C1OywO6UEeCttc32wS_Cjw" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_X0OCEPDtEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_X0NbAPDtEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Y7X3YPDtEeCxrPjksdBlsg" name="indexOf" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_eYoxUPDtEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public indexOf (in element : any) : Integer [0..1] { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_eZE2MPDtEeCxrPjksdBlsg" name="element" type="_C1OywO6UEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eZGEUPDtEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eZFdQPDtEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_eZHScPDtEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eZIgkPDtEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eZH5gPDtEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_fdQQAPDtEeCxrPjksdBlsg" name="last" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_jdxfIPDtEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public last () : any [0..1] { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jdt0wPDtEeCxrPjksdBlsg" type="_C1OywO6UEeCttc32wS_Cjw" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jdw4EPDtEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jdub0PDtEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kapXEPDtEeCxrPjksdBlsg" name="OrderedSet" visibility="public">
+ <ownedComment xmi:id="_rfujYPDtEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public OrderedSet (in seq : any [0..*] sequence) { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_rgL2YPDtEeCxrPjksdBlsg" name="seq" type="_C1OywO6UEeCttc32wS_Cjw" isOrdered="true" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rgNEgPDtEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rgMdcPDtEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_KyZ0wPDxEeCxrPjksdBlsg" name="Parameter0" type="_6cGUsPDwEeCxrPjksdBlsg" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KydfIPDxEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Kybp8PDxEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_sj1EsPDtEeCxrPjksdBlsg" name="remove" visibility="public">
+ <ownedComment xmi:id="_vD2xcPDtEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public remove (in element : any) : Integer { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_vEOk4PDtEeCxrPjksdBlsg" name="element" type="_C1OywO6UEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_vEPzAPDtEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_vEPL8PDtEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_vERBIPDtEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_vES2UPDtEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_vESPQPDtEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_w7_XwPDtEeCxrPjksdBlsg" name="removeAll" visibility="public">
+ <ownedComment xmi:id="_0ugAEPDtEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public removeAll (in seq : any [0..*] sequence) : Boolean { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_0vA9cPDtEeCxrPjksdBlsg" name="seq" type="_C1OywO6UEeCttc32wS_Cjw" isOrdered="true" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0vCLkPDtEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0vBkgPDtEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_0vDZsPDtEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0vEn0PDtEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0vEAwPDtEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_1k3AUPDtEeCxrPjksdBlsg" name="removeAt" visibility="public">
+ <ownedComment xmi:id="_8YVfQPDtEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public removeAt (in index : Integer) : any [0..1] { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_8YxkIPDtEeCxrPjksdBlsg" name="index">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8YzZUPDtEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8YyyQPDtEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_8Y0AYPDtEeCxrPjksdBlsg" type="_C1OywO6UEeCttc32wS_Cjw" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8Y1OgPDtEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8Y0ncPDtEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_9X3CkPDtEeCxrPjksdBlsg" name="removeOne" visibility="public">
+ <ownedComment xmi:id="__o4C8PDtEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public removeOne (in element : any) : Boolean { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="__pMzEPDtEeCxrPjksdBlsg" name="element" type="_C1OywO6UEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__pOBMPDtEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__pNaIPDtEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__pS5sPDtEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__pUu4PDtEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__pUH0PDtEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BYgNgPDuEeCxrPjksdBlsg" name="replace" visibility="public">
+ <ownedComment xmi:id="_FmhGEPDuEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public replace (in element : any, in newElement : any) : Integer { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_Fm6HoPDuEeCxrPjksdBlsg" name="element" type="_C1OywO6UEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Fm7VwPDuEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Fm6usPDuEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Fm780PDuEeCxrPjksdBlsg" name="newElement" type="_C1OywO6UEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Fm9yAPDuEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Fm9K8PDuEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Fm-ZEPDuEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Fm_nMPDuEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Fm_AIPDuEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_HFdJQPDuEeCxrPjksdBlsg" name="replaceAt" visibility="public">
+ <ownedComment xmi:id="_K_eHwPDuEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public replaceAt (in index : Integer, in newElement : any) : any [0..1] { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_K_8B0PDuEeCxrPjksdBlsg" name="index">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K_93APDuEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K_9P8PDuEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_K_-eEPDuEeCxrPjksdBlsg" name="newElement" type="_C1OywO6UEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K__sMPDuEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K__FIPDuEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_LAATQPDuEeCxrPjksdBlsg" type="_C1OywO6UEeCttc32wS_Cjw" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LABhYPDuEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LAA6UPDuEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_MIZesPDuEeCxrPjksdBlsg" name="replaceOne" visibility="public">
+ <ownedComment xmi:id="_QreBQPDuEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public replaceOne (in element : any, in newElement : any) : Boolean { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_QsD3IPDuEeCxrPjksdBlsg" name="element" type="_C1OywO6UEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QsFsUPDuEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QsEeMPDuEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_QsGTYPDuEeCxrPjksdBlsg" name="newElement" type="_C1OywO6UEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QsHhgPDuEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QsG6cPDuEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_QsIIkPDuEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QsJWsPDuEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QsIvoPDuEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_tRLdcPDuEeCxrPjksdBlsg" name="retainAll" visibility="public">
+ <ownedComment xmi:id="_7oUssPDvEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public retainAll (in seq : any [0..*] sequence) : Boolean { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_-EJ18PDvEeCxrPjksdBlsg" name="seq" type="_C1OywO6UEeCttc32wS_Cjw" isOrdered="true" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-ELEEPDvEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-EKdAPDvEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_-EMSMPDvEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-EOHYPDvEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-ENgUPDvEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="__m_hsPDvEeCxrPjksdBlsg" name="subOrderedSet" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_E2SREPDwEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public subOrderedSet (in lower : Integer, in upper : Integer) { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_E2LjYPDwEeCxrPjksdBlsg" name="lower">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_E2N_oPDwEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_E2MxgPDwEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_E2PNwPDwEeCxrPjksdBlsg" name="upper">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_E2RqAPDwEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_E2Qb4PDwEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_5GCEMPDxEeCxrPjksdBlsg" name="Parameter0" type="_6cGUsPDwEeCxrPjksdBlsg" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_5GFukPDxEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_5GD5YPDxEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="__fQ1QKiyEeCw3MW-Flzemw" name="List" isAbstract="true">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_QfltQKi0EeCw3MW-Flzemw" name="ListTemplateSignature" parameter="_Ff5pQO6UEeCttc32wS_Cjw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_Ff5pQO6UEeCttc32wS_Cjw" parameteredElement="_HKe7wO6UEeCttc32wS_Cjw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_HKe7wO6UEeCttc32wS_Cjw" name="T" templateParameter="_Ff5pQO6UEeCttc32wS_Cjw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <generalization xmi:id="_O8ai0O6bEeCttc32wS_Cjw" general="_ynnQcO6aEeCttc32wS_Cjw"/>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_ynnQcO6aEeCttc32wS_Cjw" name="List&lt;T>" isAbstract="true">
+ <templateBinding xmi:id="_WWrU8O6bEeCttc32wS_Cjw" signature="_MufaMKi0EeCw3MW-Flzemw">
+ <parameterSubstitution xmi:id="_ojo0oO6bEeCttc32wS_Cjw" formal="_0e_tAO6TEeCttc32wS_Cjw" actual="_HKe7wO6UEeCttc32wS_Cjw"/>
+ </templateBinding>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_23Cq0PD2EeCxrPjksdBlsg" name="List&lt;T>" isAbstract="true">
+ <templateBinding xmi:id="_7RXhEPD2EeCxrPjksdBlsg" signature="_QfltQKi0EeCw3MW-Flzemw">
+ <parameterSubstitution xmi:id="_-bc3cPD2EeCxrPjksdBlsg" formal="_Ff5pQO6UEeCttc32wS_Cjw" actual="_HKe7wO6UEeCttc32wS_Cjw"/>
+ </templateBinding>
+ </nestedClassifier>
+ <ownedOperation xmi:id="_neWw8PDzEeCxrPjksdBlsg" name="add" visibility="public">
+ <ownedComment xmi:id="_p4DzQPDzEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public add (in element : any) : Boolean { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_p4hGQPDzEeCxrPjksdBlsg" name="element" type="_HKe7wO6UEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_p4i7cPDzEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_p4htUPDzEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_p4jigPDzEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_p4kwoPDzEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_p4kJkPDzEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_q8HRQPDzEeCxrPjksdBlsg" name="addAll" visibility="public">
+ <ownedComment xmi:id="_uiwn0PDzEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public addAll (in seq : any [0..*] sequence) : Boolean { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_ujK3gPDzEeCxrPjksdBlsg" name="seq" type="_HKe7wO6UEeCttc32wS_Cjw" isOrdered="true" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ujMssPDzEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ujMFoPDzEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_ujOh4PDzEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ujPwAPDzEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ujPI8PDzEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_vZ6SQPDzEeCxrPjksdBlsg" name="addAllAt" visibility="public">
+ <ownedComment xmi:id="_zPjHEPDzEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public addAllAt (in index : Integer, in seq : any [0..*] sequence) : Boolean { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_zQOcgPDzEeCxrPjksdBlsg" name="index">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zQQRsPDzEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zQPDkPDzEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_zQQ4wPDzEeCxrPjksdBlsg" name="seq" type="_HKe7wO6UEeCttc32wS_Cjw" isOrdered="true" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zQSG4PDzEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zQRf0PDzEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_zQTVAPDzEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zQUjIPDzEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zQT8EPDzEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_0MFn0PDzEeCxrPjksdBlsg" name="addAt" visibility="public">
+ <ownedComment xmi:id="_3IEQwPDzEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public addAt (in index : Integer, in element : any) : Boolean { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_3IgVoPDzEeCxrPjksdBlsg" name="index">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3Iix4PDzEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3IhjwPDzEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_3IjY8PDzEeCxrPjksdBlsg" name="element" type="_HKe7wO6UEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3IknEPDzEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3IkAAPDzEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_3IlOIPDzEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3InDUPDzEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3ImcQPDzEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_399W8PDzEeCxrPjksdBlsg" name="at" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_6rgiUPDzEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public at (in index : Integer) : any [0..1] { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_6sEjAPDzEeCxrPjksdBlsg" name="index">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6sHmUPDzEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6sGYMPDzEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_6sJbgPDzEeCxrPjksdBlsg" type="_HKe7wO6UEeCttc32wS_Cjw" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6sLQsPDzEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6sKCkPDzEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_8GKicPDzEeCxrPjksdBlsg" name="destroy" visibility="public">
+ <ownedComment xmi:id="_AT2q4PD0EeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public destroy () { }</body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:id="_B3XsEPD0EeCxrPjksdBlsg" name="equals" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_EhoS4PD0EeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public equals (in seq : any [0..*] sequence) : Boolean { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_EiEXwPD0EeCxrPjksdBlsg" name="seq" type="_HKe7wO6UEeCttc32wS_Cjw" isOrdered="true" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_EiGM8PD0EeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EiE-0PD0EeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_EiHbEPD0EeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_EiJQQPD0EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EiIpMPD0EeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_FZ5XoPD0EeCxrPjksdBlsg" name="first" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_H0IlcPD0EeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public first () : any [0..1]{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_wGDfMPD2EeCxrPjksdBlsg" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wGEtUPD2EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wGEGQPD2EeCxrPjksdBlsg"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_IrPzoPD0EeCxrPjksdBlsg" name="indexOf" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_LsfXEPD0EeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public indexOf (in element : any) : Integer [0..1] { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_Ls7b8PD0EeCxrPjksdBlsg" name="element" type="_HKe7wO6UEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ls9RIPD0EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ls8DAPD0EeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ls-fQPD0EeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LtAUcPD0EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ls_tYPD0EeCxrPjksdBlsg"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_MrEfMPD0EeCxrPjksdBlsg" name="last" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_PlfB4PD0EeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public last () : any [0..1] { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_Pl_YMPD0EeCxrPjksdBlsg" type="_HKe7wO6UEeCttc32wS_Cjw" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PmBNYPD0EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Pl__QPD0EeCxrPjksdBlsg"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_QgIsQPD0EeCxrPjksdBlsg" name="List" visibility="public">
+ <ownedComment xmi:id="_QpJeUPD0EeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public List (in seq : any [0..*] sequence) { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_UGVW4PD0EeCxrPjksdBlsg" name="seq" type="_HKe7wO6UEeCttc32wS_Cjw" isOrdered="true" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UGWlAPD0EeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UGV98PD0EeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_G0T_0PD3EeCxrPjksdBlsg" name="Parameter0" type="_23Cq0PD2EeCxrPjksdBlsg" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_G0YRQPD3EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_G0WcEPD3EeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_VPL1UPD0EeCxrPjksdBlsg" name="remove" visibility="public">
+ <ownedComment xmi:id="_XZJygPD0EeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public remove (in element : any) : Integer { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_XZnFgPD0EeCxrPjksdBlsg" name="element" type="_HKe7wO6UEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XZo6sPD0EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XZnskPD0EeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_XZqI0PD0EeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XZslEPD0EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XZrW8PD0EeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_YW7pYPD0EeCxrPjksdBlsg" name="removeAll" visibility="public">
+ <ownedComment xmi:id="_cgffwPD0EeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public removeAll (in seq : any [0..*] sequence) : Boolean { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_cg8LsPD0EeCxrPjksdBlsg" name="seq" type="_HKe7wO6UEeCttc32wS_Cjw" isOrdered="true" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cg9Z0PD0EeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cg8ywPD0EeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_cg_PAPD0EeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_chAdIPD0EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cg_2EPD0EeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_fDHNgPD0EeCxrPjksdBlsg" name="removeAt" visibility="public">
+ <ownedComment xmi:id="_h0PRUPD0EeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public removeAt (in index : Integer) : any [0..1] { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_h0uZgPD0EeCxrPjksdBlsg" name="index">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_h0wOsPD0EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_h0vnoPD0EeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_h0w1wPD0EeCxrPjksdBlsg" type="_HKe7wO6UEeCttc32wS_Cjw" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_h0yq8PD0EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_h0yD4PD0EeCxrPjksdBlsg"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jCi3gPD0EeCxrPjksdBlsg" name="removeOne" visibility="public">
+ <ownedComment xmi:id="_lurtoPD0EeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public removeOne (in element : any) : Boolean { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_lvatcPD0EeCxrPjksdBlsg" name="element" type="_HKe7wO6UEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lvdJsPD0EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lvb7kPD0EeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_lveX0PD0EeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lvgNAPD0EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lvfl8PD0EeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_moH3EPD0EeCxrPjksdBlsg" name="replace" visibility="public">
+ <ownedComment xmi:id="_qzay0PD0EeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public replace (in element : any, in newElement : any) : Integer{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_qz5T8PD0EeCxrPjksdBlsg" name="element" type="_HKe7wO6UEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_qz6iEPD0EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qz57APD0EeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_qz7wMPD0EeCxrPjksdBlsg" name="newElement" type="_HKe7wO6UEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_qz8-UPD0EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qz8XQPD0EeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_qz9lYPD0EeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_qz_akPD0EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qz-zgPD0EeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_r26QIPD0EeCxrPjksdBlsg" name="replaceAt" visibility="public">
+ <ownedComment xmi:id="_xqRV4PD0EeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public replaceAt (in index : Integer, in element : any) : any [0..1] { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_xqvP8PD0EeCxrPjksdBlsg" name="index">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xqxFIPD0EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xqweEPD0EeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_xqxsMPD0EeCxrPjksdBlsg" name="element" type="_HKe7wO6UEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xqzhYPD0EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xqyTQPD0EeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_xq0IcPD0EeCxrPjksdBlsg" type="_HKe7wO6UEeCttc32wS_Cjw" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xq19oPD0EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xq0vgPD0EeCxrPjksdBlsg"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_yxI3UPD0EeCxrPjksdBlsg" name="replaceOne" visibility="public">
+ <ownedComment xmi:id="_2w54gPD0EeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public replaceOne (in element : any, in newElement : any) : Boolean { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_2xaO0PD0EeCxrPjksdBlsg" name="element" type="_HKe7wO6UEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2xbc8PD0EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2xa14PD0EeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_2xcrEPD0EeCxrPjksdBlsg" name="newElement" type="_HKe7wO6UEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2xd5MPD0EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2xdSIPD0EeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_2xfHUPD0EeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2xgVcPD0EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2xfuYPD0EeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_47SFYPD0EeCxrPjksdBlsg" name="retainAll" visibility="public">
+ <ownedComment xmi:id="_8MeJUPD0EeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public retainAll (in seq : any [0..*] sequence) : Boolean { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_8M8DYPD0EeCxrPjksdBlsg" name="seq" type="_HKe7wO6UEeCttc32wS_Cjw" isOrdered="true" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8M9RgPD0EeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8M8qcPD0EeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_8M_GsPD0EeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8NA74PD0EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8NAU0PD0EeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_9H7E8PD0EeCxrPjksdBlsg" name="subList" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_Bpl5UPD1EeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public subList (in fromIndex : Integer, in toIndex : Integer) { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_BqDzYPD1EeCxrPjksdBlsg" name="fromIndex">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BqGPoPD1EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BqFBgPD1EeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_BqG2sPD1EeCxrPjksdBlsg" name="toIndex">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BqIr4PD1EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BqIE0PD1EeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_4Avy8PD4EeCxrPjksdBlsg" name="Parameter0" type="_23Cq0PD2EeCxrPjksdBlsg" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4A0rcPD4EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4AxoIPD4EeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_BBdn0KizEeCw3MW-Flzemw" name="Deque" isAbstract="true">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_RTmkIKi0EeCw3MW-Flzemw" name="DequeTemplateSignature" parameter="_IFS-MO6UEeCttc32wS_Cjw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_IFS-MO6UEeCttc32wS_Cjw" parameteredElement="_KwQvoO6UEeCttc32wS_Cjw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_KwQvoO6UEeCttc32wS_Cjw" name="T" templateParameter="_IFS-MO6UEeCttc32wS_Cjw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <generalization xmi:id="_QM1B0O6bEeCttc32wS_Cjw" general="_2HR1QO6aEeCttc32wS_Cjw"/>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_2HR1QO6aEeCttc32wS_Cjw" name="Deque&lt;Y>" isAbstract="true">
+ <templateBinding xmi:id="_XEyYIO6bEeCttc32wS_Cjw" signature="_Oa0ZIKi0EeCw3MW-Flzemw">
+ <parameterSubstitution xmi:id="_wQ9FoO6bEeCttc32wS_Cjw" formal="_4ttJIO6TEeCttc32wS_Cjw" actual="_KwQvoO6UEeCttc32wS_Cjw"/>
+ </templateBinding>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_GNtygPD6EeCxrPjksdBlsg" name="Deque&lt;T>" isAbstract="true">
+ <templateBinding xmi:id="_I_joAPD6EeCxrPjksdBlsg" signature="_RTmkIKi0EeCw3MW-Flzemw">
+ <parameterSubstitution xmi:id="_K4v-QPD6EeCxrPjksdBlsg" formal="_IFS-MO6UEeCttc32wS_Cjw" actual="_KwQvoO6UEeCttc32wS_Cjw"/>
+ </templateBinding>
+ </nestedClassifier>
+ <ownedOperation xmi:id="_ZwCYEPD5EeCxrPjksdBlsg" name="addFirst" visibility="public">
+ <ownedComment xmi:id="_if6SQPD5EeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public addFirst (in element : any) : Boolean { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_igZacPD5EeCxrPjksdBlsg" name="element" type="_KwQvoO6UEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_igaokPD5EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_igaBgPD5EeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_igb2sPD5EeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_igdr4PD5EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_igdE0PD5EeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_k9dSwPD5EeCxrPjksdBlsg" name="Deque" visibility="public">
+ <ownedComment xmi:id="_ofSawPD5EeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public Deque (in seq : any [0..*] sequence) { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_ofw74PD5EeCxrPjksdBlsg" name="seq" type="_KwQvoO6UEeCttc32wS_Cjw" isOrdered="true" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ofyxEPD5EeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ofyKAPD5EeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_P5abwPD6EeCxrPjksdBlsg" name="Parameter0" type="_GNtygPD6EeCxrPjksdBlsg" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_P5fUQPD6EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_P5c4APD6EeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_p2PmoPD5EeCxrPjksdBlsg" name="destroy" visibility="public">
+ <ownedComment xmi:id="_qgQM8PD5EeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public destroy () { }</body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ra0XwPD5EeCxrPjksdBlsg" name="last" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_t0_7MPD5EeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public last () : any [0..1] { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_t1UrUPD5EeCxrPjksdBlsg" type="_KwQvoO6UEeCttc32wS_Cjw" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t1WggPD5EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t1V5cPD5EeCxrPjksdBlsg"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_uyKHAPD5EeCxrPjksdBlsg" name="removeLast" visibility="public">
+ <ownedComment xmi:id="_xC0iEPD5EeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public removeLast () : any [0..1] { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_xDOKsPD5EeCxrPjksdBlsg" type="_KwQvoO6UEeCttc32wS_Cjw" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xDPY0PD5EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xDOxwPD5EeCxrPjksdBlsg"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_zN-LAPD5EeCxrPjksdBlsg" name="removeLastOne" visibility="public">
+ <ownedComment xmi:id="_39PWgPD5EeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public removeLastOne (in element : any) : any [0..1] { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_39pmMPD5EeCxrPjksdBlsg" name="element" type="_KwQvoO6UEeCttc32wS_Cjw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_39sCcPD5EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_39q0UPD5EeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_39spgPD5EeCxrPjksdBlsg" type="_KwQvoO6UEeCttc32wS_Cjw" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_39uesPD5EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_39t3oPD5EeCxrPjksdBlsg"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_slMQkKi1EeCw3MW-Flzemw" name="Map" isAbstract="true">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_JEimEKi2EeCw3MW-Flzemw" name="MapTemplateSignature" parameter="_LzL9oKi2EeCw3MW-Flzemw _WO68sKi2EeCw3MW-Flzemw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_LzL9oKi2EeCw3MW-Flzemw" parameteredElement="_XzzP0Ki2EeCw3MW-Flzemw" allowSubstitutable="false">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_XzzP0Ki2EeCw3MW-Flzemw" name="Key" templateParameter="_LzL9oKi2EeCw3MW-Flzemw"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_WO68sKi2EeCw3MW-Flzemw" parameteredElement="_lEJEgKi2EeCw3MW-Flzemw" allowSubstitutable="false">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_lEJEgKi2EeCw3MW-Flzemw" name="Value" templateParameter="_WO68sKi2EeCw3MW-Flzemw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_ihFFAPD7EeCxrPjksdBlsg" name="Entry">
+ <ownedAttribute xmi:id="_n_MTgPD7EeCxrPjksdBlsg" name="key" visibility="public" type="_XzzP0Ki2EeCw3MW-Flzemw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_o0yewPD7EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_o0lqcPD7EeCxrPjksdBlsg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_o1Rm8PD7EeCxrPjksdBlsg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_pRVQ0PD7EeCxrPjksdBlsg" name="value" visibility="public" type="_lEJEgKi2EeCw3MW-Flzemw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sBENgPD7EeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sA5OYPD7EeCxrPjksdBlsg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_sBtGsPD7EeCxrPjksdBlsg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="__3ryoPD7EeCxrPjksdBlsg" name="Set&lt;Entry>" isAbstract="true">
+ <templateBinding xmi:id="_Ez9fYPD8EeCxrPjksdBlsg" signature="_F_i18Ki0EeCw3MW-Flzemw">
+ <parameterSubstitution xmi:id="_yCw8wPMVEeCxrPjksdBlsg" formal="_wMyQ8O6TEeCttc32wS_Cjw" actual="_ihFFAPD7EeCxrPjksdBlsg"/>
+ </templateBinding>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_NzVrQPMXEeCxrPjksdBlsg" name="Set&lt;Key>" isAbstract="true">
+ <templateBinding xmi:id="_RstJgPMXEeCxrPjksdBlsg" signature="_F_i18Ki0EeCw3MW-Flzemw">
+ <parameterSubstitution xmi:id="_U5GNAPMXEeCxrPjksdBlsg" formal="_wMyQ8O6TEeCttc32wS_Cjw" actual="_XzzP0Ki2EeCw3MW-Flzemw"/>
+ </templateBinding>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_RXVEgPMZEeCxrPjksdBlsg" name="Map&lt;Key, Value>" isAbstract="true">
+ <templateBinding xmi:id="_Vndc8PMZEeCxrPjksdBlsg" signature="_JEimEKi2EeCw3MW-Flzemw">
+ <parameterSubstitution xmi:id="_Yg69YPMZEeCxrPjksdBlsg" formal="_LzL9oKi2EeCw3MW-Flzemw" actual="_XzzP0Ki2EeCw3MW-Flzemw"/>
+ <parameterSubstitution xmi:id="_dOSrcPMZEeCxrPjksdBlsg" formal="_WO68sKi2EeCw3MW-Flzemw" actual="_lEJEgKi2EeCw3MW-Flzemw"/>
+ </templateBinding>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_aD7y0PMaEeCxrPjksdBlsg" name="Bag&lt;Value>" isAbstract="true">
+ <templateBinding xmi:id="_c_C5EPMaEeCxrPjksdBlsg" signature="_MufaMKi0EeCw3MW-Flzemw">
+ <parameterSubstitution xmi:id="_h8x-YPMaEeCxrPjksdBlsg" formal="_0e_tAO6TEeCttc32wS_Cjw" actual="_lEJEgKi2EeCw3MW-Flzemw"/>
+ </templateBinding>
+ </nestedClassifier>
+ <ownedOperation xmi:id="_HkbucPMWEeCxrPjksdBlsg" name="clear" visibility="public">
+ <ownedComment xmi:id="_ITpk4PMWEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public clear () { }</body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:id="_J0hhwPMWEeCxrPjksdBlsg" name="destroy" visibility="public">
+ <ownedComment xmi:id="_LUITUPMWEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public destroy () { }</body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:id="_MvEnUPMWEeCxrPjksdBlsg" name="entries" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_UWZlEPMWEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public entries () : any{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_cZvegPMYEeCxrPjksdBlsg" type="__3ryoPD7EeCxrPjksdBlsg" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cZx6wPMYEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cZwsoPMYEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_WjS6cPMWEeCxrPjksdBlsg" name="excludesAll" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_dTeNwPMWEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public excludesAll (in entries : any [0..*]) : Boolean { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_dTWR8PMWEeCxrPjksdBlsg" name="entries" type="_ihFFAPD7EeCxrPjksdBlsg">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dTYuMPMWEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dTXgEPMWEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_dTbKcPMWEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dTc_oPMWEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dTcYkPMWEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_rHfXQPMWEeCxrPjksdBlsg" name="get" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_w2NNkPMWEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public get (in key : any) : any [0..1] { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_w21fsPMWEeCxrPjksdBlsg" name="key" type="_XzzP0Ki2EeCw3MW-Flzemw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w23U4PMWEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w22GwPMWEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_w2378PMWEeCxrPjksdBlsg" type="_lEJEgKi2EeCw3MW-Flzemw" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w25xIPMWEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w24jAPMWEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_xhvd4PMWEeCxrPjksdBlsg" name="includesAll" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_1b_s8PMWEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public includesAll (in entries : any [0..*]) : Boolean { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_1ccY4PMWEeCxrPjksdBlsg" name="entries" type="_ihFFAPD7EeCxrPjksdBlsg">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1ce1IPMWEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1cdnAPMWEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_1cgqUPMWEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1cifgPMWEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1ch4cPMWEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_2eS3cPMWEeCxrPjksdBlsg" name="includesKey" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_4y1s8PMWEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public includesKey (in key : any) : Boolean { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_6MjR4PMWEeCxrPjksdBlsg" name="key" type="_XzzP0Ki2EeCw3MW-Flzemw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6Mm8QPMWEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6MlHEPMWEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_6MoKYPMWEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6MqmoPMWEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6Mp_kPMWEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_697rgPMWEeCxrPjksdBlsg" name="includesValue" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_-hhHAPMWEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public includesValue (in value : any [0..1] ) : Boolean {}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_80FC4PMYEeCxrPjksdBlsg" name="value" type="_lEJEgKi2EeCw3MW-Flzemw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_80G4EPMYEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_80GRAPMYEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_80ItQPMYEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_80KicPMYEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_80J7YPMYEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_GFZvMPMXEeCxrPjksdBlsg" name="isEmpty" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_H0uXwPMXEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public isEmpty () : Boolean { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_H1OHAPMXEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_H1P8MPMXEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_H1PVIPMXEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_hr2GwPMXEeCxrPjksdBlsg" name="keys" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_j3uIcPMXEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public keys () : any{ }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_j4KNUPMXEeCxrPjksdBlsg" type="_NzVrQPMXEeCxrPjksdBlsg" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j4LbcPMXEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j4K0YPMXEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_knv3MPMXEeCxrPjksdBlsg" name="Map" visibility="public">
+ <ownedComment xmi:id="_q0cqAPMXEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public Map (in entries : any [0..*]) : any { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_q059APMXEeCxrPjksdBlsg" name="entries" type="_ihFFAPD7EeCxrPjksdBlsg">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_q07yMPMXEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_q06kEPMXEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_q09nYPMXEeCxrPjksdBlsg" type="_RXVEgPMZEeCxrPjksdBlsg" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_q0-1gPMXEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_q0-OcPMXEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_r0vCUPMXEeCxrPjksdBlsg" name="notEmpty" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_t9L8kPMXEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public notEmpty () : Boolean { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_t9mzUPMXEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t9oogPMXEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t9naYPMXEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_vZxPUPMXEeCxrPjksdBlsg" name="put" visibility="public">
+ <ownedComment xmi:id="_zj0N4PMXEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public put (in key : any, in value : any [0..1]) : any [0..1] { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_zkSH8PMXEeCxrPjksdBlsg" name="key" type="_XzzP0Ki2EeCw3MW-Flzemw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zkT9IPMXEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zkTWEPMXEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_zkVLQPMXEeCxrPjksdBlsg" name="value" type="_lEJEgKi2EeCw3MW-Flzemw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zkXAcPMXEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zkVyUPMXEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_zkYOkPMXEeCxrPjksdBlsg" type="_lEJEgKi2EeCw3MW-Flzemw" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zkaDwPMXEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zkZcsPMXEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_0jXmYPMXEeCxrPjksdBlsg" name="putAll" visibility="public">
+ <ownedComment xmi:id="_2ve4oPMXEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public putAll (in entries : any [0..*]) { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_2wF8oPMXEeCxrPjksdBlsg" name="entries" type="_ihFFAPD7EeCxrPjksdBlsg">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2wHx0PMXEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2wHKwPMXEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_3rpl8PMXEeCxrPjksdBlsg" name="remove" visibility="public">
+ <ownedComment xmi:id="_6RKPoPMXEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public remove (in key : any) : any [0..1] { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_6RjRMPMXEeCxrPjksdBlsg" name="key" type="_XzzP0Ki2EeCw3MW-Flzemw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6RlGYPMXEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6Rj4QPMXEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_6RltcPMXEeCxrPjksdBlsg" type="_lEJEgKi2EeCw3MW-Flzemw" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6RnioPMXEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6Rm7kPMXEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_7N_EQPMXEeCxrPjksdBlsg" name="removeAll" visibility="public">
+ <ownedComment xmi:id="__cN_QPMXEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public removeAll (in keys : any [0..*]) { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="__coO8PMXEeCxrPjksdBlsg" name="keys" type="_XzzP0Ki2EeCw3MW-Flzemw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__cqEIPMXEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__cpdEPMXEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="__5CeIPMXEeCxrPjksdBlsg" name="size" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_BtIR8PMYEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public size () : Integer { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_Btp2YPMYEeCxrPjksdBlsg" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BtsSoPMYEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BtrEgPMYEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_C-aToPMYEeCxrPjksdBlsg" name="toSequence" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_GA1i0PMYEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public toSequence () : any [0..*] sequence { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_MFwAsPMaEeCxrPjksdBlsg" type="_ihFFAPD7EeCxrPjksdBlsg" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MFzEAPMaEeCxrPjksdBlsg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MFxO0PMaEeCxrPjksdBlsg"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_IpBGAPMYEeCxrPjksdBlsg" name="values" visibility="public" isQuery="true">
+ <ownedComment xmi:id="_KTDl8PMYEeCxrPjksdBlsg">
+ <body>&lt;&lt;TextualRepresentation>>public values () : any { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_KTsfIPMYEeCxrPjksdBlsg" type="_aD7y0PMaEeCxrPjksdBlsg" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KTwJgPMYEeCxrPjksdBlsg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KTuUUPMYEeCxrPjksdBlsg" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_nFgGsPNREeCfS7qBvajEQQ" name="CollectionFunctions">
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_nFgGsfNREeCfS7qBvajEQQ" name="Size">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_8De8gPNREeCfS7qBvajEQQ" name="RedefinableTemplateSignature0" parameter="_8rO5APNREeCfS7qBvajEQQ">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_8rO5APNREeCfS7qBvajEQQ" parameteredElement="_-MdbMPNREeCfS7qBvajEQQ">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_-MdbMPNREeCfS7qBvajEQQ" name="T" templateParameter="_8rO5APNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_nFgGsvNREeCfS7qBvajEQQ" name="seq" visibility="public" type="_-MdbMPNREeCfS7qBvajEQQ" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgGs_NREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgGtPNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFgGtfNREeCfS7qBvajEQQ" name="result" visibility="public" isOrdered="true" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgGtvNREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgGt_NREeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_nFgGuPNREeCfS7qBvajEQQ" name="Includes">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_Rn78cPNSEeCfS7qBvajEQQ" name="RedefinableTemplateSignature0" parameter="_SpXkQPNSEeCfS7qBvajEQQ">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_SpXkQPNSEeCfS7qBvajEQQ" parameteredElement="_axpS8PNSEeCfS7qBvajEQQ">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_axpS8PNSEeCfS7qBvajEQQ" name="T" templateParameter="_SpXkQPNSEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_nFgGufNREeCfS7qBvajEQQ" name="seq" visibility="public" type="_axpS8PNSEeCfS7qBvajEQQ" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgGuvNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgGu_NREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFgGvPNREeCfS7qBvajEQQ" name="element" visibility="public" type="_axpS8PNSEeCfS7qBvajEQQ" isOrdered="true" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgGvfNREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgGvvNREeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFgGv_NREeCfS7qBvajEQQ" name="result" visibility="public" isOrdered="true" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgGwPNREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgGwfNREeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_nFgGwvNREeCfS7qBvajEQQ" name="Excludes">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_lnWRMPNSEeCfS7qBvajEQQ" name="RedefinableTemplateSignature0" parameter="_omyd0PNSEeCfS7qBvajEQQ">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_omyd0PNSEeCfS7qBvajEQQ" parameteredElement="_rFD3EPNSEeCfS7qBvajEQQ">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_rFD3EPNSEeCfS7qBvajEQQ" name="T" templateParameter="_omyd0PNSEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_nFgGw_NREeCfS7qBvajEQQ" name="seq" visibility="public" type="_rFD3EPNSEeCfS7qBvajEQQ" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgGxPNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgGxfNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFgGxvNREeCfS7qBvajEQQ" name="element" visibility="public" type="_rFD3EPNSEeCfS7qBvajEQQ" isOrdered="true" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgGx_NREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgGyPNREeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFgGyfNREeCfS7qBvajEQQ" name="result" visibility="public" isOrdered="true" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgGyvNREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgGy_NREeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_nFgGzPNREeCfS7qBvajEQQ" name="Count">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_23PrsPNSEeCfS7qBvajEQQ" name="RedefinableTemplateSignature0" parameter="_3zji8PNSEeCfS7qBvajEQQ">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_3zji8PNSEeCfS7qBvajEQQ" parameteredElement="_6cpsIPNSEeCfS7qBvajEQQ">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_6cpsIPNSEeCfS7qBvajEQQ" name="T" templateParameter="_3zji8PNSEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_nFgGzfNREeCfS7qBvajEQQ" name="seq" visibility="public" type="_6cpsIPNSEeCfS7qBvajEQQ" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgGzvNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgGz_NREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFgG0PNREeCfS7qBvajEQQ" name="element" visibility="public" type="_6cpsIPNSEeCfS7qBvajEQQ" isOrdered="true" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgG0fNREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgG0vNREeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFgG0_NREeCfS7qBvajEQQ" name="result" visibility="public" isOrdered="true" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgG1PNREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgG1fNREeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_nFgtwPNREeCfS7qBvajEQQ" name="IsEmpty">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_GuUSEPNTEeCfS7qBvajEQQ" name="RedefinableTemplateSignature0" parameter="_Hr8_APNTEeCfS7qBvajEQQ">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_Hr8_APNTEeCfS7qBvajEQQ" parameteredElement="_Kbu_APNTEeCfS7qBvajEQQ">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_Kbu_APNTEeCfS7qBvajEQQ" name="T" templateParameter="_Hr8_APNTEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_nFgtwfNREeCfS7qBvajEQQ" name="seq" visibility="public" type="_Kbu_APNTEeCfS7qBvajEQQ" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgtwvNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgtw_NREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFgtxPNREeCfS7qBvajEQQ" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgtxfNREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgtxvNREeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_nFgtx_NREeCfS7qBvajEQQ" name="NotEmpty">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_Txo-cPNTEeCfS7qBvajEQQ" name="RedefinableTemplateSignature0" parameter="_U2qs0PNTEeCfS7qBvajEQQ">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_U2qs0PNTEeCfS7qBvajEQQ" parameteredElement="_XnyJkPNTEeCfS7qBvajEQQ">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_XnyJkPNTEeCfS7qBvajEQQ" name="T" templateParameter="_U2qs0PNTEeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_nFgtyPNREeCfS7qBvajEQQ" name="seq" visibility="public" type="_XnyJkPNTEeCfS7qBvajEQQ" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgtyfNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgtyvNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFgty_NREeCfS7qBvajEQQ" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgtzPNREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgtzfNREeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_nFgtzvNREeCfS7qBvajEQQ" name="IncludesAll">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_7UAaYPPgEeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_8OY_APPgEeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_8OY_APPgEeCjkLKmJeBqEw" parameteredElement="_-KI6APPgEeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_-KI6APPgEeCjkLKmJeBqEw" name="T" templateParameter="_8OY_APPgEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_nFgtz_NREeCfS7qBvajEQQ" name="seq1" visibility="public" type="_-KI6APPgEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgt0PNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgt0fNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFgt0vNREeCfS7qBvajEQQ" name="seq2" visibility="public" type="_-KI6APPgEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgt0_NREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgt1PNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFgt1fNREeCfS7qBvajEQQ" name="result" visibility="public" isOrdered="true" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgt1vNREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgt1_NREeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_nFgt2PNREeCfS7qBvajEQQ" name="ExcludesAll">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_I0uNYPPhEeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_JwQokPPhEeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_JwQokPPhEeCjkLKmJeBqEw" parameteredElement="_LzLikPPhEeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_LzLikPPhEeCjkLKmJeBqEw" name="T" templateParameter="_JwQokPPhEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_nFgt2fNREeCfS7qBvajEQQ" name="seq1" visibility="public" type="_LzLikPPhEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgt2vNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgt2_NREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFgt3PNREeCfS7qBvajEQQ" name="seq2" visibility="public" type="_LzLikPPhEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgt3fNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgt3vNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFgt3_NREeCfS7qBvajEQQ" name="result" visibility="public" isOrdered="true" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgt4PNREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgt4fNREeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_nFgt4vNREeCfS7qBvajEQQ" name="Equals">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_WPz5gPPhEeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_XDnVAPPhEeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_XDnVAPPhEeCjkLKmJeBqEw" parameteredElement="_ZYjMEPPhEeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_ZYjMEPPhEeCjkLKmJeBqEw" name="T" templateParameter="_XDnVAPPhEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_nFgt4_NREeCfS7qBvajEQQ" name="seq1" visibility="public" type="_ZYjMEPPhEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgt5PNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgt5fNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFgt5vNREeCfS7qBvajEQQ" name="seq2" visibility="public" type="_ZYjMEPPhEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgt5_NREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgt6PNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFgt6fNREeCfS7qBvajEQQ" name="result" visibility="public" isOrdered="true" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgt6vNREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgt6_NREeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_nFgt7PNREeCfS7qBvajEQQ" name="At">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_iyL08PPhEeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_kAHnsPPhEeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_kAHnsPPhEeCjkLKmJeBqEw" parameteredElement="_l63dIPPhEeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_l63dIPPhEeCjkLKmJeBqEw" name="T" templateParameter="_kAHnsPPhEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_nFgt7fNREeCfS7qBvajEQQ" name="seq" visibility="public" type="_l63dIPPhEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgt7vNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgt7_NREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFgt8PNREeCfS7qBvajEQQ" name="index" visibility="public" isOrdered="true" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgt8fNREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgt8vNREeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFgt8_NREeCfS7qBvajEQQ" name="result" visibility="public" type="_l63dIPPhEeCjkLKmJeBqEw" isOrdered="true" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgt9PNREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgt9fNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_nFgt9vNREeCfS7qBvajEQQ" name="IndexOf">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_vegWkPPhEeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_wezV8PPhEeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_wezV8PPhEeCjkLKmJeBqEw" parameteredElement="_x_-00PPhEeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_x_-00PPhEeCjkLKmJeBqEw" name="T" templateParameter="_wezV8PPhEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_nFgt9_NREeCfS7qBvajEQQ" name="seq" visibility="public" type="_x_-00PPhEeCjkLKmJeBqEw" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgt-PNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgt-fNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFgt-vNREeCfS7qBvajEQQ" name="element" visibility="public" type="_x_-00PPhEeCjkLKmJeBqEw" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgt-_NREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgt_PNREeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFgt_fNREeCfS7qBvajEQQ" name="result" visibility="public" isOrdered="true" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgt_vNREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgt__NREeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_nFguAPNREeCfS7qBvajEQQ" name="First">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_6QqRkPPhEeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_65jdkPPhEeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_65jdkPPhEeCjkLKmJeBqEw" parameteredElement="_8p1vcPPhEeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_8p1vcPPhEeCjkLKmJeBqEw" name="T" templateParameter="_65jdkPPhEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_nFguAfNREeCfS7qBvajEQQ" name="seq" visibility="public" type="_8p1vcPPhEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguAvNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguA_NREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFguBPNREeCfS7qBvajEQQ" name="result" visibility="public" type="_8p1vcPPhEeCjkLKmJeBqEw" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguBfNREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguBvNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_nFguB_NREeCfS7qBvajEQQ" name="Last">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_GUBVwPPiEeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_HAR-0PPiEeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_HAR-0PPiEeCjkLKmJeBqEw" parameteredElement="_I00ekPPiEeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_I00ekPPiEeCjkLKmJeBqEw" name="T" templateParameter="_HAR-0PPiEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_nFguCPNREeCfS7qBvajEQQ" name="seq" visibility="public" type="_I00ekPPiEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguCfNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguCvNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFguC_NREeCfS7qBvajEQQ" name="result" visibility="public" type="_I00ekPPiEeCjkLKmJeBqEw" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguDPNREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguDfNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_nFguDvNREeCfS7qBvajEQQ" name="Union">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_QXHyYPPiEeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_RDvn0PPiEeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_RDvn0PPiEeCjkLKmJeBqEw" parameteredElement="_SyWesPPiEeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_SyWesPPiEeCjkLKmJeBqEw" name="T" templateParameter="_RDvn0PPiEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_nFguD_NREeCfS7qBvajEQQ" name="seq1" visibility="public" type="_SyWesPPiEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguEPNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguEfNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFguEvNREeCfS7qBvajEQQ" name="seq2" visibility="public" type="_SyWesPPiEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguE_NREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguFPNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFguFfNREeCfS7qBvajEQQ" name="result" visibility="public" type="_SyWesPPiEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguFvNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguF_NREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_nFguGPNREeCfS7qBvajEQQ" name="Intersection">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_cxUpQPPiEeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_dzDzEPPiEeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_dzDzEPPiEeCjkLKmJeBqEw" parameteredElement="_ftk_APPiEeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_ftk_APPiEeCjkLKmJeBqEw" name="T" templateParameter="_dzDzEPPiEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_nFguGfNREeCfS7qBvajEQQ" name="seq1" visibility="public" type="_ftk_APPiEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguGvNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguG_NREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFguHPNREeCfS7qBvajEQQ" name="seq2" visibility="public" type="_ftk_APPiEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguHfNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguHvNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFguH_NREeCfS7qBvajEQQ" name="result" visibility="public" type="_ftk_APPiEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguIPNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguIfNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_nFguIvNREeCfS7qBvajEQQ" name="Difference">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_tAeYcPPiEeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_u68hEPPiEeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_u68hEPPiEeCjkLKmJeBqEw" parameteredElement="_61eZYPPiEeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_61eZYPPiEeCjkLKmJeBqEw" name="T" templateParameter="_u68hEPPiEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_nFguI_NREeCfS7qBvajEQQ" name="seq1" visibility="public" type="_61eZYPPiEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguJPNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguJfNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFguJvNREeCfS7qBvajEQQ" name="seq2" visibility="public" type="_61eZYPPiEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguJ_NREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguKPNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFguKfNREeCfS7qBvajEQQ" name="result" visibility="public" type="_61eZYPPiEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguKvNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguK_NREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_nFguLPNREeCfS7qBvajEQQ" name="Including">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_GuXS8PPjEeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_HgTGMPPjEeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_HgTGMPPjEeCjkLKmJeBqEw" parameteredElement="_J_2R0PPjEeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_J_2R0PPjEeCjkLKmJeBqEw" name="T" templateParameter="_HgTGMPPjEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_nFguLfNREeCfS7qBvajEQQ" name="seq" visibility="public" type="_J_2R0PPjEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguLvNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguL_NREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFguMPNREeCfS7qBvajEQQ" name="element" visibility="public" type="_J_2R0PPjEeCjkLKmJeBqEw" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguMfNREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguMvNREeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFguM_NREeCfS7qBvajEQQ" name="result" visibility="public" type="_J_2R0PPjEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguNPNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguNfNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_nFguNvNREeCfS7qBvajEQQ" name="IncludeAt">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_VvJKgPPjEeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_Wjv3QPPjEeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_Wjv3QPPjEeCjkLKmJeBqEw" parameteredElement="_Yl3gAPPjEeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_Yl3gAPPjEeCjkLKmJeBqEw" name="T" templateParameter="_Wjv3QPPjEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_nFguN_NREeCfS7qBvajEQQ" name="seq" visibility="public" type="_Yl3gAPPjEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguOPNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguOfNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFguOvNREeCfS7qBvajEQQ" name="index" visibility="public" isOrdered="true" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguO_NREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguPPNREeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFguPfNREeCfS7qBvajEQQ" name="element" visibility="public" type="_Yl3gAPPjEeCjkLKmJeBqEw" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguPvNREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguP_NREeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFguQPNREeCfS7qBvajEQQ" name="result" visibility="public" type="_Yl3gAPPjEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguQfNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguQvNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_nFguQ_NREeCfS7qBvajEQQ" name="InsertAt">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_lqDvEPPjEeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_miyG0PPjEeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_miyG0PPjEeCjkLKmJeBqEw" parameteredElement="_oh9JQPPjEeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_oh9JQPPjEeCjkLKmJeBqEw" name="T" templateParameter="_miyG0PPjEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_nFguRPNREeCfS7qBvajEQQ" name="seq" visibility="public" type="_oh9JQPPjEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguRfNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguRvNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFguR_NREeCfS7qBvajEQQ" name="index" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguSPNREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguSfNREeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFguSvNREeCfS7qBvajEQQ" name="element" visibility="public" type="_oh9JQPPjEeCjkLKmJeBqEw" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguS_NREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguTPNREeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFguTfNREeCfS7qBvajEQQ" name="result" visibility="public" type="_oh9JQPPjEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguTvNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguT_NREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_nFguUPNREeCfS7qBvajEQQ" name="IncludeAllAt">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_DKg8QPPkEeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_DxSoYPPkEeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_DxSoYPPkEeCjkLKmJeBqEw" parameteredElement="_FwW9IPPkEeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_FwW9IPPkEeCjkLKmJeBqEw" name="T" templateParameter="_DxSoYPPkEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_nFguUfNREeCfS7qBvajEQQ" name="seq1" visibility="public" type="_FwW9IPPkEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguUvNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguU_NREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFguVPNREeCfS7qBvajEQQ" name="index" visibility="public" isOrdered="true" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguVfNREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguVvNREeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFguV_NREeCfS7qBvajEQQ" name="seq2" visibility="public" type="_FwW9IPPkEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguWPNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguWfNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFguWvNREeCfS7qBvajEQQ" name="result" visibility="public" type="_FwW9IPPkEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguW_NREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguXPNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_nFguXfNREeCfS7qBvajEQQ" name="Excluding">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_6llRUPPkEeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_7W7OsPPkEeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_7W7OsPPkEeCjkLKmJeBqEw" parameteredElement="_9cVcAPPkEeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_9cVcAPPkEeCjkLKmJeBqEw" name="T" templateParameter="_7W7OsPPkEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_nFguXvNREeCfS7qBvajEQQ" name="seq" visibility="public" type="_9cVcAPPkEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguX_NREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguYPNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFguYfNREeCfS7qBvajEQQ" name="element" visibility="public" type="_9cVcAPPkEeCjkLKmJeBqEw" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguYvNREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguY_NREeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFguZPNREeCfS7qBvajEQQ" name="result" visibility="public" type="_9cVcAPPkEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguZfNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguZvNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_nFguZ_NREeCfS7qBvajEQQ" name="ExcludingOne">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_HdQHUPPlEeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_JnzTUPPlEeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_JnzTUPPlEeCjkLKmJeBqEw" parameteredElement="_LJl2MPPlEeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_LJl2MPPlEeCjkLKmJeBqEw" name="T" templateParameter="_JnzTUPPlEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_nFguaPNREeCfS7qBvajEQQ" name="seq" visibility="public" type="_LJl2MPPlEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguafNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguavNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFgua_NREeCfS7qBvajEQQ" name="element" visibility="public" type="_LJl2MPPlEeCjkLKmJeBqEw" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgubPNREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgubfNREeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFgubvNREeCfS7qBvajEQQ" name="result" visibility="public" type="_LJl2MPPlEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgub_NREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgucPNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_nFgucfNREeCfS7qBvajEQQ" name="ExcludeAt">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_UMLRAPPlEeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_VrUIgPPlEeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_VrUIgPPlEeCjkLKmJeBqEw" parameteredElement="_XfjtUPPlEeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_XfjtUPPlEeCjkLKmJeBqEw" name="T" templateParameter="_VrUIgPPlEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_nFgucvNREeCfS7qBvajEQQ" name="seq" visibility="public" type="_XfjtUPPlEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguc_NREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgudPNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFgudfNREeCfS7qBvajEQQ" name="index" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgudvNREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgud_NREeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFguePNREeCfS7qBvajEQQ" name="result" visibility="public" type="_XfjtUPPlEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguefNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguevNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_nFgue_NREeCfS7qBvajEQQ" name="Replacing">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_gSMnoPPlEeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_g_JNMPPlEeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_g_JNMPPlEeCjkLKmJeBqEw" parameteredElement="_ijIvgPPlEeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_ijIvgPPlEeCjkLKmJeBqEw" name="T" templateParameter="_g_JNMPPlEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_nFgufPNREeCfS7qBvajEQQ" name="seq" visibility="public" type="_ijIvgPPlEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguffNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgufvNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFguf_NREeCfS7qBvajEQQ" name="element" visibility="public" type="_ijIvgPPlEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgugPNREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgugfNREeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFgugvNREeCfS7qBvajEQQ" name="newElement" visibility="public" type="_ijIvgPPlEeCjkLKmJeBqEw" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgug_NREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguhPNREeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFguhfNREeCfS7qBvajEQQ" name="result" visibility="public" type="_ijIvgPPlEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguhvNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguh_NREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_nFguiPNREeCfS7qBvajEQQ" name="ReplacingOne">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_u8TroPPlEeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_wVivcPPlEeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_wVivcPPlEeCjkLKmJeBqEw" parameteredElement="_yOAF4PPlEeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_yOAF4PPlEeCjkLKmJeBqEw" name="T" templateParameter="_wVivcPPlEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_nFguifNREeCfS7qBvajEQQ" name="seq" visibility="public" type="_yOAF4PPlEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguivNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgui_NREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFgujPNREeCfS7qBvajEQQ" name="element" visibility="public" type="_yOAF4PPlEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgujfNREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgujvNREeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFguj_NREeCfS7qBvajEQQ" name="newElement" visibility="public" type="_yOAF4PPlEeCjkLKmJeBqEw" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgukPNREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgukfNREeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFgukvNREeCfS7qBvajEQQ" name="result" visibility="public" type="_yOAF4PPlEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguk_NREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgulPNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_nFgulfNREeCfS7qBvajEQQ" name="ReplacingAt">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_9WUeIPPlEeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_-Y2SIPPlEeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_-Y2SIPPlEeCjkLKmJeBqEw" parameteredElement="_A-wkcPPmEeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_A-wkcPPmEeCjkLKmJeBqEw" name="T" templateParameter="_-Y2SIPPlEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_nFgulvNREeCfS7qBvajEQQ" name="seq" visibility="public" type="_A-wkcPPmEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgul_NREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgumPNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFgumfNREeCfS7qBvajEQQ" name="index" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgumvNREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgum_NREeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFgunPNREeCfS7qBvajEQQ" name="element" visibility="public" type="_A-wkcPPmEeCjkLKmJeBqEw" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgunfNREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgunvNREeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFgun_NREeCfS7qBvajEQQ" name="result" visibility="public" type="_A-wkcPPmEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguoPNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguofNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_nFguovNREeCfS7qBvajEQQ" name="Subsequence">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_KDvzAPPmEeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_K1AQ0PPmEeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_K1AQ0PPmEeCjkLKmJeBqEw" parameteredElement="_MzNp8PPmEeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_MzNp8PPmEeCjkLKmJeBqEw" name="T" templateParameter="_K1AQ0PPmEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_nFguo_NREeCfS7qBvajEQQ" name="seq" visibility="public" type="_MzNp8PPmEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgupPNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgupfNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFgupvNREeCfS7qBvajEQQ" name="lower" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgup_NREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguqPNREeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFguqfNREeCfS7qBvajEQQ" name="upper" visibility="public" isOrdered="true" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFguqvNREeCfS7qBvajEQQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFguq_NREeCfS7qBvajEQQ" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFgurPNREeCfS7qBvajEQQ" name="result" visibility="public" type="_MzNp8PPmEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgurfNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgurvNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_nFgur_NREeCfS7qBvajEQQ" name="ToOrderedSet">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_WZscAPPmEeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_XU-YgPPmEeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_XU-YgPPmEeCjkLKmJeBqEw" parameteredElement="_Yy9ZcPPmEeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_Yy9ZcPPmEeCjkLKmJeBqEw" name="T" templateParameter="_XU-YgPPmEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_nFgusPNREeCfS7qBvajEQQ" name="seq" visibility="public" type="_Yy9ZcPPmEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgusfNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgusvNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nFgus_NREeCfS7qBvajEQQ" name="result" visibility="public" type="_Yy9ZcPPmEeCjkLKmJeBqEw" isOrdered="true" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nFgutPNREeCfS7qBvajEQQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nFgutfNREeCfS7qBvajEQQ"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Activity" xmi:id="_vDk70PPmEeCjkLKmJeBqEw" name="add">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_2TjJgPPmEeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_3Hu_gPPmEeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_3Hu_gPPmEeCjkLKmJeBqEw" parameteredElement="_5N2XcPPmEeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_5N2XcPPmEeCjkLKmJeBqEw" name="T" templateParameter="_3Hu_gPPmEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_733GoPPmEeCjkLKmJeBqEw" name="seq" visibility="public" type="_5N2XcPPmEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="inout" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9_sV0PPmEeCjkLKmJeBqEw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9-4dgPPmEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_EMtRsPPnEeCjkLKmJeBqEw" name="element" visibility="public" type="_5N2XcPPmEeCjkLKmJeBqEw" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_E9pmcPPnEeCjkLKmJeBqEw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_E9eAQPPnEeCjkLKmJeBqEw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_HcdyQPPnEeCjkLKmJeBqEw" name="result" visibility="public" type="_5N2XcPPmEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KT-x8PPnEeCjkLKmJeBqEw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KTx9oPPnEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_74BesPPmEeCjkLKmJeBqEw" name="Parameter0" type="_5N2XcPPmEeCjkLKmJeBqEw" parameter="_733GoPPmEeCjkLKmJeBqEw"/>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_EMyKMPPnEeCjkLKmJeBqEw" name="Parameter1" type="_5N2XcPPmEeCjkLKmJeBqEw" parameter="_EMtRsPPnEeCjkLKmJeBqEw"/>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_HciqwPPnEeCjkLKmJeBqEw" name="Parameter2" type="_5N2XcPPmEeCjkLKmJeBqEw" parameter="_HcdyQPPnEeCjkLKmJeBqEw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Activity" xmi:id="_ZLNr8PPnEeCjkLKmJeBqEw" name="addAll">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_xGIM8PPnEeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_yFoiIPPnEeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_yFoiIPPnEeCjkLKmJeBqEw" parameteredElement="_0JhFcPPnEeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_0JhFcPPnEeCjkLKmJeBqEw" name="T" templateParameter="_yFoiIPPnEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_cbNdEPPnEeCjkLKmJeBqEw" name="seq1" visibility="public" type="_0JhFcPPnEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="inout" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_fHkVoPPnEeCjkLKmJeBqEw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_fHYIYPPnEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_h29UEPPnEeCjkLKmJeBqEw" name="seq2" visibility="public" type="_0JhFcPPnEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_k0OWcPPnEeCjkLKmJeBqEw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_k0AUAPPnEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_oFkLYPPnEeCjkLKmJeBqEw" name="result" visibility="public" type="_0JhFcPPnEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_riEugPPnEeCjkLKmJeBqEw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rh5vYPPnEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_cbSVkPPnEeCjkLKmJeBqEw" name="Parameter0" type="_0JhFcPPnEeCjkLKmJeBqEw" parameter="_cbNdEPPnEeCjkLKmJeBqEw"/>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_h3CMkPPnEeCjkLKmJeBqEw" name="Parameter1" type="_0JhFcPPnEeCjkLKmJeBqEw" parameter="_h29UEPPnEeCjkLKmJeBqEw"/>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_oFpq8PPnEeCjkLKmJeBqEw" name="Parameter2" type="_0JhFcPPnEeCjkLKmJeBqEw" parameter="_oFkLYPPnEeCjkLKmJeBqEw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Activity" xmi:id="_-S0QsPPnEeCjkLKmJeBqEw" name="addAt">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_XSYsoPPoEeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_YRs0kPPoEeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_YRs0kPPoEeCjkLKmJeBqEw" parameteredElement="_aUADgPPoEeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_aUADgPPoEeCjkLKmJeBqEw" name="T" templateParameter="_YRs0kPPoEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_BoDuMPPoEeCjkLKmJeBqEw" name="seq" visibility="public" type="_aUADgPPoEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="inout" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D5XCcPPoEeCjkLKmJeBqEw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D5IY8PPoEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Gdt1kPPoEeCjkLKmJeBqEw" name="index" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JUxiQPPoEeCjkLKmJeBqEw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JUl8EPPoEeCjkLKmJeBqEw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_LMlYcPPoEeCjkLKmJeBqEw" name="element" visibility="public" type="_aUADgPPoEeCjkLKmJeBqEw" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_N-_OoPPoEeCjkLKmJeBqEw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_N-zocPPoEeCjkLKmJeBqEw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_PsbA0PPoEeCjkLKmJeBqEw" name="result" visibility="public" type="_aUADgPPoEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SgC_APPoEeCjkLKmJeBqEw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Sf2xwPPoEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_BoH_oPPoEeCjkLKmJeBqEw" name="Parameter0" type="_aUADgPPoEeCjkLKmJeBqEw" parameter="_BoDuMPPoEeCjkLKmJeBqEw"/>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_GdyuEPPoEeCjkLKmJeBqEw" name="Parameter1" parameter="_Gdt1kPPoEeCjkLKmJeBqEw">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </node>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_LMqQ8PPoEeCjkLKmJeBqEw" name="Parameter2" type="_aUADgPPoEeCjkLKmJeBqEw" parameter="_LMlYcPPoEeCjkLKmJeBqEw"/>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_PsfSQPPoEeCjkLKmJeBqEw" name="Parameter3" type="_aUADgPPoEeCjkLKmJeBqEw" parameter="_PsbA0PPoEeCjkLKmJeBqEw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Activity" xmi:id="_Qye0gPPpEeCjkLKmJeBqEw" name="addAllAt">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_tJo3UPPpEeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_uPg6QPPpEeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_uPg6QPPpEeCjkLKmJeBqEw" parameteredElement="_wozs4PPpEeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_wozs4PPpEeCjkLKmJeBqEw" name="T" templateParameter="_uPg6QPPpEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_Vf-eYPPpEeCjkLKmJeBqEw" name="seq1" visibility="public" type="_wozs4PPpEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="inout" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_X53G4PPpEeCjkLKmJeBqEw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_X5qSkPPpEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_afoPQPPpEeCjkLKmJeBqEw" name="index" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dwh_UPPpEeCjkLKmJeBqEw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dwVyEPPpEeCjkLKmJeBqEw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_e4OnMPPpEeCjkLKmJeBqEw" name="seq2" visibility="public" type="_wozs4PPpEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iO-gkPPpEeCjkLKmJeBqEw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iOxsQPPpEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_k24-APPpEeCjkLKmJeBqEw" name="result" visibility="public" type="_wozs4PPpEeCjkLKmJeBqEw" isOrdered="true" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nN88APPpEeCjkLKmJeBqEw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nNtEYPPpEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_VgCv0PPpEeCjkLKmJeBqEw" name="Parameter0" type="_wozs4PPpEeCjkLKmJeBqEw" parameter="_Vf-eYPPpEeCjkLKmJeBqEw"/>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_aftHwPPpEeCjkLKmJeBqEw" name="Parameter1" parameter="_afoPQPPpEeCjkLKmJeBqEw">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </node>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_e4SRkPPpEeCjkLKmJeBqEw" name="Parameter2" type="_wozs4PPpEeCjkLKmJeBqEw" parameter="_e4OnMPPpEeCjkLKmJeBqEw"/>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_k292gPPpEeCjkLKmJeBqEw" name="Parameter3" type="_wozs4PPpEeCjkLKmJeBqEw" parameter="_k24-APPpEeCjkLKmJeBqEw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Activity" xmi:id="__TPhAPPpEeCjkLKmJeBqEw" name="remove">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_VNOsEPPqEeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_V2BKYPPqEeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_V2BKYPPqEeCjkLKmJeBqEw" parameteredElement="_XcuCcPPqEeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_XcuCcPPqEeCjkLKmJeBqEw" name="T" templateParameter="_V2BKYPPqEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_CfCHkPPqEeCjkLKmJeBqEw" name="seq" visibility="public" type="_XcuCcPPqEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="inout" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Fk1a4PPqEeCjkLKmJeBqEw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Fkn_gPPqEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GnaSMPPqEeCjkLKmJeBqEw" name="element" visibility="public" type="_XcuCcPPqEeCjkLKmJeBqEw" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HniScPPqEeCjkLKmJeBqEw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HnUQAPPqEeCjkLKmJeBqEw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Lct0QPPqEeCjkLKmJeBqEw" name="result" visibility="public" type="_XcuCcPPqEeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_O2PU0PPqEeCjkLKmJeBqEw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_O2B5cPPqEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_CfHAEPPqEeCjkLKmJeBqEw" name="Parameter0" type="_XcuCcPPqEeCjkLKmJeBqEw" parameter="_CfCHkPPqEeCjkLKmJeBqEw"/>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_GnejoPPqEeCjkLKmJeBqEw" name="Parameter1" type="_XcuCcPPqEeCjkLKmJeBqEw" parameter="_GnaSMPPqEeCjkLKmJeBqEw"/>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_LcyFsPPqEeCjkLKmJeBqEw" name="Parameter2" type="_XcuCcPPqEeCjkLKmJeBqEw" parameter="_Lct0QPPqEeCjkLKmJeBqEw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Activity" xmi:id="_iQZncPPqEeCjkLKmJeBqEw" name="removeAll">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_OAxuoPP5EeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_OtK6kPP5EeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_OtK6kPP5EeCjkLKmJeBqEw" parameteredElement="_QWr2EPP5EeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_QWr2EPP5EeCjkLKmJeBqEw" name="T" templateParameter="_OtK6kPP5EeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_o3aXsPPqEeCjkLKmJeBqEw" name="seq1" visibility="public" type="_QWr2EPP5EeCjkLKmJeBqEw" isOrdered="true" direction="inout" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rzqGYPPqEeCjkLKmJeBqEw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rzbc4PPqEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_ttxpsPPqEeCjkLKmJeBqEw" name="seq2" visibility="public" type="_QWr2EPP5EeCjkLKmJeBqEw" isOrdered="true" isUnique="false" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wbgbQPPqEeCjkLKmJeBqEw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wbSY0PPqEeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__7RzkPP4EeCjkLKmJeBqEw" name="result" visibility="public" type="_QWr2EPP5EeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CcsAYPP5EeCjkLKmJeBqEw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CcdW4PP5EeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_o3fQMPPqEeCjkLKmJeBqEw" name="Parameter0" type="_QWr2EPP5EeCjkLKmJeBqEw" parameter="_o3aXsPPqEeCjkLKmJeBqEw"/>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_tt17IPPqEeCjkLKmJeBqEw" name="Parameter1" type="_QWr2EPP5EeCjkLKmJeBqEw" parameter="_ttxpsPPqEeCjkLKmJeBqEw"/>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="__7WsEPP4EeCjkLKmJeBqEw" name="Parameter2" type="_QWr2EPP5EeCjkLKmJeBqEw" parameter="__7RzkPP4EeCjkLKmJeBqEw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Activity" xmi:id="_Z-Z-QPP5EeCjkLKmJeBqEw" name="removeOne">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_vG5a8PP5EeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_vvRCgPP5EeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_vvRCgPP5EeCjkLKmJeBqEw" parameteredElement="_xddpsPP5EeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_xddpsPP5EeCjkLKmJeBqEw" name="T" templateParameter="_vvRCgPP5EeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_eotKMPP5EeCjkLKmJeBqEw" name="seq" visibility="public" type="_xddpsPP5EeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="inout" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g5FRYPP5EeCjkLKmJeBqEw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g42A0PP5EeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kNqAgPP5EeCjkLKmJeBqEw" name="element" visibility="public" type="_xddpsPP5EeCjkLKmJeBqEw" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lvJocPP5EeCjkLKmJeBqEw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lu6X4PP5EeCjkLKmJeBqEw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nuzMAPP5EeCjkLKmJeBqEw" name="result" visibility="public" type="_xddpsPP5EeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_pnqLEPP5EeCjkLKmJeBqEw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_pna6gPP5EeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_eoyCsPP5EeCjkLKmJeBqEw" name="Parameter0" type="_xddpsPP5EeCjkLKmJeBqEw" parameter="_eotKMPP5EeCjkLKmJeBqEw"/>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_kNu5APP5EeCjkLKmJeBqEw" name="Parameter1" type="_xddpsPP5EeCjkLKmJeBqEw" parameter="_kNqAgPP5EeCjkLKmJeBqEw"/>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_nu3dcPP5EeCjkLKmJeBqEw" name="Parameter2" type="_xddpsPP5EeCjkLKmJeBqEw" parameter="_nuzMAPP5EeCjkLKmJeBqEw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Activity" xmi:id="_90f30PP5EeCjkLKmJeBqEw" name="removeAt">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_Rx-S4PP6EeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_Sf0QUPP6EeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_Sf0QUPP6EeCjkLKmJeBqEw" parameteredElement="_UIL8UPP6EeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_UIL8UPP6EeCjkLKmJeBqEw" name="T" templateParameter="_Sf0QUPP6EeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_AcktUPP6EeCjkLKmJeBqEw" name="seq" visibility="public" type="_UIL8UPP6EeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="inout" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DL9rwPP6EeCjkLKmJeBqEw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DLtNEPP6EeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_EVk_MPP6EeCjkLKmJeBqEw" name="index" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ghh5YPP6EeCjkLKmJeBqEw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GhRasPP6EeCjkLKmJeBqEw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IJeHkPP6EeCjkLKmJeBqEw" name="result" visibility="public" type="_UIL8UPP6EeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_NUUb0PP6EeCjkLKmJeBqEw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_NUD9IPP6EeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_Aco-wPP6EeCjkLKmJeBqEw" name="Parameter0" type="_UIL8UPP6EeCjkLKmJeBqEw" parameter="_AcktUPP6EeCjkLKmJeBqEw"/>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_EVpQoPP6EeCjkLKmJeBqEw" name="Parameter1" parameter="_EVk_MPP6EeCjkLKmJeBqEw">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </node>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_IJjAEPP6EeCjkLKmJeBqEw" name="Parameter2" type="_UIL8UPP6EeCjkLKmJeBqEw" parameter="_IJeHkPP6EeCjkLKmJeBqEw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Activity" xmi:id="_fDa60PP6EeCjkLKmJeBqEw" name="replace">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_y-I80PP6EeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_zp52oPP6EeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_zp52oPP6EeCjkLKmJeBqEw" parameteredElement="_1ca9IPP6EeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_1ca9IPP6EeCjkLKmJeBqEw" name="T" templateParameter="_zp52oPP6EeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_hrBPMPP6EeCjkLKmJeBqEw" name="seq" visibility="public" type="_1ca9IPP6EeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="inout" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mIccwPP6EeCjkLKmJeBqEw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mIKI4PP6EeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nn7SgPP6EeCjkLKmJeBqEw" name="element" visibility="public" type="_1ca9IPP6EeCjkLKmJeBqEw" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_omQjAPP6EeCjkLKmJeBqEw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ol_dQPP6EeCjkLKmJeBqEw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_pZ_GAPP6EeCjkLKmJeBqEw" name="newElement" visibility="public" type="_1ca9IPP6EeCjkLKmJeBqEw" isOrdered="true" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_qn0yIPP6EeCjkLKmJeBqEw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qnkTcPP6EeCjkLKmJeBqEw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_rjtLkPP6EeCjkLKmJeBqEw" name="result" visibility="public" type="_1ca9IPP6EeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tsgEEPP6EeCjkLKmJeBqEw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tsO-UPP6EeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_hrDrcPP6EeCjkLKmJeBqEw" name="Parameter0" type="_1ca9IPP6EeCjkLKmJeBqEw" parameter="_hrBPMPP6EeCjkLKmJeBqEw"/>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_noALAPP6EeCjkLKmJeBqEw" name="Parameter1" type="_1ca9IPP6EeCjkLKmJeBqEw" parameter="_nn7SgPP6EeCjkLKmJeBqEw"/>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_paD-gPP6EeCjkLKmJeBqEw" name="Parameter2" type="_1ca9IPP6EeCjkLKmJeBqEw" parameter="_pZ_GAPP6EeCjkLKmJeBqEw"/>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_rjyEEPP6EeCjkLKmJeBqEw" name="Parameter3" type="_1ca9IPP6EeCjkLKmJeBqEw" parameter="_rjtLkPP6EeCjkLKmJeBqEw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Activity" xmi:id="_c2ooQPP8EeCjkLKmJeBqEw" name="replaceOne">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_5ysu8PP8EeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_6d7dQPP8EeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_6d7dQPP8EeCjkLKmJeBqEw" parameteredElement="_72BRkPP8EeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_72BRkPP8EeCjkLKmJeBqEw" name="T" templateParameter="_6d7dQPP8EeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_jG0M4PP8EeCjkLKmJeBqEw" name="seq" visibility="public" type="_72BRkPP8EeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="inout" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_l5ESEPP8EeCjkLKmJeBqEw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_l4ylQPP8EeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_m2wpYPP8EeCjkLKmJeBqEw" name="element" visibility="public" type="_72BRkPP8EeCjkLKmJeBqEw" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oopdwPP8EeCjkLKmJeBqEw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ooVUsPP8EeCjkLKmJeBqEw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_qKV6APP8EeCjkLKmJeBqEw" name="newElement" visibility="public" type="_72BRkPP8EeCjkLKmJeBqEw" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rfiyYPP8EeCjkLKmJeBqEw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rfRFkPP8EeCjkLKmJeBqEw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_stOtgPP8EeCjkLKmJeBqEw" name="result" visibility="public" type="_72BRkPP8EeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_vIcywPP8EeCjkLKmJeBqEw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_vILF8PP8EeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_jG4eUPP8EeCjkLKmJeBqEw" name="Parameter0" type="_72BRkPP8EeCjkLKmJeBqEw" parameter="_jG0M4PP8EeCjkLKmJeBqEw"/>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_m21h4PP8EeCjkLKmJeBqEw" name="Parameter1" type="_72BRkPP8EeCjkLKmJeBqEw" parameter="_m2wpYPP8EeCjkLKmJeBqEw"/>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_qKaLcPP8EeCjkLKmJeBqEw" name="Parameter2" type="_72BRkPP8EeCjkLKmJeBqEw" parameter="_qKV6APP8EeCjkLKmJeBqEw"/>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_stTmAPP8EeCjkLKmJeBqEw" name="Parameter3" type="_72BRkPP8EeCjkLKmJeBqEw" parameter="_stOtgPP8EeCjkLKmJeBqEw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Activity" xmi:id="_Gm9EkPP9EeCjkLKmJeBqEw" name="replaceAt">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_iuunkPP9EeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_jWytIPP9EeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_jWytIPP9EeCjkLKmJeBqEw" parameteredElement="_lE1jUPP9EeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_lE1jUPP9EeCjkLKmJeBqEw" name="T" templateParameter="_jWytIPP9EeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_LM-NcPP9EeCjkLKmJeBqEw" name="seq" visibility="public" type="_lE1jUPP9EeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="inout" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_NqPhIPP9EeCjkLKmJeBqEw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Np9NQPP9EeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_QMk7APP9EeCjkLKmJeBqEw" name="index" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SfhOAPP9EeCjkLKmJeBqEw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SfPhMPP9EeCjkLKmJeBqEw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_UGekwPP9EeCjkLKmJeBqEw" name="element" visibility="public" type="_lE1jUPP9EeCjkLKmJeBqEw" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Vsv_APP9EeCjkLKmJeBqEw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VsdrIPP9EeCjkLKmJeBqEw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_XqIRsPP9EeCjkLKmJeBqEw" name="result" visibility="public" type="_lE1jUPP9EeCjkLKmJeBqEw" isOrdered="true" isUnique="false" direction="return" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ZVQWwPP9EeCjkLKmJeBqEw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZU9b0PP9EeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_LNBQwPP9EeCjkLKmJeBqEw" name="Parameter0" type="_lE1jUPP9EeCjkLKmJeBqEw" parameter="_LM-NcPP9EeCjkLKmJeBqEw"/>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_QMqakPP9EeCjkLKmJeBqEw" name="Parameter1" parameter="_QMk7APP9EeCjkLKmJeBqEw">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </node>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_UGjdQPP9EeCjkLKmJeBqEw" name="Parameter2" type="_lE1jUPP9EeCjkLKmJeBqEw" parameter="_UGekwPP9EeCjkLKmJeBqEw"/>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_XqMjIPP9EeCjkLKmJeBqEw" name="Parameter3" type="_lE1jUPP9EeCjkLKmJeBqEw" parameter="_XqIRsPP9EeCjkLKmJeBqEw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Activity" xmi:id="_ums7IPP9EeCjkLKmJeBqEw" name="clear">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_2eDR4PP9EeCjkLKmJeBqEw" name="RedefinableTemplateSignature0" parameter="_3WumUPP9EeCjkLKmJeBqEw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_3WumUPP9EeCjkLKmJeBqEw" parameteredElement="_4t08IPP9EeCjkLKmJeBqEw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_4t08IPP9EeCjkLKmJeBqEw" name="T" templateParameter="_3WumUPP9EeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_w9SYAPP9EeCjkLKmJeBqEw" name="seq" visibility="public" type="_4t08IPP9EeCjkLKmJeBqEw" isOrdered="true" direction="inout" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ycs8UPP9EeCjkLKmJeBqEw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ycZaUPP9EeCjkLKmJeBqEw"/>
+ </ownedParameter>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_w9X3kPP9EeCjkLKmJeBqEw" name="Parameter0" type="_4t08IPP9EeCjkLKmJeBqEw" parameter="_w9SYAPP9EeCjkLKmJeBqEw"/>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <profileApplication xmi:id="_-SwMIH0_EeCKy5kSqd4eVw">
+ <eAnnotations xmi:id="_-Ui74H0_EeCKy5kSqd4eVw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/schemas/Standard/1#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ </uml:Model>
+ <Standard:ModelLibrary xmi:id="_-7lGsH0_EeCKy5kSqd4eVw" base_Package="_0bBI4Hy5EeCKy5kSqd4eVw"/>
+ <Standard:Destroy xmi:id="_THobUPDmEeCxrPjksdBlsg" base_BehavioralFeature="_OqqgwPDmEeCxrPjksdBlsg"/>
+ <Standard:Create xmi:id="_29ZkwPDmEeCxrPjksdBlsg" base_BehavioralFeature="_g_lCkPDmEeCxrPjksdBlsg"/>
+ <Standard:Create xmi:id="_USKp4PDoEeCxrPjksdBlsg" base_BehavioralFeature="_M9rIkPDoEeCxrPjksdBlsg"/>
+ <Standard:Destroy xmi:id="_unFvMPDoEeCxrPjksdBlsg" base_BehavioralFeature="_sI840PDoEeCxrPjksdBlsg"/>
+ <Standard:Destroy xmi:id="_bbjnEPDrEeCxrPjksdBlsg" base_BehavioralFeature="_VTbnsPDqEeCxrPjksdBlsg"/>
+ <Standard:Create xmi:id="_lGeNMPDrEeCxrPjksdBlsg" base_BehavioralFeature="_jRFOUPDqEeCxrPjksdBlsg"/>
+ <Standard:Destroy xmi:id="_ZggdYPDwEeCxrPjksdBlsg" base_BehavioralFeature="_M1zzwPDtEeCxrPjksdBlsg"/>
+ <Standard:Create xmi:id="_IWWCAPDxEeCxrPjksdBlsg" base_BehavioralFeature="_kapXEPDtEeCxrPjksdBlsg"/>
+ <Standard:Destroy xmi:id="_hXSksPD2EeCxrPjksdBlsg" base_BehavioralFeature="_8GKicPDzEeCxrPjksdBlsg"/>
+ <Standard:Create xmi:id="_KOK3kPD3EeCxrPjksdBlsg" base_BehavioralFeature="_QgIsQPD0EeCxrPjksdBlsg"/>
+ <Standard:Create xmi:id="__bw9kPD5EeCxrPjksdBlsg" base_BehavioralFeature="_k9dSwPD5EeCxrPjksdBlsg"/>
+ <Standard:Destroy xmi:id="_Y9UsQPD6EeCxrPjksdBlsg" base_BehavioralFeature="_p2PmoPD5EeCxrPjksdBlsg"/>
+ <Standard:Destroy xmi:id="_NkjL4PMYEeCxrPjksdBlsg" base_BehavioralFeature="_J0hhwPMWEeCxrPjksdBlsg"/>
+ <Standard:Create xmi:id="_IJQLYPMZEeCxrPjksdBlsg" base_BehavioralFeature="_knv3MPMXEeCxrPjksdBlsg"/>
+</xmi:XMI>
diff --git a/extraplugins/alf09/resources/fUMLlibrary.di b/extraplugins/alf09/resources/fUMLlibrary.di
new file mode 100644
index 00000000000..919a4d1f37e
--- /dev/null
+++ b/extraplugins/alf09/resources/fUMLlibrary.di
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="ASCII"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi">
+ <pageList>
+ <availablePage>
+ <emfPageIdentifier href="fUMLlibrary.notation#_QP6hEXyXEeCAIan9YGu1mA"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="fUMLlibrary.notation#_71IpgHyXEeCAIan9YGu1mA"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="fUMLlibrary.notation#_fw2C4HyYEeCAIan9YGu1mA"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="fUMLlibrary.notation#_mfucEHygEeCAIan9YGu1mA"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="fUMLlibrary.notation#_fkR6oHylEeCAIan9YGu1mA"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="fUMLlibrary.notation#_i1mE8HymEeCAIan9YGu1mA"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="fUMLlibrary.notation#_Aj3ZwHypEeCAIan9YGu1mA"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="fUMLlibrary.notation#__0_FEHypEeCAIan9YGu1mA"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="fUMLlibrary.notation#_ZvHPUHyrEeCAIan9YGu1mA"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="fUMLlibrary.notation#_rdhe4Hy4EeCKy5kSqd4eVw"/>
+ </availablePage>
+ </pageList>
+ <sashModel currentSelection="//@sashModel/@windows.0/@children.0">
+ <windows>
+ <children xsi:type="di:TabFolder">
+ <children>
+ <emfPageIdentifier href="fUMLlibrary.notation#_QP6hEXyXEeCAIan9YGu1mA"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="fUMLlibrary.notation#_rdhe4Hy4EeCKy5kSqd4eVw"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="fUMLlibrary.notation#_ZvHPUHyrEeCAIan9YGu1mA"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/extraplugins/alf09/resources/fUMLlibrary.notation b/extraplugins/alf09/resources/fUMLlibrary.notation
new file mode 100644
index 00000000000..f6378a865ed
--- /dev/null
+++ b/extraplugins/alf09/resources/fUMLlibrary.notation
@@ -0,0 +1,3430 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/3.0.0/UML">
+ <notation:Diagram xmi:id="_QP6hEXyXEeCAIan9YGu1mA" type="PapyrusUMLClassDiagram" name="Foundational Model Library packages" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_VP1-wHyXEeCAIan9YGu1mA" type="2005" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VP1-wnyXEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VP1-w3yXEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VP1-xHyXEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VP1-xXyXEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VP1-xnyXEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VP1-x3yXEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VP1-yHyXEeCAIan9YGu1mA" type="5020"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VP1-yXyXEeCAIan9YGu1mA" type="7009">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_VP_vwHyXEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VP_vwXyXEeCAIan9YGu1mA"/>
+ </children>
+ <element xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VP1-wXyXEeCAIan9YGu1mA" x="100" y="175"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dOXUgHyXEeCAIan9YGu1mA" type="2007" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dOXUgnyXEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dOXUg3yXEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dOXUhHyXEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dOXUhXyXEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dOXUhnyXEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dOXUh3yXEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dOXUiHyXEeCAIan9YGu1mA" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dOXUiXyXEeCAIan9YGu1mA" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dOXUinyXEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dOXUi3yXEeCAIan9YGu1mA"/>
+ </children>
+ <element xmi:type="uml:Package" href="fUMLlibrary.uml#_dNd8oHyXEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dOXUgXyXEeCAIan9YGu1mA" x="100" y="345" width="201" height="96"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_j_1oUHyXEeCAIan9YGu1mA" type="2007" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_j_1oUnyXEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_j_1oU3yXEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_j_1oVHyXEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_j_1oVXyXEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_j_1oVnyXEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_j_1oV3yXEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_j_1oWHyXEeCAIan9YGu1mA" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_j_1oWXyXEeCAIan9YGu1mA" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_j_1oWnyXEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_j_1oW3yXEeCAIan9YGu1mA"/>
+ </children>
+ <element xmi:type="uml:Package" href="fUMLlibrary.uml#_j_Y8YHyXEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_j_1oUXyXEeCAIan9YGu1mA" x="390" y="175" width="181" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_mB7b4HyXEeCAIan9YGu1mA" type="2007" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mB7b4nyXEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mB7b43yXEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mB7b5HyXEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mB7b5XyXEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mB7b5nyXEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mB7b53yXEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mB7b6HyXEeCAIan9YGu1mA" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mB7b6XyXEeCAIan9YGu1mA" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mB7b6nyXEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mB7b63yXEeCAIan9YGu1mA"/>
+ </children>
+ <element xmi:type="uml:Package" href="fUMLlibrary.uml#_mBev8HyXEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mB7b4XyXEeCAIan9YGu1mA" x="395" y="350" width="181" height="91"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_QP6hEnyXEeCAIan9YGu1mA"/>
+ <element xmi:type="uml:Model" href="fUMLlibrary.uml#_QP6hEHyXEeCAIan9YGu1mA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_ibs8EHyXEeCAIan9YGu1mA" type="4010" source="_dOXUgHyXEeCAIan9YGu1mA" target="_VP1-wHyXEeCAIan9YGu1mA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ibs8E3yXEeCAIan9YGu1mA" type="6022">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ibs8FHyXEeCAIan9YGu1mA" x="-1" y="26"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ibs8EXyXEeCAIan9YGu1mA" fontHeight="8"/>
+ <element xmi:type="uml:PackageImport" href="fUMLlibrary.uml#_ibjyIHyXEeCAIan9YGu1mA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ibs8EnyXEeCAIan9YGu1mA" points="[-5, -4, 0, 83]$[-9, -74, -4, 13]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ib_3AHyXEeCAIan9YGu1mA" id="(0.472636815920398,0.041666666666666664)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ib_3AXyXEeCAIan9YGu1mA" id="(0.45,0.87)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_pcFOkXyXEeCAIan9YGu1mA" type="4010" source="_mB7b4HyXEeCAIan9YGu1mA" target="_j_1oUHyXEeCAIan9YGu1mA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_pcO_kHyXEeCAIan9YGu1mA" type="6022">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pcO_kXyXEeCAIan9YGu1mA" x="2" y="23"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_pcFOknyXEeCAIan9YGu1mA" fontHeight="8"/>
+ <element xmi:type="uml:PackageImport" href="fUMLlibrary.uml#_pcFOkHyXEeCAIan9YGu1mA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pcFOk3yXEeCAIan9YGu1mA" points="[-8, -3, 0, 88]$[-11, -77, -3, 14]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pcYJgHyXEeCAIan9YGu1mA" id="(0.47513812154696133,0.03296703296703297)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pcYJgXyXEeCAIan9YGu1mA" id="(0.4585635359116022,0.8613861386138614)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_71IpgHyXEeCAIan9YGu1mA" type="PapyrusUMLClassDiagram" name="Foundational Model Library PrimitiveBehaviors package" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_BPvRAHyYEeCAIan9YGu1mA" type="2007" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BP4a8HyYEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BP4a8XyYEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BP4a8nyYEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BP4a83yYEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BP4a9HyYEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BP4a9XyYEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BP4a9nyYEeCAIan9YGu1mA" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BP4a93yYEeCAIan9YGu1mA" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BP4a-HyYEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BP4a-XyYEeCAIan9YGu1mA"/>
+ </children>
+ <element xmi:type="uml:Package" href="fUMLlibrary.uml#_BPlgAHyYEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BPvRAXyYEeCAIan9YGu1mA" x="60" y="150"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CosoAHyYEeCAIan9YGu1mA" type="2007" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CosoAnyYEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CosoA3yYEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CosoBHyYEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CosoBXyYEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CosoBnyYEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CosoB3yYEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CosoCHyYEeCAIan9YGu1mA" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CosoCXyYEeCAIan9YGu1mA" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CosoCnyYEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CosoC3yYEeCAIan9YGu1mA"/>
+ </children>
+ <element xmi:type="uml:Package" href="fUMLlibrary.uml#_Coi3AHyYEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CosoAXyYEeCAIan9YGu1mA" x="300" y="150"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FEkNgHyYEeCAIan9YGu1mA" type="2007" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FEtXcHyYEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FEtXcXyYEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FEtXcnyYEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FEtXc3yYEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FEtXdHyYEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FEtXdXyYEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FEtXdnyYEeCAIan9YGu1mA" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FEtXd3yYEeCAIan9YGu1mA" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_FEtXeHyYEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FEtXeXyYEeCAIan9YGu1mA"/>
+ </children>
+ <element xmi:type="uml:Package" href="fUMLlibrary.uml#_FEacgHyYEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FEkNgXyYEeCAIan9YGu1mA" x="535" y="150"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GdE4kHyYEeCAIan9YGu1mA" type="2007" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GdE4knyYEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GdE4k3yYEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GdE4lHyYEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GdE4lXyYEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GdE4lnyYEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GdE4l3yYEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GdE4mHyYEeCAIan9YGu1mA" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GdE4mXyYEeCAIan9YGu1mA" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GdE4mnyYEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GdE4m3yYEeCAIan9YGu1mA"/>
+ </children>
+ <element xmi:type="uml:Package" href="fUMLlibrary.uml#_Gcx9oHyYEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GdE4kXyYEeCAIan9YGu1mA" x="195" y="295"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_IggI4HyYEeCAIan9YGu1mA" type="2007" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IggI4nyYEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IggI43yYEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IggI5HyYEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IggI5XyYEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IggI5nyYEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IggI53yYEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_IggI6HyYEeCAIan9YGu1mA" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_IggI6XyYEeCAIan9YGu1mA" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IggI6nyYEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IggI63yYEeCAIan9YGu1mA"/>
+ </children>
+ <element xmi:type="uml:Package" href="fUMLlibrary.uml#_IgNN8HyYEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IggI4XyYEeCAIan9YGu1mA" x="425" y="295"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_71IpgXyXEeCAIan9YGu1mA"/>
+ <element xmi:type="uml:Package" href="fUMLlibrary.uml#_dNd8oHyXEeCAIan9YGu1mA"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_fw2C4HyYEeCAIan9YGu1mA" type="CompositeStructure" name="Foundational Model Library Boolean Functions" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_iKVCwHyYEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iKVCwnyYEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iKVCw3yYEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iKVCxHyYEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iKVCxXyYEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iKVCxnyYEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iKVCx3yYEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iKVCyHyYEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iKVCyXyYEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iKVCynyYEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iKVCy3yYEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ncb1kHyYEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ncb1knyYEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ncb1k3yYEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ncb1lHyYEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ncb1lXyYEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ncb1lnyYEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ncb1l3yYEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ncb1mHyYEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ncb1mXyYEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ncb1mnyYEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ncb1m3yYEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_ncI6oHyYEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ncb1kXyYEeCAIan9YGu1mA" x="-10" y="40" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0FRlYHyYEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0FRlYnyYEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0FRlY3yYEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0FRlZHyYEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0FRlZXyYEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0FRlZnyYEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0FRlZ3yYEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0FRlaHyYEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0FRlaXyYEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0FRlanyYEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0FRla3yYEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_0E05cHyYEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0FRlYXyYEeCAIan9YGu1mA" x="-10" y="70" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_4xrqIHyYEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4x1bIHyYEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4x1bIXyYEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4x1bInyYEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4x1bI3yYEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4x1bJHyYEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4x1bJXyYEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4x1bJnyYEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4x1bJ3yYEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4x1bKHyYEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4x1bKXyYEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_4xigMHyYEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4xrqIXyYEeCAIan9YGu1mA" x="151" y="55" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_iJlb4HyYEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iKVCwXyYEeCAIan9YGu1mA" x="105" y="25" width="161" height="96"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Ajic4HyZEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ajic4nyZEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ajic43yZEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ajic5HyZEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ajic5XyZEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ajic5nyZEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ajic53yZEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Ajic6HyZEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Ajic6XyZEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Ajic6nyZEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ajic63yZEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_EFlnUHyZEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EFlnUnyZEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EFlnU3yZEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EFlnVHyZEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EFlnVXyZEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EFlnVnyZEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EFlnV3yZEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_EFlnWHyZEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EFlnWXyZEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_EFlnWnyZEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EFlnW3yZEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#__Mg_kXyYEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EFlnUXyZEeCAIan9YGu1mA" x="-10" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_E96WcHyZEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_E96WcnyZEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_E96Wc3yZEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_E96WdHyZEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_E96WdXyZEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_E96WdnyZEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_E96Wd3yZEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_E96WeHyZEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_E96WeXyZEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_E96WenyZEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_E96We3yZEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#__Mg_lHyYEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_E96WcXyZEeCAIan9YGu1mA" x="-10" y="70"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GGCcIHyZEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GGCcInyZEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GGCcI3yZEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GGCcJHyZEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GGMNIHyZEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GGMNIXyZEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GGMNInyZEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GGMNI3yZEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GGMNJHyZEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GGMNJXyZEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GGMNJnyZEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#__Mg_l3yYEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GGCcIXyZEeCAIan9YGu1mA" x="156" y="55"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#__Mg_kHyYEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ajic4XyZEeCAIan9YGu1mA" x="105" y="135" width="161" height="96"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_MPbcQHyZEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MPbcQnyZEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MPbcQ3yZEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MPbcRHyZEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MPbcRXyZEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MPbcRnyZEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MPbcR3yZEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MPbcSHyZEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MPbcSXyZEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_MPbcSnyZEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MPbcS3yZEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O5AtoHyZEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_O5AtonyZEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_O5Ato3yZEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_O5AtpHyZEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_O5AtpXyZEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_O5AtpnyZEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_O5Atp3yZEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_O5AtqHyZEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O5AtqXyZEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_O5AtqnyZEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O5Atq3yZEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_LsHT0XyZEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O5AtoXyZEeCAIan9YGu1mA" x="-10" y="35"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O5AtrHyZEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_O5AtrnyZEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_O5Atr3yZEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_O5AtsHyZEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_O5AtsXyZEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_O5AtsnyZEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_O5Ats3yZEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_O5AttHyZEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O5AttXyZEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_O5AttnyZEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O5Att3yZEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_LsHT1HyZEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O5AtrXyZEeCAIan9YGu1mA" x="-10" y="65"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O5AtuHyZEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_O5AtunyZEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_O5Atu3yZEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_O5AtvHyZEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_O5AtvXyZEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_O5AtvnyZEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_O5Atv3yZEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_O5AtwHyZEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O5AtwXyZEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_O5AtwnyZEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O5Atw3yZEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_LsHT13yZEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O5AtuXyZEeCAIan9YGu1mA" x="151" y="50"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_LsHT0HyZEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MPbcQXyZEeCAIan9YGu1mA" x="105" y="245" width="161" height="96"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_VcVQsHyZEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VcVQsnyZEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VcVQs3yZEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VcVQtHyZEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VcVQtXyZEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VcVQtnyZEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VcVQt3yZEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VcVQuHyZEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VcVQuXyZEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_VcVQunyZEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VcVQu3yZEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Z48l8HyZEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z48l8nyZEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z48l83yZEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z48l9HyZEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z48l9XyZEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z48l9nyZEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z48l93yZEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z48l-HyZEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Z48l-XyZEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z48l-nyZEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Z48l-3yZEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_VBDp8XyZEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z48l8XyZEeCAIan9YGu1mA" x="-10" y="45"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Z5Fv4HyZEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z5Fv4nyZEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z5Fv43yZEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z5Fv5HyZEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z5Fv5XyZEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z5Fv5nyZEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z5Fv53yZEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z5Fv6HyZEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Z5Fv6XyZEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z5Fv6nyZEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Z5Fv63yZEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_VBDp93yZEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z5Fv4XyZEeCAIan9YGu1mA" x="151" y="45"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_VBDp8HyZEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VcVQsXyZEeCAIan9YGu1mA" x="105" y="355" width="161" height="76"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_sqI0EHyZEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sqI0EnyZEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sqI0E3yZEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sqI0FHyZEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sqI0FXyZEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sqI0FnyZEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sqI0F3yZEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_sqI0GHyZEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sqI0GXyZEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_sqI0GnyZEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sqI0G3yZEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wZ5DUHyZEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wZ5DUnyZEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wZ5DU3yZEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wZ5DVHyZEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wZ5DVXyZEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wZ5DVnyZEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wZ5DV3yZEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wZ5DWHyZEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wZ5DWXyZEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wZ5DWnyZEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wZ5DW3yZEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_sAQwoXyZEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wZ5DUXyZEeCAIan9YGu1mA" x="-10" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_waC0UHyZEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_waC0UnyZEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_waC0U3yZEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_waC0VHyZEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_waC0VXyZEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_waC0VnyZEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_waC0V3yZEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_waC0WHyZEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_waC0WXyZEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_waC0WnyZEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_waC0W3yZEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_sAQwpHyZEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_waC0UXyZEeCAIan9YGu1mA" x="-10" y="70"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_waC0XHyZEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_waC0XnyZEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_waC0X3yZEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_waC0YHyZEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_waC0YXyZEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_waC0YnyZEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_waC0Y3yZEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_waC0ZHyZEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_waC0ZXyZEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_waC0ZnyZEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_waC0Z3yZEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_sAQwp3yZEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_waC0XXyZEeCAIan9YGu1mA" x="151" y="55"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_sAQwoHyZEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sqI0EXyZEeCAIan9YGu1mA" x="105" y="445" width="161" height="96"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_4WiXgHyeEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4WiXgnyeEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4WiXg3yeEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4WiXhHyeEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4WiXhXyeEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4WiXhnyeEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4WiXh3yeEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4WiXiHyeEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4WiXiXyeEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4WiXinyeEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4WiXi3yeEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BretoHyfEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BretonyfEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Breto3yfEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BretpHyfEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BretpXyfEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BretpnyfEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Bretp3yfEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BretqHyfEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BretqXyfEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BretqnyfEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Bretq3yfEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_3q4LYXyeEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BretoXyfEeCAIan9YGu1mA" x="-10" y="50"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Brn3kHyfEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Brn3knyfEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Brn3k3yfEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Brn3lHyfEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Brn3lXyfEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Brn3lnyfEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Brn3l3yfEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Brn3mHyfEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Brn3mXyfEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Brn3mnyfEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Brn3m3yfEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_3q4LZHyeEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Brn3kXyfEeCAIan9YGu1mA" x="151" y="50"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_3q4LYHyeEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4WiXgXyeEeCAIan9YGu1mA" x="105" y="555" width="161" height="86"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_MZPQ0HyfEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MZPQ0nyfEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MZPQ03yfEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MZPQ1HyfEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MZPQ1XyfEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MZPQ1nyfEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MZPQ13yfEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MZPQ2HyfEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MZPQ2XyfEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_MZPQ2nyfEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MZPQ23yfEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SEYOsHyfEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SEYOsnyfEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SEYOs3yfEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SEYOtHyfEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SEYOtXyfEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SEYOtnyfEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SEYOt3yfEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SEYOuHyfEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SEYOuXyfEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SEYOunyfEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SEYOu3yfEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_L9g-IXyfEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SEYOsXyfEeCAIan9YGu1mA" x="-10" y="45"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SEYOvHyfEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SEh_sHyfEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SEh_sXyfEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SEh_snyfEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SEh_s3yfEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SEh_tHyfEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SEh_tXyfEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SEh_tnyfEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SEh_t3yfEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SEh_uHyfEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SEh_uXyfEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_L9g-JHyfEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SEYOvXyfEeCAIan9YGu1mA" x="151" y="45"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_L9g-IHyfEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MZPQ0XyfEeCAIan9YGu1mA" x="105" y="655" width="161" height="81"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_fw2C4XyYEeCAIan9YGu1mA"/>
+ <element xmi:type="uml:Package" href="fUMLlibrary.uml#_BPlgAHyYEeCAIan9YGu1mA"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_mfucEHygEeCAIan9YGu1mA" type="CompositeStructure" name="Foundational Model Library Integer Functions" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_oercEHygEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oercEnygEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oercE3ygEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oercFHygEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oercFXygEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oercFnygEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oercF3ygEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oercGHygEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_oercGXygEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_oercGnygEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oercG3ygEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qPocUHygEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qPocUnygEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qPocU3ygEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qPocVHygEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qPocVXygEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qPocVnygEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qPocV3ygEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qPocWHygEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qPocWXygEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qPocWnygEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qPocW3ygEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_qPVhYHygEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qPocUXygEeCAIan9YGu1mA" x="-10" y="45" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uvX-EHygEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uvX-EnygEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uvX-E3ygEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uvX-FHygEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uvX-FXygEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uvX-FnygEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uvX-F3ygEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uvX-GHygEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uvX-GXygEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uvX-GnygEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uvX-G3ygEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_uvO0IHygEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uvX-EXygEeCAIan9YGu1mA" x="116" y="45" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_oeYhIHygEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oercEXygEeCAIan9YGu1mA" x="65" y="15" width="126" height="71"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_96VsYHygEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_96fdYHygEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_96fdYXygEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_96fdYnygEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_96fdY3ygEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_96fdZHygEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_96fdZXygEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_96fdZnygEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_96fdZ3ygEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_96fdaHygEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_96fdaXygEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__nH-UHygEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__nH-UnygEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__nH-U3ygEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__nH-VHygEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__nH-VXygEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__nH-VnygEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__nH-V3ygEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="__nH-WHygEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__nH-WXygEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="__nH-WnygEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__nH-W3ygEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#__m-NUHygEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__nH-UXygEeCAIan9YGu1mA" x="-10" y="45" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CosR4HyhEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CosR4nyhEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CosR43yhEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CosR5HyhEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CosR5XyhEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CosR5nyhEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CosR53yhEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CosR6HyhEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CosR6XyhEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CosR6nyhEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CosR63yhEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_Coig4HyhEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CosR4XyhEeCAIan9YGu1mA" x="-10" y="75" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Faww4HyhEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Faww4nyhEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Faww43yhEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Faww5HyhEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Faww5XyhEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Faww5nyhEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Faww53yhEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Faww6HyhEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Faww6XyhEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Faww6nyhEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Faww63yhEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_FadO4HyhEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Faww4XyhEeCAIan9YGu1mA" x="116" y="64" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_96MicHygEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_96VsYXygEeCAIan9YGu1mA" x="65" y="100" width="126" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_L1SkUHyhEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L1SkUnyhEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L1SkU3yhEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L1SkVHyhEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L1SkVXyhEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L1SkVnyhEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L1SkV3yhEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_L1SkWHyhEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_L1SkWXyhEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_L1SkWnyhEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_L1SkW3yhEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QuNbEHyhEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QuNbEnyhEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QuNbE3yhEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QuNbFHyhEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QuNbFXyhEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QuNbFnyhEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QuNbF3yhEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QuNbGHyhEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QuNbGXyhEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QuNbGnyhEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QuNbG3yhEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_KKl9EXyhEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QuNbEXyhEeCAIan9YGu1mA" x="-10" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QuNbHHyhEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QuNbHnyhEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QuNbH3yhEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QuNbIHyhEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QuNbIXyhEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QuNbInyhEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QuNbI3yhEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QuNbJHyhEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QuNbJXyhEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QuNbJnyhEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QuNbJ3yhEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_KKl9FHyhEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QuNbHXyhEeCAIan9YGu1mA" x="-10" y="75"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QuNbKHyhEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QuNbKnyhEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QuNbK3yhEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QuNbLHyhEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QuNbLXyhEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QuNbLnyhEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QuNbL3yhEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QuNbMHyhEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QuNbMXyhEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QuNbMnyhEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QuNbM3yhEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_KKl9F3yhEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QuNbKXyhEeCAIan9YGu1mA" x="116" y="55"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_KKl9EHyhEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_L1SkUXyhEeCAIan9YGu1mA" x="65" y="215" width="126" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3rV-EHyhEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3rV-EnyhEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3rV-E3yhEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3rV-FHyhEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3rV-FXyhEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3rV-FnyhEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3rV-F3yhEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3rV-GHyhEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3rV-GXyhEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3rV-GnyhEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3rV-G3yhEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6KycAHyhEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KycAnyhEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KycA3yhEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KycBHyhEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KycBXyhEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KycBnyhEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KycB3yhEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6KycCHyhEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6KycCXyhEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6KycCnyhEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6KycC3yhEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_2ff2AXyhEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6KycAXyhEeCAIan9YGu1mA" x="-10" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6KycDHyhEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6K8NAHyhEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6K8NAXyhEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6K8NAnyhEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6K8NA3yhEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6K8NBHyhEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6K8NBXyhEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6K8NBnyhEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6K8NB3yhEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6K8NCHyhEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6K8NCXyhEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_2ff2BHyhEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6KycDXyhEeCAIan9YGu1mA" x="-10" y="75"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6K8NCnyhEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6K8NDHyhEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6K8NDXyhEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6K8NDnyhEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6K8ND3yhEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6K8NEHyhEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6K8NEXyhEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6K8NEnyhEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6K8NE3yhEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6K8NFHyhEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6K8NFXyhEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_2ff2B3yhEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6K8NC3yhEeCAIan9YGu1mA" x="116" y="55"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_2ff2AHyhEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3rV-EXyhEeCAIan9YGu1mA" x="65" y="330" width="126" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__eiNkHyhEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__eiNknyhEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__eiNk3yhEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__eiNlHyhEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__eiNlXyhEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__eiNlnyhEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__eiNl3yhEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="__eiNmHyhEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__eiNmXyhEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__eiNmnyhEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__eiNm3yhEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_B7v24HyiEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_B7v24nyiEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_B7v243yiEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_B75A0HyiEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_B75A0XyiEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_B75A0nyiEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_B75A03yiEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_B75A1HyiEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_B75A1XyiEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_B75A1nyiEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_B75A13yiEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_9xT2wXyhEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_B7v24XyiEeCAIan9YGu1mA" x="-10" y="50"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_B75A2HyiEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_B75A2nyiEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_B75A23yiEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_B75A3HyiEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_B75A3XyiEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_B75A3nyiEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_B75A33yiEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_B75A4HyiEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_B75A4XyiEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_B75A4nyiEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_B75A43yiEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_9xT2xHyhEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_B75A2XyiEeCAIan9YGu1mA" x="116" y="50"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_9xT2wHyhEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__eiNkXyhEeCAIan9YGu1mA" x="65" y="445" width="126" height="81"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_bxCZ4HyiEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bxCZ4nyiEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bxCZ43yiEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bxCZ5HyiEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bxCZ5XyiEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bxCZ5nyiEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bxCZ53yiEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bxCZ6HyiEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_bxCZ6XyiEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_bxCZ6nyiEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bxCZ63yiEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_aOAEYHyjEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aOAEYnyjEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aOAEY3yjEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aOAEZHyjEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aOAEZXyjEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aOAEZnyjEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aOAEZ3yjEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_aOAEaHyjEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_aOAEaXyjEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_aOAEanyjEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_aOAEa3yjEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_aDhIIXyiEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aOAEYXyjEeCAIan9YGu1mA" x="-10" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_aOAEbHyjEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aOAEbnyjEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aOAEb3yjEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aOAEcHyjEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aOAEcXyjEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aOAEcnyjEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aOAEc3yjEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_aOAEdHyjEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_aOAEdXyjEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_aOAEdnyjEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_aOAEd3yjEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_aDhIJHyiEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aOAEbXyjEeCAIan9YGu1mA" x="-10" y="70"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_aOAEeHyjEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aOAEenyjEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aOAEe3yjEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aOAEfHyjEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aOAEfXyjEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aOAEfnyjEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aOAEf3yjEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_aOAEgHyjEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_aOAEgXyjEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_aOAEgnyjEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_aOAEg3yjEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_aDhIJ3yiEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aOAEeXyjEeCAIan9YGu1mA" x="111" y="60"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_aDhIIHyiEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bxCZ4XyiEeCAIan9YGu1mA" x="65" y="540" width="121" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lxG7MHyjEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lxG7MnyjEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lxG7M3yjEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lxG7NHyjEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lxG7NXyjEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lxG7NnyjEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lxG7N3yjEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lxG7OHyjEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lxG7OXyjEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lxG7OnyjEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lxG7O3yjEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qcxZEHyjEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qcxZEnyjEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qcxZE3yjEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qcxZFHyjEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qcxZFXyjEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qcxZFnyjEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qcxZF3yjEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qcxZGHyjEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qcxZGXyjEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qcxZGnyjEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qcxZG3yjEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_kIpIkXyjEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qcxZEXyjEeCAIan9YGu1mA" x="-10" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qcxZHHyjEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qcxZHnyjEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qcxZH3yjEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qcxZIHyjEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qcxZIXyjEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qcxZInyjEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qcxZI3yjEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qcxZJHyjEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qcxZJXyjEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qcxZJnyjEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qcxZJ3yjEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_kIpIlHyjEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qcxZHXyjEeCAIan9YGu1mA" x="-10" y="70"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qcxZKHyjEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qcxZKnyjEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qcxZK3yjEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qcxZLHyjEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qcxZLXyjEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qc6jAHyjEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qc6jAXyjEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qc6jAnyjEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qc6jA3yjEeCAIan9YGu1mA" x="19" y="10"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qc6jBHyjEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qc6jBXyjEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_kIpIl3yjEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qcxZKXyjEeCAIan9YGu1mA" x="111" y="55"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_kIpIkHyjEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lxG7MXyjEeCAIan9YGu1mA" x="340" y="15" width="121" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_u2ZrwHyjEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_u2ZrwnyjEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_u2Zrw3yjEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_u2ZrxHyjEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_u2ZrxXyjEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_u2ZrxnyjEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_u2Zrx3yjEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_u2ZryHyjEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_u2ZryXyjEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_u2ZrynyjEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u2Zry3yjEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yvjHkHyjEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yvs4kHyjEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yvs4kXyjEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yvs4knyjEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yvs4k3yjEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yvs4lHyjEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yvs4lXyjEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yvs4lnyjEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yvs4l3yjEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yvs4mHyjEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yvs4mXyjEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_tbNgIXyjEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yvjHkXyjEeCAIan9YGu1mA" x="-10" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yvs4mnyjEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yvs4nHyjEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yvs4nXyjEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yvs4nnyjEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yvs4n3yjEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yvs4oHyjEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yvs4oXyjEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yvs4onyjEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yvs4o3yjEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yvs4pHyjEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yvs4pXyjEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_tbNgJHyjEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yvs4m3yjEeCAIan9YGu1mA" x="-10" y="70"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yvs4pnyjEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yvs4qHyjEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yvs4qXyjEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yvs4qnyjEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yvs4q3yjEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yvs4rHyjEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yvs4rXyjEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yvs4rnyjEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yvs4r3yjEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yvs4sHyjEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yvs4sXyjEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_tbNgJ3yjEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yvs4p3yjEeCAIan9YGu1mA" x="111" y="55"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_tbNgIHyjEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u2ZrwXyjEeCAIan9YGu1mA" x="340" y="130" width="121" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_4pmEIHyjEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4pmEInyjEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4pmEI3yjEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4pmEJHyjEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4pmEJXyjEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4pmEJnyjEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4pmEJ3yjEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4pmEKHyjEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4pmEKXyjEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4pmEKnyjEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4pmEK3yjEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9uStEHyjEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9uStEnyjEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9uStE3yjEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9uStFHyjEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9uStFXyjEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9uStFnyjEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9uStF3yjEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9uStGHyjEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9uStGXyjEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9uStGnyjEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9uStG3yjEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_2euIAXyjEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9uStEXyjEeCAIan9YGu1mA" x="-10" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9uStHHyjEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9uStHnyjEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9uStH3yjEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9uStIHyjEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9uStIXyjEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9uStInyjEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9uStI3yjEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9uStJHyjEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9uStJXyjEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9uStJnyjEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9uStJ3yjEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_2euIBHyjEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9uStHXyjEeCAIan9YGu1mA" x="-10" y="70"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9uStKHyjEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9uStKnyjEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9uStK3yjEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9uStLHyjEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9uceEHyjEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9uceEXyjEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9uceEnyjEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9uceE3yjEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9uceFHyjEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9uceFXyjEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9uceFnyjEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_2euIB3yjEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9uStKXyjEeCAIan9YGu1mA" x="111" y="55"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_2euIAHyjEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4pmEIXyjEeCAIan9YGu1mA" x="340" y="245" width="121" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_IDdxIHykEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IDdxInykEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IDdxI3ykEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IDdxJHykEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IDdxJXykEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IDdxJnykEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IDdxJ3ykEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_IDdxKHykEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IDdxKXykEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IDdxKnykEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IDdxK3ykEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_MAyiUHykEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MAyiUnykEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MAyiU3ykEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MAyiVHykEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MAyiVXykEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MAyiVnykEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MAyiV3ykEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MAyiWHykEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MAyiWXykEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MAyiWnykEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MAyiW3ykEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_Gd13IXykEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MAyiUXykEeCAIan9YGu1mA" x="-10" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_MAyiXHykEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MAyiXnykEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MAyiX3ykEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MAyiYHykEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MAyiYXykEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MAyiYnykEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MAyiY3ykEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MAyiZHykEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MAyiZXykEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MAyiZnykEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MAyiZ3ykEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_Gd13JHykEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MAyiXXykEeCAIan9YGu1mA" x="-10" y="70"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_MAyiaHykEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MAyianykEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MAyia3ykEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MAyibHykEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MAyibXykEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MAyibnykEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MAyib3ykEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MAyicHykEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MAyicXykEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MAyicnykEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MAyic3ykEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_Gd13J3ykEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MAyiaXykEeCAIan9YGu1mA" x="111" y="55"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_Gd13IHykEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IDdxIXykEeCAIan9YGu1mA" x="340" y="360" width="121" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TF7ZAHykEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TF7ZAnykEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TF7ZA3ykEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TGFKAHykEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TGFKAXykEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TGFKAnykEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TGFKA3ykEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TGFKBHykEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TGFKBXykEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TGFKBnykEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TGFKB3ykEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WzAuwHykEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WzAuwnykEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WzAuw3ykEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WzAuxHykEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WzAuxXykEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WzAuxnykEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WzAux3ykEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WzAuyHykEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WzAuyXykEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WzAuynykEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WzAuy3ykEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_R44-IXykEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WzAuwXykEeCAIan9YGu1mA" x="-10" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WzAuzHykEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WzAuznykEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WzAuz3ykEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WzAu0HykEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WzAu0XykEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WzAu0nykEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WzAu03ykEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WzAu1HykEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WzAu1XykEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WzAu1nykEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WzAu13ykEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_R44-JHykEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WzAuzXykEeCAIan9YGu1mA" x="-10" y="70"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WzAu2HykEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WzAu2nykEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WzAu23ykEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WzAu3HykEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WzAu3XykEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WzAu3nykEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WzAu33ykEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WzAu4HykEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WzAu4XykEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WzAu4nykEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WzAu43ykEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_R44-J3ykEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WzAu2XykEeCAIan9YGu1mA" x="111" y="60"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_R44-IHykEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TF7ZAXykEeCAIan9YGu1mA" x="340" y="475" width="121" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dRvFsHykEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dRvFsnykEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dRvFs3ykEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dRvFtHykEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dRvFtXykEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dRvFtnykEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dRvFt3ykEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dRvFuHykEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dRvFuXykEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dRvFunykEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dRvFu3ykEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hQZ6sHykEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hQjrsHykEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hQjrsXykEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hQjrsnykEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hQjrs3ykEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hQjrtHykEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hQjrtXykEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hQjrtnykEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hQjrt3ykEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hQjruHykEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hQjruXykEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_bUG7YXykEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hQZ6sXykEeCAIan9YGu1mA" x="-10" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hQjrunykEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hQjrvHykEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hQjrvXykEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hQjrvnykEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hQjrv3ykEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hQjrwHykEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hQjrwXykEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hQjrwnykEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hQjrw3ykEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hQjrxHykEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hQjrxXykEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_bUG7ZHykEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hQjru3ykEeCAIan9YGu1mA" x="-10" y="70"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hQjrxnykEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hQjryHykEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hQjryXykEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hQjrynykEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hQjry3ykEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hQjrzHykEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hQjrzXykEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hQjrznykEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hQjrz3ykEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hQjr0HykEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hQjr0XykEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_bUG7Z3ykEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hQjrx3ykEeCAIan9YGu1mA" x="111" y="55"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_bUG7YHykEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dRvFsXykEeCAIan9YGu1mA" x="620" y="15" width="121" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lqNMgHykEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lqNMgnykEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lqNMg3ykEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lqNMhHykEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lqNMhXykEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lqNMhnykEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lqNMh3ykEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lqNMiHykEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lqNMiXykEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lqNMinykEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lqNMi3ykEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_pcEUkHykEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pcEUknykEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pcEUk3ykEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pcEUlHykEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pcEUlXykEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pcEUlnykEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pcEUl3ykEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pcEUmHykEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pcEUmXykEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pcEUmnykEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pcEUm3ykEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_kPAZ0XykEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pcEUkXykEeCAIan9YGu1mA" x="-10" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_pcEUnHykEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pcEUnnykEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pcEUn3ykEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pcEUoHykEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pcEUoXykEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pcEUonykEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pcEUo3ykEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pcEUpHykEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pcEUpXykEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pcEUpnykEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pcEUp3ykEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_kPAZ1HykEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pcEUnXykEeCAIan9YGu1mA" x="-10" y="70"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_pcEUqHykEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pcEUqnykEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pcEUq3ykEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pcEUrHykEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pcEUrXykEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pcEUrnykEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pcEUr3ykEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pcEUsHykEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pcEUsXykEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pcEUsnykEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pcEUs3ykEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_kPAZ13ykEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pcEUqXykEeCAIan9YGu1mA" x="111" y="55"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_kPAZ0HykEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lqNMgXykEeCAIan9YGu1mA" x="620" y="130" width="121" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_zaK8cHykEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zaUtcHykEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zaUtcXykEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zaUtcnykEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zaUtc3ykEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zaUtdHykEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zaUtdXykEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zaUtdnykEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_zaUtd3ykEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_zaUteHykEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zaUteXykEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_47poAHykEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_47poAnykEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_47poA3ykEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_47poBHykEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_47poBXykEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_47poBnykEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_47poB3ykEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_47poCHykEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_47poCXykEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_47poCnykEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_47poC3ykEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_tAgrsXykEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_47poAXykEeCAIan9YGu1mA" x="-10" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_47poDHykEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_47poDnykEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_47poD3ykEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_47poEHykEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_47poEXykEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_47poEnykEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_47poE3ykEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_47poFHykEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_47poFXykEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_47poFnykEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_47poF3ykEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_tAgrtHykEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_47poDXykEeCAIan9YGu1mA" x="111" y="40"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_tAgrsHykEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zaK8cXykEeCAIan9YGu1mA" x="620" y="250" width="121"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0yPioHykEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0yPionykEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0yPio3ykEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0yPipHykEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0yPipXykEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0yPipnykEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0yPip3ykEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0yPiqHykEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0yPiqXykEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0yPiqnykEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0yPiq3ykEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6r3BYHykEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6r3BYnykEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6r3BY3ykEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6r3BZHykEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6r3BZXykEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6r3BZnykEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6r3BZ3ykEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6r3BaHykEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6r3BaXykEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6r3BanykEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6r3Ba3ykEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_vEQFEXykEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6r3BYXykEeCAIan9YGu1mA" x="-10" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6r3BbHykEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6r3BbnykEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6r3Bb3ykEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6r3BcHykEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6r3BcXykEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6r3BcnykEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6r3Bc3ykEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6r3BdHykEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6r3BdXykEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6r3BdnykEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6r3Bd3ykEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_vEQFFHykEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6r3BbXykEeCAIan9YGu1mA" x="111" y="40"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_vEQFEHykEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0yPioXykEeCAIan9YGu1mA" x="620" y="335" width="121"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3UFNQHykEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3UFNQnykEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3UFNQ3ykEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3UFNRHykEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3UFNRXykEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3UFNRnykEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3UFNR3ykEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3UFNSHykEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3UFNSXykEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3UFNSnykEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3UFNS3ykEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8n_W4HykEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8n_W4nykEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8n_W43ykEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8n_W5HykEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8n_W5XykEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8n_W5nykEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8n_W53ykEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8n_W6HykEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8n_W6XykEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8n_W6nykEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8n_W63ykEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_xrcw0XykEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8n_W4XykEeCAIan9YGu1mA" x="-10" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8n_W7HykEeCAIan9YGu1mA" type="3088" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8oJH4HykEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8oJH4XykEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8oJH4nykEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8oJH43ykEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8oJH5HykEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8oJH5XykEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8oJH5nykEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8oJH53ykEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8oJH6HykEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8oJH6XykEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_xrcw1HykEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8n_W7XykEeCAIan9YGu1mA" x="111" y="40"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_xrcw0HykEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3UFNQXykEeCAIan9YGu1mA" x="620" y="420" width="121"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_mfucEXygEeCAIan9YGu1mA"/>
+ <element xmi:type="uml:Package" href="fUMLlibrary.uml#_Coi3AHyYEeCAIan9YGu1mA"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_fkR6oHylEeCAIan9YGu1mA" type="CompositeStructure" name="Foundational Model Library String Functions" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_jC6ksHylEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jDDuoHylEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jDDuoXylEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jDDuonylEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jDDuo3ylEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jDDupHylEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jDDupXylEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jDDupnylEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jDDup3ylEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jDDuqHylEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jDDuqXylEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ko1ZoHylEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ko1ZonylEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ko1Zo3ylEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ko1ZpHylEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ko1ZpXylEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ko1ZpnylEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ko1Zp3ylEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ko1ZqHylEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ko1ZqXylEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ko1ZqnylEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ko1Zq3ylEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_kosPsHylEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ko1ZoXylEeCAIan9YGu1mA" x="-10" y="40" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_n3hjMHylEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_n3hjMnylEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_n3hjM3ylEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_n3hjNHylEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_n3hjNXylEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_n3hjNnylEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_n3hjN3ylEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_n3hjOHylEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_n3hjOXylEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_n3hjOnylEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_n3hjO3ylEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_n3XyMHylEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n3hjMXylEeCAIan9YGu1mA" x="-10" y="65" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_rwFJIHylEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rwFJInylEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rwFJI3ylEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rwFJJHylEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rwFJJXylEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rwFJJnylEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rwFJJ3ylEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_rwFJKHylEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_rwFJKXylEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_rwFJKnylEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_rwFJK3ylEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_rv7YIHylEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rwFJIXylEeCAIan9YGu1mA" x="141" y="55" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_jCwzsHylEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jC6ksXylEeCAIan9YGu1mA" x="95" y="60" width="151" height="91"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2wxPYHylEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2wxPYnylEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2wxPY3ylEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2wxPZHylEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2wxPZXylEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2wxPZnylEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2wxPZ3ylEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2wxPaHylEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2wxPaXylEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2wxPanylEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2wxPa3ylEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_30bEwHylEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_30bEwnylEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_30bEw3ylEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_30bExHylEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_30bExXylEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_30bExnylEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_30bEx3ylEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_30bEyHylEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_30bEyXylEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_30bEynylEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_30bEy3ylEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_30HiwHylEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_30bEwXylEeCAIan9YGu1mA" x="-10" y="40" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6aknoHylEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6aknonylEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6akno3ylEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6aknpHylEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6aknpXylEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6aknpnylEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6aknp3ylEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6aknqHylEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6aknqXylEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6aknqnylEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6aknq3ylEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_6aRssHylEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6aknoXylEeCAIan9YGu1mA" x="141" y="40" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_2weUcHylEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2wxPYXylEeCAIan9YGu1mA" x="95" y="165" width="151" height="66"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_EMbjQHymEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EMbjQnymEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EMbjQ3ymEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EMbjRHymEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EMbjRXymEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EMbjRnymEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EMbjR3ymEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_EMbjSHymEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_EMbjSXymEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_EMbjSnymEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EMbjS3ymEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_G3fbUHymEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G3fbUnymEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G3fbU3ymEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G3fbVHymEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G3fbVXymEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G3fbVnymEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G3fbV3ymEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_G3fbWHymEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_G3fbWXymEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_G3fbWnymEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_G3fbW3ymEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_G3MgYHymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_G3fbUXymEeCAIan9YGu1mA" x="-10" y="42" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_J_xa4HymEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J_xa4nymEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_J_xa43ymEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J_xa5HymEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_J_xa5XymEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J_xa5nymEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_J_xa53ymEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_J_xa6HymEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_J_xa6XymEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_J_xa6nymEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_J_xa63ymEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_J_np4HymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J_xa4XymEeCAIan9YGu1mA" x="-10" y="70" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NOKCcHymEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NOKCcnymEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NOKCc3ymEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NOKCdHymEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NOKCdXymEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NOKCdnymEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NOKCd3ymEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NOKCeHymEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NOKCeXymEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NOKCenymEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NOKCe3ymEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_NN2gcHymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NOKCcXymEeCAIan9YGu1mA" x="-10" y="99" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Qz72UHymEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qz72UnymEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qz72U3ymEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qz72VHymEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qz72VXymEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qz72VnymEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qz72V3ymEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Qz72WHymEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q0FAQHymEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Q0FAQXymEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q0FAQnymEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_QzyFUHymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qz72UXymEeCAIan9YGu1mA" x="141" y="72" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_EMRyQHymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EMbjQXymEeCAIan9YGu1mA" x="95" y="245" width="151" height="126"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_fkR6oXylEeCAIan9YGu1mA"/>
+ <element xmi:type="uml:Package" href="fUMLlibrary.uml#_FEacgHyYEeCAIan9YGu1mA"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_i1mE8HymEeCAIan9YGu1mA" type="CompositeStructure" name="Foundational Model Library UnlimitedNatural Functions" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_purcoHymEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_purconymEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_purco3ymEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pu0mkHymEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pu0mkXymEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pu0mknymEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pu0mk3ymEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pu0mlHymEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_pu0mlXymEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_pu0mlnymEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pu0ml3ymEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_s3F_EHymEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s3F_EnymEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s3F_E3ymEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s3F_FHymEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s3F_FXymEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s3F_FnymEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s3F_F3ymEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_s3F_GHymEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s3F_GXymEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_s3F_GnymEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s3F_G3ymEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_lqywcXymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_s3F_EXymEeCAIan9YGu1mA" x="-10" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_s3F_HHymEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s3F_HnymEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s3F_H3ymEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s3F_IHymEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s3F_IXymEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s3F_InymEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s3F_I3ymEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_s3F_JHymEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s3F_JXymEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_s3F_JnymEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s3F_J3ymEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_lqywdHymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_s3F_HXymEeCAIan9YGu1mA" x="-10" y="75"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_s3F_KHymEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s3F_KnymEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s3F_K3ymEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s3F_LHymEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s3F_LXymEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s3F_LnymEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s3F_L3ymEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_s3F_MHymEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s3F_MXymEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_s3F_MnymEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s3F_M3ymEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_lqywd3ymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_s3F_KXymEeCAIan9YGu1mA" x="141" y="50"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_lqywcHymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_purcoXymEeCAIan9YGu1mA" x="60" y="50" width="151" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3lmwMHymEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3lmwMnymEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3lmwM3ymEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3lmwNHymEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3lmwNXymEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3lmwNnymEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3lmwN3ymEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3lmwOHymEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3lmwOXymEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3lmwOnymEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3lmwO3ymEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8gxCoHymEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8gxConymEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8gxCo3ymEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8gxCpHymEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8gxCpXymEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8gxCpnymEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8gxCp3ymEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8gxCqHymEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8gxCqXymEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8gxCqnymEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8gxCq3ymEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_lqywe3ymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8gxCoXymEeCAIan9YGu1mA" x="-10" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8gxCrHymEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8gxCrnymEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8gxCr3ymEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8gxCsHymEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8gxCsXymEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8gxCsnymEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8gxCs3ymEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8gxCtHymEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8gxCtXymEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8gxCtnymEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8gxCt3ymEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_lqywfnymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8gxCrXymEeCAIan9YGu1mA" x="-10" y="75"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8gxCuHymEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8gxCunymEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8gxCu3ymEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8gxCvHymEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8gxCvXymEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8gxCvnymEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8gxCv3ymEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8gxCwHymEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8gxCwXymEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8gxCwnymEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8gxCw3ymEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_lqywgXymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8gxCuXymEeCAIan9YGu1mA" x="141" y="55"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_lqywenymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3lmwMXymEeCAIan9YGu1mA" x="60" y="165" width="151" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_f8cREHynEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8cREnynEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8cRE3ynEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8cRFHynEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8cRFXynEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8cRFnynEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8cRF3ynEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_f8cRGHynEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_f8cRGXynEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_f8cRGnynEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8cRG3ynEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ib4vAHynEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ib4vAnynEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ib4vA3ynEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ib4vBHynEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ib4vBXynEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ib4vBnynEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ib4vB3ynEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ib4vCHynEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ib4vCXynEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ib4vCnynEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ib4vC3ynEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_lqywhXymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ib4vAXynEeCAIan9YGu1mA" x="-10" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ib4vDHynEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ib4vDnynEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ib4vD3ynEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ib4vEHynEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ib4vEXynEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ib4vEnynEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ib4vE3ynEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ib4vFHynEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ib4vFXynEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ib4vFnynEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ib4vF3ynEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_lqywiHymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ib4vDXynEeCAIan9YGu1mA" x="-10" y="70"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ib4vGHynEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ib4vGnynEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ib4vG3ynEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ib4vHHynEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ib4vHXynEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ib4vHnynEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ib4vH3ynEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ib4vIHynEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ib4vIXynEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ib4vInynEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ib4vI3ynEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_lqywi3ymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ib4vGXynEeCAIan9YGu1mA" x="141" y="55"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_lqywhHymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8cREXynEeCAIan9YGu1mA" x="60" y="285" width="151" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_pNXp4HynEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pNXp4nynEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pNXp43ynEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pNXp5HynEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pNXp5XynEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pNXp5nynEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pNXp53ynEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pNXp6HynEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_pNXp6XynEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_pNXp6nynEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pNXp63ynEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tWKEMHynEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tWKEMnynEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tWKEM3ynEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tWKENHynEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tWKENXynEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tWKENnynEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tWKEN3ynEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tWKEOHynEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tWKEOXynEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tWKEOnynEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tWKEO3ynEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_lqywj3ymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tWKEMXynEeCAIan9YGu1mA" x="-10" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tWKEPHynEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tWKEPnynEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tWKEP3ynEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tWKEQHynEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tWKEQXynEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tWKEQnynEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tWKEQ3ynEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tWKERHynEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tWKERXynEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tWKERnynEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tWKER3ynEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_lqywknymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tWKEPXynEeCAIan9YGu1mA" x="-10" y="70"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tWKESHynEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tWKESnynEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tWKES3ynEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tWKETHynEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tWKETXynEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tWKETnynEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tWKET3ynEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tWKEUHynEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tWKEUXynEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tWKEUnynEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tWKEU3ynEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_lqywlXymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tWKESXynEeCAIan9YGu1mA" x="141" y="55"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_lqywjnymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pNXp4XynEeCAIan9YGu1mA" x="60" y="405" width="151" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xtaYUHynEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xtaYUnynEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xtaYU3ynEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xtaYVHynEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xtaYVXynEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xtaYVnynEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xtaYV3ynEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xtaYWHynEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xtaYWXynEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_xtaYWnynEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xtaYW3ynEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0scVQHynEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0scVQnynEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0scVQ3ynEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0scVRHynEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0scVRXynEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0scVRnynEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0scVR3ynEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0scVSHynEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0scVSXynEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0scVSnynEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0scVS3ynEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_lqywmXymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0scVQXynEeCAIan9YGu1mA" x="-10" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0scVTHynEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0scVTnynEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0scVT3ynEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0scVUHynEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0scVUXynEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0scVUnynEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0scVU3ynEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0scVVHynEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0scVVXynEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0scVVnynEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0scVV3ynEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_lqywnHymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0scVTXynEeCAIan9YGu1mA" x="-10" y="70"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0scVWHynEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0scVWnynEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0scVW3ynEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0scVXHynEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0scVXXynEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0scVXnynEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0scVX3ynEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0scVYHynEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0scVYXynEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0scVYnynEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0scVY3ynEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_lqywn3ymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0scVWXynEeCAIan9YGu1mA" x="141" y="60"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_lqywmHymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xtaYUXynEeCAIan9YGu1mA" x="60" y="525" width="151" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_69SoQHynEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_69byMHynEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_69byMXynEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_69byMnynEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_69byM3ynEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_69byNHynEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_69byNXynEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_69byNnynEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_69byN3ynEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_69byOHynEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_69byOXynEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-MHUsHynEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-MHUsnynEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-MHUs3ynEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-MHUtHynEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-MHUtXynEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-MHUtnynEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-MHUt3ynEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-MHUuHynEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-MHUuXynEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-MHUunynEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-MHUu3ynEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_lqywo3ymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-MHUsXynEeCAIan9YGu1mA" x="-10" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-MHUvHynEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-MHUvnynEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-MHUv3ynEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-MHUwHynEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-MHUwXynEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-MHUwnynEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-MHUw3ynEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-MHUxHynEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-MHUxXynEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-MHUxnynEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-MHUx3ynEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_lqywpnymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-MHUvXynEeCAIan9YGu1mA" x="-10" y="70"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-MHUyHynEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-MHUynynEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-MHUy3ynEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-MRFsHynEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-MRFsXynEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-MRFsnynEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-MRFs3ynEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-MRFtHynEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-MRFtXynEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-MRFtnynEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-MRFt3ynEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_lqywqXymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-MHUyXynEeCAIan9YGu1mA" x="141" y="55"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_lqywonymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_69SoQXynEeCAIan9YGu1mA" x="415" y="50" width="151" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_HqJ8cHyoEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HqJ8cnyoEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HqJ8c3yoEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HqJ8dHyoEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HqJ8dXyoEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HqJ8dnyoEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HqJ8d3yoEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_HqJ8eHyoEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HqJ8eXyoEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_HqJ8enyoEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HqJ8e3yoEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_JQrOUHyoEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JQrOUnyoEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JQrOU3yoEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JQrOVHyoEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JQrOVXyoEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JQrOVnyoEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JQrOV3yoEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JQrOWHyoEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JQrOWXyoEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JQrOWnyoEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JQrOW3yoEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_oj32YXymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JQrOUXyoEeCAIan9YGu1mA" x="-10" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_JQrOXHyoEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JQrOXnyoEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JQrOX3yoEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JQrOYHyoEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JQrOYXyoEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JQrOYnyoEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JQrOY3yoEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JQrOZHyoEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JQrOZXyoEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JQrOZnyoEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JQrOZ3yoEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_oj32ZHymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JQrOXXyoEeCAIan9YGu1mA" x="141" y="40"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_oj32YHymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HqJ8cXyoEeCAIan9YGu1mA" x="415" y="165" width="151"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_N2-EAHyoEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_N2-EAnyoEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_N2-EA3yoEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_N2-EBHyoEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_N2-EBXyoEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_N2-EBnyoEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_N2-EB3yoEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_N2-ECHyoEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_N2-ECXyoEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_N2-ECnyoEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_N2-EC3yoEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QmgzcHyoEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QmgzcnyoEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qmgzc3yoEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QmgzdHyoEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QmgzdXyoEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QmgzdnyoEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qmgzd3yoEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QmgzeHyoEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QmgzeXyoEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QmgzenyoEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Qmgze3yoEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_oj32aHymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QmgzcXyoEeCAIan9YGu1mA" x="-10" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QmgzfHyoEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QmgzfnyoEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qmgzf3yoEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QmgzgHyoEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QmgzgXyoEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QmgzgnyoEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qmgzg3yoEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QmgzhHyoEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QmgzhXyoEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QmgzhnyoEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Qmgzh3yoEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_oj32a3ymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QmgzfXyoEeCAIan9YGu1mA" x="141" y="40"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_oj32Z3ymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_N2-EAXyoEeCAIan9YGu1mA" x="415" y="245" width="151"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wQob0HyoEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wQob0nyoEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wQob03yoEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wQob1HyoEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wQob1XyoEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wQob1nyoEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wQob13yoEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wQob2HyoEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wQob2XyoEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wQob2nyoEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wQob23yoEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xr-YcHyoEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xr-YcnyoEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xr-Yc3yoEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xr-YdHyoEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xr-YdXyoEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xr-YdnyoEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xr-Yd3yoEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xr-YeHyoEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xr-YeXyoEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xr-YenyoEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xr-Ye3yoEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_oj32b3ymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xr-YcXyoEeCAIan9YGu1mA" x="-10" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xr-YfHyoEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xsIJcHyoEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xsIJcXyoEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xsIJcnyoEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xsIJc3yoEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xsIJdHyoEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xsIJdXyoEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xsIJdnyoEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xsIJd3yoEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xsIJeHyoEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xsIJeXyoEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_oj32cnymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xr-YfXyoEeCAIan9YGu1mA" x="141" y="40"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_oj32bnymEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wQob0XyoEeCAIan9YGu1mA" x="415" y="330" width="151"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_i1mE8XymEeCAIan9YGu1mA"/>
+ <element xmi:type="uml:Package" href="fUMLlibrary.uml#_Gcx9oHyYEeCAIan9YGu1mA"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_Aj3ZwHypEeCAIan9YGu1mA" type="CompositeStructure" name="Foundational Model Library List Functions" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_C6ONIHypEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_C6ONInypEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_C6ONI3ypEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_C6ONJHypEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_C6ONJXypEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_C6ONJnypEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_C6ONJ3ypEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_C6ONKHypEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_C6ONKXypEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_C6ONKnypEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_C6ONK3ypEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_EXgqgHypEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EXgqgnypEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EXgqg3ypEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EXgqhHypEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EXgqhXypEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EXgqhnypEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EXgqh3ypEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_EXgqiHypEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EXgqiXypEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_EXgqinypEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EXgqi3ypEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_EXW5gHypEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EXgqgXypEeCAIan9YGu1mA" x="-10" y="43" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_HFG5MHypEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HFG5MnypEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HFG5M3ypEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HFG5NHypEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HFG5NXypEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HFG5NnypEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HFG5N3ypEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_HFG5OHypEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_HFG5OXypEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_HFG5OnypEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_HFG5O3ypEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_HE9IMHypEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HFG5MXypEeCAIan9YGu1mA" x="156" y="45" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_C57SMHypEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_C6ONIXypEeCAIan9YGu1mA" x="125" y="55" width="166" height="76"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Ru_B8HypEeCAIan9YGu1mA" type="2064" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RvIy8HypEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RvIy8XypEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RvIy8nypEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RvIy83ypEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RvIy9HypEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RvIy9XypEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RvIy9nypEeCAIan9YGu1mA" type="5116"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_RvIy93ypEeCAIan9YGu1mA" type="7067">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RvIy-HypEeCAIan9YGu1mA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RvIy-XypEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Ueq7UHypEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ueq7UnypEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ue0sUHypEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ue0sUXypEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ue0sUnypEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ue0sU3ypEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ue0sVHypEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Ue0sVXypEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ue0sVnypEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Ue0sV3ypEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ue0sWHypEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_UehxYHypEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ueq7UXypEeCAIan9YGu1mA" x="-10" y="44" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Z6BJsHypEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z6BJsnypEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z6BJs3ypEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z6BJtHypEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z6BJtXypEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Z6BJtnypEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Z6BJt3ypEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z6BJuHypEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Z6BJuXypEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z6BJunypEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Z6BJu3ypEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_Z53_wHypEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z6BJsXypEeCAIan9YGu1mA" x="-10" y="76" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cFzEwHypEeCAIan9YGu1mA" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cFzEwnypEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cFzEw3ypEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cFzExHypEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cFzExXypEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cFzExnypEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cFzEx3ypEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cFzEyHypEeCAIan9YGu1mA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cFzEyXypEeCAIan9YGu1mA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cFzEynypEeCAIan9YGu1mA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cFzEy3ypEeCAIan9YGu1mA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_cFpTwHypEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cFzEwXypEeCAIan9YGu1mA" x="156" y="62" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:FunctionBehavior" href="fUMLlibrary.uml#_Ru14AHypEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ru_B8XypEeCAIan9YGu1mA" x="125" y="150" width="166" height="111"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Aj3ZwXypEeCAIan9YGu1mA"/>
+ <element xmi:type="uml:Package" href="fUMLlibrary.uml#_IgNN8HyYEeCAIan9YGu1mA"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="__0_FEHypEeCAIan9YGu1mA" type="PapyrusUMLClassDiagram" name="Foundational Model Library Common package" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_CzuHEHyqEeCAIan9YGu1mA" type="2003" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Cz34EHyqEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Cz34EXyqEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Cz34EnyqEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Cz34E3yqEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Cz34FHyqEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Cz34FXyqEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Cz34FnyqEeCAIan9YGu1mA" type="5008"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Cz34F3yqEeCAIan9YGu1mA" type="7005">
+ <children xmi:type="notation:Shape" xmi:id="_Etd28HyqEeCAIan9YGu1mA" type="3005" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVyKUHyqEeCAIan9YGu1mA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVyKUXyqEeCAIan9YGu1mA" key="CustomAppearance_MaskValue" value="46"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="fUMLlibrary.uml#_EtK8AHyqEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Etd28XyqEeCAIan9YGu1mA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Cz34GHyqEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Cz34GXyqEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Cz34GnyqEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Cz34G3yqEeCAIan9YGu1mA"/>
+ </children>
+ <element xmi:type="uml:Signal" href="fUMLlibrary.uml#_Czk9IHyqEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CzuHEXyqEeCAIan9YGu1mA" x="80" y="95" width="126" height="56"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Wqp1QHyqEeCAIan9YGu1mA" type="2008" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WqzmQHyqEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WqzmQXyqEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WqzmQnyqEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WqzmQ3yqEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WqzmRHyqEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WqzmRXyqEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WqzmRnyqEeCAIan9YGu1mA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_WqzmR3yqEeCAIan9YGu1mA" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WqzmSHyqEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_WqzmSXyqEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_WqzmSnyqEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WqzmS3yqEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_WqzmTHyqEeCAIan9YGu1mA" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_ZU08gHyqEeCAIan9YGu1mA" type="3011" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fGYEYHyqEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fGYEYXyqEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:Reception" href="fUMLlibrary.uml#_ZUiBkHyqEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZU08gXyqEeCAIan9YGu1mA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WqzmTXyqEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_WqzmTnyqEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_WqzmT3yqEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WqzmUHyqEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_WqzmUXyqEeCAIan9YGu1mA" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WqzmUnyqEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_WqzmU3yqEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_WqzmVHyqEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WqzmVXyqEeCAIan9YGu1mA"/>
+ </children>
+ <element xmi:type="uml:Class" href="fUMLlibrary.uml#_WqW6UHyqEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Wqp1QXyqEeCAIan9YGu1mA" x="80" y="165" width="201" height="46"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jHH9AHyqEeCAIan9YGu1mA" type="2012" fontHeight="8" transparency="100" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jHH9AnyqEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jHH9A3yqEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jHH9BHyqEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jHH9BXyqEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jHH9BnyqEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jHH9B3yqEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jHH9CHyqEeCAIan9YGu1mA" type="5038"/>
+ <element xmi:type="uml:Comment" href="fUMLlibrary.uml#_i-MDcHyqEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jHH9AXyqEeCAIan9YGu1mA" x="305" y="145" width="156" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_sAWngHyqEeCAIan9YGu1mA" type="2010" fontHeight="8" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sAWngnyqEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sAWng3yqEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sAWnhHyqEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sAWnhXyqEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sAWnhnyqEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sAWnh3yqEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_sAWniHyqEeCAIan9YGu1mA" type="5035"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sAWniXyqEeCAIan9YGu1mA" type="7020">
+ <children xmi:type="notation:Shape" xmi:id="_uruBkHyqEeCAIan9YGu1mA" type="3018" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="fUMLlibrary.uml#_urkQkHyqEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uruBkXyqEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xwkSoHyqEeCAIan9YGu1mA" type="3018" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="fUMLlibrary.uml#_xwahoHyqEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xwkSoXyqEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1hXqwHyqEeCAIan9YGu1mA" type="3018" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Property" href="fUMLlibrary.uml#_1hN5wHyqEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1hXqwXyqEeCAIan9YGu1mA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_sAWninyqEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_sAWni3yqEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_sAWnjHyqEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sAWnjXyqEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sAWnjnyqEeCAIan9YGu1mA" visible="false" type="7021">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_sAWnj3yqEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_sAWnkHyqEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_sAWnkXyqEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sAWnknyqEeCAIan9YGu1mA"/>
+ </children>
+ <element xmi:type="uml:DataType" href="fUMLlibrary.uml#_sADskHyqEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sAWngXyqEeCAIan9YGu1mA" x="80" y="225" width="141" height="81"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="__0_FEXypEeCAIan9YGu1mA"/>
+ <element xmi:type="uml:Package" href="fUMLlibrary.uml#_j_Y8YHyXEeCAIan9YGu1mA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_lp_iYHyqEeCAIan9YGu1mA" type="4013" source="_jHH9AHyqEeCAIan9YGu1mA" target="_Wqp1QHyqEeCAIan9YGu1mA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_lp_iYXyqEeCAIan9YGu1mA" fontHeight="8"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_lp_iYnyqEeCAIan9YGu1mA" points="[-11, 2, 68, -18]$[-70, 20, 9, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lqcOUHyqEeCAIan9YGu1mA" id="(0.07051282051282051,0.6829268292682927)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lqcOUXyqEeCAIan9YGu1mA" id="(0.9552238805970149,0.5892857142857143)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_ZvHPUHyrEeCAIan9YGu1mA" type="PapyrusUMLClassDiagram" name="Foundational Model Library BasicInputOuput package: Channel Model" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_a-rZwHyrEeCAIan9YGu1mA" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a-rZwnyrEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a-rZw3yrEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a-rZxHyrEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a-rZxXyrEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a-rZxnyrEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a-rZx3yrEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_a-rZyHyrEeCAIan9YGu1mA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_a-rZyXyrEeCAIan9YGu1mA" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_a-rZynyrEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_a-rZy3yrEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_a-rZzHyrEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_a-rZzXyrEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_a-rZznyrEeCAIan9YGu1mA" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_8xD5sHysEeCAIan9YGu1mA" type="3013" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="fUMLlibrary.uml#_8w6IsHysEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8xD5sXysEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZLUeYHyuEeCKy5kSqd4eVw" type="3013" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="fUMLlibrary.uml#_ZKbGgHyuEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZLUeYXyuEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_f-iMsHywEeCKy5kSqd4eVw" type="3013" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="fUMLlibrary.uml#_f-PRwHywEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_f-iMsXywEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nLlCMHywEeCKy5kSqd4eVw" type="3013" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="fUMLlibrary.uml#_nLSHQHywEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nLlCMXywEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_sHydgHywEeCKy5kSqd4eVw" type="3013" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="fUMLlibrary.uml#_sHfikHywEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sHydgXywEeCKy5kSqd4eVw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_a-rZz3yrEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_a-rZ0HyrEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_a-rZ0XyrEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_a-rZ0nyrEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_a-rZ03yrEeCAIan9YGu1mA" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_a-rZ1HyrEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_a-rZ1XyrEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_a-rZ1nyrEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_a-rZ13yrEeCAIan9YGu1mA"/>
+ </children>
+ <element xmi:type="uml:Class" href="fUMLlibrary.uml#_a-Ye0HyrEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_a-rZwXyrEeCAIan9YGu1mA" x="290" y="20" width="171" height="91"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lFdAAHysEeCAIan9YGu1mA" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lFdAAnysEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lFdAA3ysEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lFdABHysEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lFdABXysEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lFdABnysEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lFdAB3ysEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lFdACHysEeCAIan9YGu1mA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lFdACXysEeCAIan9YGu1mA" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lFdACnysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lFdAC3ysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lFdADHysEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lFdADXysEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lFdADnysEeCAIan9YGu1mA" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_zAHnQHywEeCKy5kSqd4eVw" type="3013" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="fUMLlibrary.uml#_y_0sUHywEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zAHnQXywEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8_rnsHywEeCKy5kSqd4eVw" type="3013" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="fUMLlibrary.uml#_8_YswHywEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8_rnsXywEeCKy5kSqd4eVw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lFdAD3ysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lFdAEHysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lFdAEXysEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lFdAEnysEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lFdAE3ysEeCAIan9YGu1mA" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lFdAFHysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lFdAFXysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lFdAFnysEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lFdAF3ysEeCAIan9YGu1mA"/>
+ </children>
+ <element xmi:type="uml:Class" href="fUMLlibrary.uml#_lFTPAHysEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lFdAAXysEeCAIan9YGu1mA" x="10" y="200" height="71"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ruvBIHysEeCAIan9YGu1mA" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ruvBInysEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ruvBI3ysEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ruvBJHysEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ruvBJXysEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ru4yIHysEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ru4yIXysEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ru4yInysEeCAIan9YGu1mA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ru4yI3ysEeCAIan9YGu1mA" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ru4yJHysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ru4yJXysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ru4yJnysEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ru4yJ3ysEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ru4yKHysEeCAIan9YGu1mA" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_GuG00HyxEeCKy5kSqd4eVw" type="3013" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="fUMLlibrary.uml#_Gtz54HyxEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GuG00XyxEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_KacjsHyxEeCKy5kSqd4eVw" type="3013" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="fUMLlibrary.uml#_KaJBsHyxEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KacjsXyxEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_bLL9AHyxEeCKy5kSqd4eVw" type="3013" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="fUMLlibrary.uml#_bK5CEHyxEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bLL9AXyxEeCKy5kSqd4eVw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ru4yKXysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ru4yKnysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ru4yK3ysEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ru4yLHysEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ru4yLXysEeCAIan9YGu1mA" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ru4yLnysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ru4yL3ysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ru4yMHysEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ru4yMXysEeCAIan9YGu1mA"/>
+ </children>
+ <element xmi:type="uml:Class" href="fUMLlibrary.uml#_rulQIHysEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ruvBIXysEeCAIan9YGu1mA" x="210" y="200" width="321" height="71"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uWXxwHysEeCAIan9YGu1mA" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uWXxwnysEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uWXxw3ysEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uWXxxHysEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uWXxxXysEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uWXxxnysEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uWXxx3ysEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uWXxyHysEeCAIan9YGu1mA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_uWXxyXysEeCAIan9YGu1mA" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_uWXxynysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_uWXxy3ysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_uWXxzHysEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uWXxzXysEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_uWXxznysEeCAIan9YGu1mA" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_ylzNUHyxEeCKy5kSqd4eVw" type="3013" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="fUMLlibrary.uml#_ylgSYHyxEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ylzNUXyxEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_5MZt4HyxEeCKy5kSqd4eVw" type="3013" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="fUMLlibrary.uml#_5MGy8HyxEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5MZt4XyxEeCKy5kSqd4eVw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_uWXxz3ysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_uWXx0HysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_uWXx0XysEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uWXx0nysEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_uWhiwHysEeCAIan9YGu1mA" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_uWhiwXysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_uWhiwnysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_uWhiw3ysEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uWhixHysEeCAIan9YGu1mA"/>
+ </children>
+ <element xmi:type="uml:Class" href="fUMLlibrary.uml#_uWOn0HysEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uWXxwXysEeCAIan9YGu1mA" x="540" y="200" width="316" height="71"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_woQU0HysEeCAIan9YGu1mA" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_woaF0HysEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_woaF0XysEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_woaF0nysEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_woaF03ysEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_woaF1HysEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_woaF1XysEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_woaF1nysEeCAIan9YGu1mA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_woaF13ysEeCAIan9YGu1mA" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_woaF2HysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_woaF2XysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_woaF2nysEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_woaF23ysEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_woaF3HysEeCAIan9YGu1mA" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_UVSmwHyyEeCKy5kSqd4eVw" type="3013" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="fUMLlibrary.uml#_UU_r0HyyEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UVSmwXyyEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kcKjsHyyEeCKy5kSqd4eVw" type="3013" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="fUMLlibrary.uml#_kb3owHyyEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kcKjsXyyEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tfYQoHyyEeCKy5kSqd4eVw" type="3013" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="fUMLlibrary.uml#_tfOfoHyyEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tfYQoXyyEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6rrS0HyyEeCKy5kSqd4eVw" type="3013" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="fUMLlibrary.uml#_6rYX4HyyEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6rrS0XyyEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BIvc4HyzEeCKy5kSqd4eVw" type="3013" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="fUMLlibrary.uml#_BIch8HyzEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BIvc4XyzEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_KimvQHyzEeCKy5kSqd4eVw" type="3013" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="fUMLlibrary.uml#_KiT0UHyzEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KimvQXyzEeCKy5kSqd4eVw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_woaF3XysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_woaF3nysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_woaF33ysEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_woaF4HysEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_woaF4XysEeCAIan9YGu1mA" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_woaF4nysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_woaF43ysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_woaF5HysEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_woaF5XysEeCAIan9YGu1mA"/>
+ </children>
+ <element xmi:type="uml:Class" href="fUMLlibrary.uml#_woHK4HysEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_woQU0XysEeCAIan9YGu1mA" x="195" y="335" width="336" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0He0wHysEeCAIan9YGu1mA" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0He0wnysEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0He0w3ysEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0He0xHysEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0He0xXysEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0He0xnysEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0He0x3ysEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0He0yHysEeCAIan9YGu1mA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0He0yXysEeCAIan9YGu1mA" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0He0ynysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0He0y3ysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0He0zHysEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0He0zXysEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0He0znysEeCAIan9YGu1mA" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_cXvk0HyzEeCKy5kSqd4eVw" type="3013" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="fUMLlibrary.uml#_cXcp4HyzEeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cXvk0XyzEeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FugRoHy0EeCKy5kSqd4eVw" type="3013" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="fUMLlibrary.uml#_FuNWsHy0EeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FugRoXy0EeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_MF54kHy0EeCKy5kSqd4eVw" type="3013" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="fUMLlibrary.uml#_MFm9oHy0EeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MF54kXy0EeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_RB9i4Hy0EeCKy5kSqd4eVw" type="3013" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="fUMLlibrary.uml#_RBqn8Hy0EeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RB9i4Xy0EeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_VB90oHy0EeCKy5kSqd4eVw" type="3013" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="fUMLlibrary.uml#_VBq5sHy0EeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VB90oXy0EeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_fc8lwHy0EeCKy5kSqd4eVw" type="3013" fontHeight="8" lineColor="0">
+ <element xmi:type="uml:Operation" href="fUMLlibrary.uml#_fcpq0Hy0EeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fc8lwXy0EeCKy5kSqd4eVw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0He0z3ysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0He00HysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0He00XysEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0He00nysEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0He003ysEeCAIan9YGu1mA" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0He01HysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0He01XysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0He01nysEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0He013ysEeCAIan9YGu1mA"/>
+ </children>
+ <element xmi:type="uml:Class" href="fUMLlibrary.uml#_0HVDwHysEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0He0wXysEeCAIan9YGu1mA" x="540" y="335" width="401" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_28hvQHysEeCAIan9YGu1mA" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_28hvQnysEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_28hvQ3ysEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_28hvRHysEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_28hvRXysEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_28hvRnysEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_28hvR3ysEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_28hvSHysEeCAIan9YGu1mA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_28hvSXysEeCAIan9YGu1mA" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_28hvSnysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_28hvS3ysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_28hvTHysEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_28hvTXysEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_28hvTnysEeCAIan9YGu1mA" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_28hvT3ysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_28hvUHysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_28hvUXysEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_28hvUnysEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_28hvU3ysEeCAIan9YGu1mA" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_28hvVHysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_28hvVXysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_28hvVnysEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_28hvV3ysEeCAIan9YGu1mA"/>
+ </children>
+ <element xmi:type="uml:Class" href="fUMLlibrary.uml#_28YlUHysEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_28hvQXysEeCAIan9YGu1mA" x="315" y="500" width="124"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_4_g6sHysEeCAIan9YGu1mA" type="2008" fontHeight="8" transparency="0" gradient="10011046, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4_g6snysEeCAIan9YGu1mA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4_g6s3ysEeCAIan9YGu1mA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4_g6tHysEeCAIan9YGu1mA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4_g6tXysEeCAIan9YGu1mA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4_g6tnysEeCAIan9YGu1mA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4_g6t3ysEeCAIan9YGu1mA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4_g6uHysEeCAIan9YGu1mA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4_g6uXysEeCAIan9YGu1mA" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4_g6unysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_4_g6u3ysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_4_g6vHysEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4_g6vXysEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4_g6vnysEeCAIan9YGu1mA" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4_g6v3ysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_4_g6wHysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_4_g6wXysEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4_g6wnysEeCAIan9YGu1mA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4_g6w3ysEeCAIan9YGu1mA" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4_g6xHysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_4_g6xXysEeCAIan9YGu1mA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_4_g6xnysEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4_g6x3ysEeCAIan9YGu1mA"/>
+ </children>
+ <element xmi:type="uml:Class" href="fUMLlibrary.uml#_4_NYsHysEeCAIan9YGu1mA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4_g6sXysEeCAIan9YGu1mA" x="630" y="500" width="137"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_ZvHPUXyrEeCAIan9YGu1mA"/>
+ <element xmi:type="uml:Package" href="fUMLlibrary.uml#_mBev8HyXEeCAIan9YGu1mA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_w6sPAHy0EeCKy5kSqd4eVw" type="4002" source="_ruvBIHysEeCAIan9YGu1mA" target="_a-rZwHyrEeCAIan9YGu1mA" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w6sPA3y0EeCKy5kSqd4eVw" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w6sPBHy0EeCKy5kSqd4eVw" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_w6sPAXy0EeCKy5kSqd4eVw" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="fUMLlibrary.uml#_w6PjEHy0EeCKy5kSqd4eVw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_w6sPAny0EeCKy5kSqd4eVw" points="[8, -8, 0, 135]$[8, -65, 0, 78]$[8, -65, 0, 78]$[8, -97, 0, 46]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w8LcwHy0EeCKy5kSqd4eVw" id="(0.48909657320872274,0.11267605633802817)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_xt838Hy0EeCKy5kSqd4eVw" type="4002" source="_lFdAAHysEeCAIan9YGu1mA" target="_a-rZwHyrEeCAIan9YGu1mA" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_xt8383y0EeCKy5kSqd4eVw" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xt839Hy0EeCKy5kSqd4eVw" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_xt838Xy0EeCKy5kSqd4eVw" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="fUMLlibrary.uml#_xtgMAHy0EeCKy5kSqd4eVw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_xt838ny0EeCKy5kSqd4eVw" points="[0, -4, -254, 95]$[0, -44, -254, 55]$[275, -44, 21, 55]$[275, -93, 21, 6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xuit0Hy0EeCKy5kSqd4eVw" id="(0.4712041884816754,0.056338028169014086)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xuit0Xy0EeCKy5kSqd4eVw" id="(0.3742690058479532,0.9340659340659341)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_yaWq8Hy0EeCKy5kSqd4eVw" type="4002" source="_uWXxwHysEeCAIan9YGu1mA" target="_a-rZwHyrEeCAIan9YGu1mA" routing="Tree" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_yaWq83y0EeCKy5kSqd4eVw" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yaWq9Hy0EeCKy5kSqd4eVw" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_yaWq8Xy0EeCKy5kSqd4eVw" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="fUMLlibrary.uml#_yZ5_AHy0EeCKy5kSqd4eVw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_yaWq8ny0EeCKy5kSqd4eVw" points="[0, -8, 292, 95]$[0, -48, 292, 55]$[-322, -48, -30, 55]$[-322, -97, -30, 6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ybGR0Hy0EeCKy5kSqd4eVw" id="(0.49683544303797467,0.11267605633802817)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ybGR0Xy0EeCKy5kSqd4eVw" id="(0.672514619883041,0.9340659340659341)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_6_BasHy0EeCKy5kSqd4eVw" type="4002" source="_woQU0HysEeCAIan9YGu1mA" target="_ruvBIHysEeCAIan9YGu1mA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_6_KkoHy0EeCKy5kSqd4eVw" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6_KkoXy0EeCKy5kSqd4eVw" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_6_BasXy0EeCKy5kSqd4eVw" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="fUMLlibrary.uml#_6-t4sHy0EeCKy5kSqd4eVw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_6_Basny0EeCKy5kSqd4eVw" points="[3, -5, 0, 80]$[7, -69, 4, 16]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6_xBkHy0EeCKy5kSqd4eVw" id="(0.5446428571428571,0.019801980198019802)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6_xBkXy0EeCKy5kSqd4eVw" id="(0.5171339563862928,0.7746478873239436)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8TzcUHy0EeCKy5kSqd4eVw" type="4002" source="_0He0wHysEeCAIan9YGu1mA" target="_uWXxwHysEeCAIan9YGu1mA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8TzcU3y0EeCKy5kSqd4eVw" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8TzcVHy0EeCKy5kSqd4eVw" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8TzcUXy0EeCKy5kSqd4eVw" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="fUMLlibrary.uml#_8TD1cHy0EeCKy5kSqd4eVw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8TzcUny0EeCKy5kSqd4eVw" points="[3, -4, 0, 73]$[3, -68, 0, 9]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8UjDMHy0EeCKy5kSqd4eVw" id="(0.3915211970074813,0.039603960396039604)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8UjDMXy0EeCKy5kSqd4eVw" id="(0.5063291139240507,0.8732394366197183)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_BLY2UHy1EeCKy5kSqd4eVw" type="4002" source="_28hvQHysEeCAIan9YGu1mA" target="_woQU0HysEeCAIan9YGu1mA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_BLY2U3y1EeCKy5kSqd4eVw" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BLY2VHy1EeCKy5kSqd4eVw" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_BLY2UXy1EeCKy5kSqd4eVw" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="fUMLlibrary.uml#_BLF7YHy1EeCKy5kSqd4eVw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BLY2Uny1EeCKy5kSqd4eVw" points="[4, -10, 0, 80]$[24, -74, 20, 16]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BL_TQHy1EeCKy5kSqd4eVw" id="(0.4435483870967742,0.1)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BL_TQXy1EeCKy5kSqd4eVw" id="(0.5505952380952381,0.9108910891089109)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_BzxsAHy1EeCKy5kSqd4eVw" type="4002" source="_4_g6sHysEeCAIan9YGu1mA" target="_0He0wHysEeCAIan9YGu1mA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_BzxsA3y1EeCKy5kSqd4eVw" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BzxsBHy1EeCKy5kSqd4eVw" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_BzxsAXy1EeCKy5kSqd4eVw" fontHeight="8"/>
+ <element xmi:type="uml:Generalization" href="fUMLlibrary.uml#_BzeKAHy1EeCKy5kSqd4eVw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BzxsAny1EeCKy5kSqd4eVw" points="[1, -8, 0, 83]$[-22, -72, -23, 19]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_B0Xh4Hy1EeCKy5kSqd4eVw" id="(0.5328467153284672,0.08)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_B0Xh4Xy1EeCKy5kSqd4eVw" id="(0.4089775561097257,0.8118811881188119)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_rdhe4Hy4EeCKy5kSqd4eVw" type="CompositeStructure" name="Foundational Model Library BasicInputOutput package: Predefined behaviors" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_tEfcsHy4EeCKy5kSqd4eVw" type="2060" fontHeight="8" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tEfcsny4EeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tEfcs3y4EeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tEfctHy4EeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tEfctXy4EeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tEfctny4EeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tEfct3y4EeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tEfcuHy4EeCKy5kSqd4eVw" type="5112"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tEfcuXy4EeCKy5kSqd4eVw" type="7063">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tEfcuny4EeCKy5kSqd4eVw" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tEfcu3y4EeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_4ii0YHy4EeCKy5kSqd4eVw" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4ii0Yny4EeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4ii0Y3y4EeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4ii0ZHy4EeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4ii0ZXy4EeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4ii0Zny4EeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4ii0Z3y4EeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4ii0aHy4EeCKy5kSqd4eVw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4ii0aXy4EeCKy5kSqd4eVw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4ii0any4EeCKy5kSqd4eVw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4ii0a3y4EeCKy5kSqd4eVw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_4X9VAHy4EeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4ii0YXy4EeCKy5kSqd4eVw" x="236" y="46" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BdtYkHy5EeCKy5kSqd4eVw" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BdtYkny5EeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BdtYk3y5EeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BdtYlHy5EeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BdtYlXy5EeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BdtYlny5EeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BdtYl3y5EeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BdtYmHy5EeCKy5kSqd4eVw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BdtYmXy5EeCKy5kSqd4eVw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BdtYmny5EeCKy5kSqd4eVw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BdtYm3y5EeCKy5kSqd4eVw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_BdadoHy5EeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BdtYkXy5EeCKy5kSqd4eVw" x="236" y="80" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:Activity" href="fUMLlibrary.uml#_tEWSwHy4EeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tEfcsXy4EeCKy5kSqd4eVw" x="95" y="115" width="246" height="116"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_KiRJUHy5EeCKy5kSqd4eVw" type="2060" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KiRJUny5EeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KiRJU3y5EeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KiRJVHy5EeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KiRJVXy5EeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KiRJVny5EeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KiRJV3y5EeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_KiRJWHy5EeCKy5kSqd4eVw" type="5112"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_KiRJWXy5EeCKy5kSqd4eVw" type="7063">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_KiRJWny5EeCKy5kSqd4eVw" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KiRJW3y5EeCKy5kSqd4eVw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_MBe5UHy5EeCKy5kSqd4eVw" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MBoqUHy5EeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MBoqUXy5EeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MBoqUny5EeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MBoqU3y5EeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MBoqVHy5EeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MBoqVXy5EeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MBoqVny5EeCKy5kSqd4eVw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MBoqV3y5EeCKy5kSqd4eVw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MBoqWHy5EeCKy5kSqd4eVw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MBoqWXy5EeCKy5kSqd4eVw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_MBVvYHy5EeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MBe5UXy5EeCKy5kSqd4eVw" x="-10" y="52" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TH1Q8Hy5EeCKy5kSqd4eVw" type="3088" fontHeight="8" transparency="0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TH1Q8ny5EeCKy5kSqd4eVw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TH1Q83y5EeCKy5kSqd4eVw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TH1Q9Hy5EeCKy5kSqd4eVw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TH1Q9Xy5EeCKy5kSqd4eVw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TH1Q9ny5EeCKy5kSqd4eVw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TH1Q93y5EeCKy5kSqd4eVw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TH1Q-Hy5EeCKy5kSqd4eVw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TH1Q-Xy5EeCKy5kSqd4eVw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TH1Q-ny5EeCKy5kSqd4eVw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TH1Q-3y5EeCKy5kSqd4eVw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Parameter" href="fUMLlibrary.uml#_THhu8Hy5EeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TH1Q8Xy5EeCKy5kSqd4eVw" x="236" y="55" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:Activity" href="fUMLlibrary.uml#_Kh-OYHy5EeCKy5kSqd4eVw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KiRJUXy5EeCKy5kSqd4eVw" x="95" y="280" width="246" height="106"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_rdhe4Xy4EeCKy5kSqd4eVw"/>
+ <element xmi:type="uml:Package" href="fUMLlibrary.uml#_mBev8HyXEeCAIan9YGu1mA"/>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/extraplugins/alf09/resources/fUMLlibrary.uml b/extraplugins/alf09/resources/fUMLlibrary.uml
new file mode 100644
index 00000000000..0a231f4b049
--- /dev/null
+++ b/extraplugins/alf09/resources/fUMLlibrary.uml
@@ -0,0 +1,983 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Standard="http://www.eclipse.org/uml2/schemas/Standard/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/3.0.0/UML">
+ <uml:Model xmi:id="_QP6hEHyXEeCAIan9YGu1mA" name="FoundationalModelLibrary">
+ <packageImport xmi:id="_T3oOoHyXEeCAIan9YGu1mA">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Package" xmi:id="_dNd8oHyXEeCAIan9YGu1mA" name="PrimitiveBehaviors">
+ <packageImport xmi:id="_ibjyIHyXEeCAIan9YGu1mA">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Package" xmi:id="_BPlgAHyYEeCAIan9YGu1mA" name="BooleanFunctions">
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_iJlb4HyYEeCAIan9YGu1mA" name="Or">
+ <ownedParameter xmi:id="_ncI6oHyYEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rCXacHyYEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rCD4cHyYEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_0E05cHyYEeCAIan9YGu1mA" name="y" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2pCioHyYEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2ovnsHyYEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_4xigMHyYEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_79PAIHyYEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_79F2MHyYEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="__Mg_kHyYEeCAIan9YGu1mA" name="Xor">
+ <ownedParameter xmi:id="__Mg_kXyYEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__Mg_knyYEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__Mg_k3yYEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__Mg_lHyYEeCAIan9YGu1mA" name="y" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__Mg_lXyYEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__Mg_lnyYEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__Mg_l3yYEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__Mg_mHyYEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__Mg_mXyYEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_LsHT0HyZEeCAIan9YGu1mA" name="And">
+ <ownedParameter xmi:id="_LsHT0XyZEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LsHT0nyZEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LsHT03yZEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_LsHT1HyZEeCAIan9YGu1mA" name="y" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LsHT1XyZEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LsHT1nyZEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_LsHT13yZEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LsHT2HyZEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LsHT2XyZEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_VBDp8HyZEeCAIan9YGu1mA" name="Not">
+ <ownedParameter xmi:id="_VBDp8XyZEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VBDp8nyZEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VBDp83yZEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_VBDp93yZEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VBDp-HyZEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VBDp-XyZEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_sAQwoHyZEeCAIan9YGu1mA" name="Implies">
+ <ownedParameter xmi:id="_sAQwoXyZEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sAQwonyZEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sAQwo3yZEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_sAQwpHyZEeCAIan9YGu1mA" name="y" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sAQwpXyZEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sAQwpnyZEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_sAQwp3yZEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sAQwqHyZEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sAQwqXyZEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_3q4LYHyeEeCAIan9YGu1mA" name="ToString">
+ <ownedParameter xmi:id="_3q4LYXyeEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3q4LYnyeEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3q4LY3yeEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_3q4LZHyeEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3q4LZXyeEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3q4LZnyeEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_L9g-IHyfEeCAIan9YGu1mA" name="ToBoolean">
+ <ownedParameter xmi:id="_L9g-IXyfEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_L9g-InyfEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_L9g-I3yfEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_L9g-JHyfEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_L9g-JXyfEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_L9g-JnyfEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_Coi3AHyYEeCAIan9YGu1mA" name="IntegerFunctions">
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_oeYhIHygEeCAIan9YGu1mA" name="Neg">
+ <ownedParameter xmi:id="_qPVhYHygEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sv0hIHygEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_svqwIHygEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_uvO0IHygEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_yesIcHygEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_yeiXcHygEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_96MicHygEeCAIan9YGu1mA" name="+">
+ <ownedParameter xmi:id="__m-NUHygEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BUffEHyhEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BUWVIHyhEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Coig4HyhEeCAIan9YGu1mA" name="y" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_EPNjwHyhEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EPDywHyhEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FadO4HyhEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_H5wi4HyhEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_H5mx4HyhEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_KKl9EHyhEeCAIan9YGu1mA" name="-">
+ <ownedParameter xmi:id="_KKl9EXyhEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KKl9EnyhEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KKl9E3yhEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_KKl9FHyhEeCAIan9YGu1mA" name="y" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KKl9FXyhEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KKl9FnyhEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_KKl9F3yhEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KKl9GHyhEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KKl9GXyhEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_2ff2AHyhEeCAIan9YGu1mA" name="*">
+ <ownedParameter xmi:id="_2ff2AXyhEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2ff2AnyhEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2ff2A3yhEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_2ff2BHyhEeCAIan9YGu1mA" name="y" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2ff2BXyhEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2ff2BnyhEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_2ff2B3yhEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2ff2CHyhEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2ff2CXyhEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_9xT2wHyhEeCAIan9YGu1mA" name="Abs">
+ <ownedParameter xmi:id="_9xT2wXyhEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9xT2wnyhEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9xT2w3yhEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_9xT2xHyhEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9xT2xXyhEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9xT2xnyhEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_aDhIIHyiEeCAIan9YGu1mA" name="Div">
+ <ownedParameter xmi:id="_aDhIIXyiEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aDhIInyiEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_aDhII3yiEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_aDhIJHyiEeCAIan9YGu1mA" name="y" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aDhIJXyiEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_aDhIJnyiEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_aDhIJ3yiEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aDhIKHyiEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_aDhIKXyiEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_kIpIkHyjEeCAIan9YGu1mA" name="Mod">
+ <ownedParameter xmi:id="_kIpIkXyjEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kIpIknyjEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kIpIk3yjEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kIpIlHyjEeCAIan9YGu1mA" name="y" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kIpIlXyjEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kIpIlnyjEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kIpIl3yjEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kIpImHyjEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kIpImXyjEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_tbNgIHyjEeCAIan9YGu1mA" name="Max">
+ <ownedParameter xmi:id="_tbNgIXyjEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tbNgInyjEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tbNgI3yjEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_tbNgJHyjEeCAIan9YGu1mA" name="y" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tbNgJXyjEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tbNgJnyjEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_tbNgJ3yjEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tbNgKHyjEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tbNgKXyjEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_2euIAHyjEeCAIan9YGu1mA" name="Min">
+ <ownedParameter xmi:id="_2euIAXyjEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2euIAnyjEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2euIA3yjEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_2euIBHyjEeCAIan9YGu1mA" name="y" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2euIBXyjEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2euIBnyjEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_2euIB3yjEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2euICHyjEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2euICXyjEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_Gd13IHykEeCAIan9YGu1mA" name="&lt;">
+ <ownedParameter xmi:id="_Gd13IXykEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Gd13InykEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Gd13I3ykEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Gd13JHykEeCAIan9YGu1mA" name="y" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Gd13JXykEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Gd13JnykEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Gd13J3ykEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Gd13KHykEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Gd13KXykEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_R44-IHykEeCAIan9YGu1mA" name=">">
+ <ownedParameter xmi:id="_R44-IXykEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_R44-InykEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_R44-I3ykEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_R44-JHykEeCAIan9YGu1mA" name="y" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_R44-JXykEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_R44-JnykEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_R44-J3ykEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_R44-KHykEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_R44-KXykEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_bUG7YHykEeCAIan9YGu1mA" name="&lt;=">
+ <ownedParameter xmi:id="_bUG7YXykEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_bUG7YnykEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bUG7Y3ykEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_bUG7ZHykEeCAIan9YGu1mA" name="y" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_bUG7ZXykEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bUG7ZnykEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_bUG7Z3ykEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_bUG7aHykEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bUG7aXykEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_kPAZ0HykEeCAIan9YGu1mA" name=">=">
+ <ownedParameter xmi:id="_kPAZ0XykEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kPAZ0nykEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kPAZ03ykEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kPAZ1HykEeCAIan9YGu1mA" name="y" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kPAZ1XykEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kPAZ1nykEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kPAZ13ykEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kPAZ2HykEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kPAZ2XykEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_tAgrsHykEeCAIan9YGu1mA" name="ToString">
+ <ownedParameter xmi:id="_tAgrsXykEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tAgrsnykEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tAgrs3ykEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_tAgrtHykEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tAgrtXykEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tAgrtnykEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_vEQFEHykEeCAIan9YGu1mA" name="ToUnlimitedNatural">
+ <ownedParameter xmi:id="_vEQFEXykEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_vEQFEnykEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_vEQFE3ykEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_vEQFFHykEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_vEQFFXykEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_vEQFFnykEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_xrcw0HykEeCAIan9YGu1mA" name="ToInteger">
+ <ownedParameter xmi:id="_xrcw0XykEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xrcw0nykEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xrcw03ykEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_xrcw1HykEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xrcw1XykEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xrcw1nykEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_FEacgHyYEeCAIan9YGu1mA" name="StringFunctions">
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_jCwzsHylEeCAIan9YGu1mA" name="Concat">
+ <ownedParameter xmi:id="_kosPsHylEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_miIdkHylEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mh1ioHylEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_n3XyMHylEeCAIan9YGu1mA" name="y" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_p6p4kHylEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_p6gHkHylEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_rv7YIHylEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tr6jsHylEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_trnBsHylEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_2weUcHylEeCAIan9YGu1mA" name="Size">
+ <ownedParameter xmi:id="_30HiwHylEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_5d6yIHylEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_5dxoMHylEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_6aRssHylEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9qJiAHylEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9p_xAHylEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_EMRyQHymEeCAIan9YGu1mA" name="Substring">
+ <ownedParameter xmi:id="_G3MgYHymEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JPVccHymEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JPChgHymEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_J_np4HymEeCAIan9YGu1mA" name="lower" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LnVOkHymEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LnCToHymEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_NN2gcHymEeCAIan9YGu1mA" name="upper" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PVwBEHymEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PVm3IHymEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_QzyFUHymEeCAIan9YGu1mA" name="result" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_US20QHymEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_USj5UHymEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_Gcx9oHyYEeCAIan9YGu1mA" name="UnlimitedNaturalFunctions">
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_lqywcHymEeCAIan9YGu1mA" name="Min">
+ <ownedParameter xmi:id="_lqywcXymEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lqywcnymEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lqywc3ymEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_lqywdHymEeCAIan9YGu1mA" name="y" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lqywdXymEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lqywdnymEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_lqywd3ymEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lqyweHymEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lqyweXymEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_lqywenymEeCAIan9YGu1mA" name="Max">
+ <ownedParameter xmi:id="_lqywe3ymEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lqywfHymEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lqywfXymEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_lqywfnymEeCAIan9YGu1mA" name="y" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lqywf3ymEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lqywgHymEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_lqywgXymEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lqywgnymEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lqywg3ymEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_lqywhHymEeCAIan9YGu1mA" name=">">
+ <ownedParameter xmi:id="_lqywhXymEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lqywhnymEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lqywh3ymEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_lqywiHymEeCAIan9YGu1mA" name="y" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lqywiXymEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lqywinymEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_lqywi3ymEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lqywjHymEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lqywjXymEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_lqywjnymEeCAIan9YGu1mA" name=">=">
+ <ownedParameter xmi:id="_lqywj3ymEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lqywkHymEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lqywkXymEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_lqywknymEeCAIan9YGu1mA" name="y" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lqywk3ymEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lqywlHymEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_lqywlXymEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lqywlnymEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lqywl3ymEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_lqywmHymEeCAIan9YGu1mA" name="&lt;">
+ <ownedParameter xmi:id="_lqywmXymEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lqywmnymEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lqywm3ymEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_lqywnHymEeCAIan9YGu1mA" name="y" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lqywnXymEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lqywnnymEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_lqywn3ymEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lqywoHymEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lqywoXymEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_lqywonymEeCAIan9YGu1mA" name="&lt;=">
+ <ownedParameter xmi:id="_lqywo3ymEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lqywpHymEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lqywpXymEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_lqywpnymEeCAIan9YGu1mA" name="y" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lqywp3ymEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lqywqHymEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_lqywqXymEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lqywqnymEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lqywq3ymEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_oj32YHymEeCAIan9YGu1mA" name="ToInteger">
+ <ownedParameter xmi:id="_oj32YXymEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oj32YnymEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oj32Y3ymEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_oj32ZHymEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oj32ZXymEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oj32ZnymEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_oj32Z3ymEeCAIan9YGu1mA" name="ToUnlimitedNatural">
+ <ownedParameter xmi:id="_oj32aHymEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oj32aXymEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oj32anymEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_oj32a3ymEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oj32bHymEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oj32bXymEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_oj32bnymEeCAIan9YGu1mA" name="ToString">
+ <ownedParameter xmi:id="_oj32b3ymEeCAIan9YGu1mA" name="x" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oj32cHymEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oj32cXymEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_oj32cnymEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oj32c3ymEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oj32dHymEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_IgNN8HyYEeCAIan9YGu1mA" name="ListFunctions">
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_C57SMHypEeCAIan9YGu1mA" name="ListSize">
+ <ownedParameter xmi:id="_EXW5gHypEeCAIan9YGu1mA" name="list" visibility="public" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GKY9YHypEeCAIan9YGu1mA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GKPzcHypEeCAIan9YGu1mA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_HE9IMHypEeCAIan9YGu1mA" name="result" visibility="public" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JuYokHypEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JuO3kHypEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:FunctionBehavior" xmi:id="_Ru14AHypEeCAIan9YGu1mA" name="ListGet">
+ <ownedParameter xmi:id="_UehxYHypEeCAIan9YGu1mA" name="list" visibility="public" isOrdered="true" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XZYY8HypEeCAIan9YGu1mA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XZFeAHypEeCAIan9YGu1mA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Z53_wHypEeCAIan9YGu1mA" name="index" visibility="public" isOrdered="true" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_bUUkgHypEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bULakHypEeCAIan9YGu1mA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_cFpTwHypEeCAIan9YGu1mA" name="result" visibility="public" isOrdered="true" direction="return" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ftgyUHypEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ftXBUHypEeCAIan9YGu1mA"/>
+ </ownedParameter>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_j_Y8YHyXEeCAIan9YGu1mA" name="Common">
+ <ownedComment xmi:id="_i-MDcHyqEeCAIan9YGu1mA" annotatedElement="_WqW6UHyqEeCAIan9YGu1mA">
+ <body>This class is active</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Signal" xmi:id="_Czk9IHyqEeCAIan9YGu1mA" name="Notification">
+ <ownedAttribute xmi:id="_EtK8AHyqEeCAIan9YGu1mA" name="content" visibility="public" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_EtUtAXyqEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EtUtAHyqEeCAIan9YGu1mA"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_JIcNcHyqEeCAIan9YGu1mA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_WqW6UHyqEeCAIan9YGu1mA" name="Listener" isActive="true">
+ <ownedReception xmi:id="_ZUiBkHyqEeCAIan9YGu1mA" name="Notification" signal="_Czk9IHyqEeCAIan9YGu1mA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_sADskHyqEeCAIan9YGu1mA" name="Status">
+ <ownedAttribute xmi:id="_urkQkHyqEeCAIan9YGu1mA" name="context" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w9vukHyqEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w9mkoHyqEeCAIan9YGu1mA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_w-f8gHyqEeCAIan9YGu1mA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_xwahoHyqEeCAIan9YGu1mA" name="code" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_000GwHyqEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_00qVwHyqEeCAIan9YGu1mA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_01jtoHyqEeCAIan9YGu1mA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_1hN5wHyqEeCAIan9YGu1mA" name="description" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3UjfoHyqEeCAIan9YGu1mA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3UZuoHyqEeCAIan9YGu1mA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_3VALkHyqEeCAIan9YGu1mA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_mBev8HyXEeCAIan9YGu1mA" name="BasicInputOutput">
+ <packageImport xmi:id="_pcFOkHyXEeCAIan9YGu1mA" importedPackage="_j_Y8YHyXEeCAIan9YGu1mA"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_a-Ye0HyrEeCAIan9YGu1mA" name="Channel" isAbstract="true">
+ <ownedOperation xmi:id="_8w6IsHysEeCAIan9YGu1mA" name="getName" visibility="public" isAbstract="true">
+ <ownedComment xmi:id="_-6wKEHysEeCAIan9YGu1mA">
+ <body>&lt;&lt;TextualRepresentation>>public abstract getName () : FoundationalModelLibrary::String ;</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_6th3gHyzEeCKy5kSqd4eVw" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6th3gnyzEeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6th3gXyzEeCKy5kSqd4eVw" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ZKbGgHyuEeCKy5kSqd4eVw" name="open" visibility="public" isAbstract="true">
+ <ownedComment xmi:id="_YlQ5E3ywEeCKy5kSqd4eVw">
+ <body>&lt;&lt;TextualRepresentation>>public abstract open (out errorStatus : FoundationalModelLibrary::Common::Status [0..1]) ;</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_8NMTcHyzEeCKy5kSqd4eVw" name="errorStatus" type="_sADskHyqEeCAIan9YGu1mA" direction="out">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8NWEcHyzEeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8NMTcXyzEeCKy5kSqd4eVw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_f-PRwHywEeCKy5kSqd4eVw" name="close" visibility="public" isAbstract="true">
+ <ownedComment xmi:id="_mENKcXywEeCKy5kSqd4eVw">
+ <body>&lt;&lt;TextualRepresentation>>public abstract close (out errorStatus : FoundationalModelLibrary::Common::Status [0..1]) ;</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_9mmWYHyzEeCKy5kSqd4eVw" name="errorStatus" type="_sADskHyqEeCAIan9YGu1mA" direction="out">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9mwHYXyzEeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9mwHYHyzEeCKy5kSqd4eVw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_nLSHQHywEeCKy5kSqd4eVw" name="isOpen" visibility="public" isAbstract="true">
+ <ownedComment xmi:id="_qoa8gXywEeCKy5kSqd4eVw">
+ <body>&lt;&lt;TextualRepresentation>>public abstract isOpen () : FoundationalModelLibrary::Boolean ;</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_-1H_AHyzEeCKy5kSqd4eVw" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-1RwAHyzEeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-1H_AXyzEeCKy5kSqd4eVw" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_sHfikHywEeCKy5kSqd4eVw" name="getStatus" visibility="public" isAbstract="true">
+ <ownedComment xmi:id="_uUKOc3ywEeCKy5kSqd4eVw">
+ <body>&lt;&lt;TextualRepresentation>>public abstract getStatus () : FoundationalModelLibrary::Common::Status ;</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_AHPHIHy0EeCKy5kSqd4eVw" type="_sADskHyqEeCAIan9YGu1mA" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_AHPHIny0EeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_AHPHIXy0EeCKy5kSqd4eVw" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_lFTPAHysEeCAIan9YGu1mA" name="ActiveChannel" isAbstract="true" isActive="true">
+ <generalization xmi:id="_xtgMAHy0EeCKy5kSqd4eVw" general="_a-Ye0HyrEeCAIan9YGu1mA"/>
+ <ownedOperation xmi:id="_y_0sUHywEeCKy5kSqd4eVw" name="register" visibility="public">
+ <ownedComment xmi:id="_3Nip83ywEeCKy5kSqd4eVw">
+ <body>&lt;&lt;TextualRepresentation>>public register (in listener : FoundationalModelLibrary::Common::Listener) { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_GxFjMH1oEeC7sd2oPfE5-w" name="listener" type="_WqW6UHyqEeCAIan9YGu1mA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GxFjMn1oEeC7sd2oPfE5-w" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GxFjMX1oEeC7sd2oPfE5-w" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_8_YswHywEeCKy5kSqd4eVw" name="unregister" visibility="public">
+ <ownedComment xmi:id="_ANnjUHyxEeCKy5kSqd4eVw">
+ <body>&lt;&lt;TextualRepresentation>>public unregister (in listener : FoundationalModelLibrary::Common::Listener) { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_ANeZYHyxEeCKy5kSqd4eVw" name="listener" type="_WqW6UHyqEeCAIan9YGu1mA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ANeZYnyxEeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ANeZYXyxEeCKy5kSqd4eVw" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_rulQIHysEeCAIan9YGu1mA" name="InputChannel" isAbstract="true">
+ <generalization xmi:id="_w6PjEHy0EeCKy5kSqd4eVw" general="_a-Ye0HyrEeCAIan9YGu1mA"/>
+ <ownedOperation xmi:id="_Gtz54HyxEeCKy5kSqd4eVw" name="hasMore" visibility="public" isAbstract="true">
+ <ownedComment xmi:id="_JrpkA3yxEeCKy5kSqd4eVw">
+ <body>&lt;&lt;TextualRepresentation>>public abstract hasMore () : FoundationalModelLibrary::Boolean ;</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_xDuEoHyzEeCKy5kSqd4eVw" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xDuEonyzEeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xDuEoXyzEeCKy5kSqd4eVw" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_KaJBsHyxEeCKy5kSqd4eVw" name="read" visibility="public" isAbstract="true">
+ <ownedComment xmi:id="_YyJpEXyxEeCKy5kSqd4eVw">
+ <body>&lt;&lt;TextualRepresentation>>public abstract read(out value : any [0..1], out errorStatus : FoundationalModelLibrary::Common::Status [0..1]) ;</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_2H03sHyzEeCKy5kSqd4eVw" name="value" direction="out">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2H-BoXyzEeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2H-BoHyzEeCKy5kSqd4eVw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_2H-BonyzEeCKy5kSqd4eVw" name="errorStatus" type="_sADskHyqEeCAIan9YGu1mA" direction="out">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2IHyoHyzEeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2H-Bo3yzEeCKy5kSqd4eVw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_bK5CEHyxEeCKy5kSqd4eVw" name="peek" visibility="public" isAbstract="true">
+ <ownedComment xmi:id="_g9Lw03yxEeCKy5kSqd4eVw">
+ <body>&lt;&lt;TextualRepresentation>>public abstract peek (out value : any [0..1], out errorStatus : FoundationalModelLibrary::Common::Status [0..1]) ;</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_350ZwHyzEeCKy5kSqd4eVw" name="value" direction="out">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_359jsXyzEeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_359jsHyzEeCKy5kSqd4eVw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_359jsnyzEeCKy5kSqd4eVw" name="errorStatus" type="_sADskHyqEeCAIan9YGu1mA" direction="out">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_36HUsHyzEeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_359js3yzEeCKy5kSqd4eVw"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_uWOn0HysEeCAIan9YGu1mA" name="OutputChannel" isAbstract="true">
+ <generalization xmi:id="_yZ5_AHy0EeCKy5kSqd4eVw" general="_a-Ye0HyrEeCAIan9YGu1mA"/>
+ <ownedOperation xmi:id="_ylgSYHyxEeCKy5kSqd4eVw" name="isFull" visibility="public" isAbstract="true">
+ <ownedComment xmi:id="_3yGTEnyxEeCKy5kSqd4eVw">
+ <body>&lt;&lt;TextualRepresentation>>public abstract isFull () : FoundationalModelLibrary::Boolean ;</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_BZMeQHy0EeCKy5kSqd4eVw" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BZVoMHy0EeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BZMeQXy0EeCKy5kSqd4eVw" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_5MGy8HyxEeCKy5kSqd4eVw" name="write" visibility="public" isAbstract="true">
+ <ownedComment xmi:id="_69WuIHyxEeCKy5kSqd4eVw">
+ <body>&lt;&lt;TextualRepresentation>>public abstract write (in value : any, out errorStatus : FoundationalModelLibrary::Common::Status [0..1]) ;</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_ClCmUHy0EeCKy5kSqd4eVw" name="value">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ClMXUXy0EeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ClMXUHy0EeCKy5kSqd4eVw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_ClMXUny0EeCKy5kSqd4eVw" name="errorStatus" type="_sADskHyqEeCAIan9YGu1mA" direction="out">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ClMXVHy0EeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ClMXU3y0EeCKy5kSqd4eVw"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_woHK4HysEeCAIan9YGu1mA" name="TextInputChannel" isAbstract="true">
+ <generalization xmi:id="_6-t4sHy0EeCKy5kSqd4eVw" general="_rulQIHysEeCAIan9YGu1mA"/>
+ <ownedOperation xmi:id="_UU_r0HyyEeCKy5kSqd4eVw" name="readCharacter" visibility="public">
+ <ownedComment xmi:id="_c3a_4HyyEeCKy5kSqd4eVw">
+ <body>&lt;&lt;TextualRepresentation>>public readCharacter (out errorStatus : FoundationalModelLibrary::Common::Status [0..1]) : FoundationalModelLibrary::String [0..1] { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_d6VOYHyyEeCKy5kSqd4eVw" name="errorStatus" type="_sADskHyqEeCAIan9YGu1mA" direction="out">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_d6VOYnyyEeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_d6VOYXyyEeCKy5kSqd4eVw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_d6e_YHyyEeCKy5kSqd4eVw" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_d6e_YnyyEeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_d6e_YXyyEeCKy5kSqd4eVw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kb3owHyyEeCKy5kSqd4eVw" name="peekCharacter" visibility="public">
+ <ownedComment xmi:id="_r9eZAHyyEeCKy5kSqd4eVw">
+ <body>&lt;&lt;TextualRepresentation>>public peekCharacter (out errorStatus : FoundationalModelLibrary::Common::Status [0..1]) : FoundationalModelLibrary::String [0..1] { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_r-N_4HyyEeCKy5kSqd4eVw" name="errorStatus" type="_sADskHyqEeCAIan9YGu1mA" direction="out">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_r-N_4nyyEeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_r-N_4XyyEeCKy5kSqd4eVw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_r-N_43yyEeCKy5kSqd4eVw" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_r-Xw4XyyEeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_r-Xw4HyyEeCKy5kSqd4eVw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_tfOfoHyyEeCKy5kSqd4eVw" name="readLine" visibility="public">
+ <ownedComment xmi:id="_3nIjwHyyEeCKy5kSqd4eVw">
+ <body>&lt;&lt;TextualRepresentation>>public readLine(out errorStatus : FoundationalModelLibrary::Common::Status [0..1] ) : FoundationalModelLibrary::String { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_3nuZoHyyEeCKy5kSqd4eVw" name="errorStatus" type="_sADskHyqEeCAIan9YGu1mA" direction="out">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3n4KoXyyEeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3n4KoHyyEeCKy5kSqd4eVw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_3n4KonyyEeCKy5kSqd4eVw" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3oB7oHyyEeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3n4Ko3yyEeCKy5kSqd4eVw" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_6rYX4HyyEeCKy5kSqd4eVw" name="readInteger" visibility="public">
+ <ownedComment xmi:id="_AW-Bs3yzEeCKy5kSqd4eVw">
+ <body>&lt;&lt;TextualRepresentation>>public readInteger (out errorStatus : FoundationalModelLibrary::Common::Status [0..1]) : FoundationalModelLibrary::Integer [0..1] { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_AXuPoHyzEeCKy5kSqd4eVw" name="errorStatus" type="_sADskHyqEeCAIan9YGu1mA" direction="out">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_AX3ZkXyzEeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_AX3ZkHyzEeCKy5kSqd4eVw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_AX3ZknyzEeCKy5kSqd4eVw" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_AX3ZlHyzEeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_AX3Zk3yzEeCKy5kSqd4eVw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BIch8HyzEeCKy5kSqd4eVw" name="readBoolean" visibility="public">
+ <ownedComment xmi:id="_JZl4wnyzEeCKy5kSqd4eVw">
+ <body>&lt;&lt;TextualRepresentation>>public readBoolean (out errorStatus : FoundationalModelLibrary::Common::Status [0..1]) : FoundationalModelLibrary::Boolean [0..1] { }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_JZcHwHyzEeCKy5kSqd4eVw" name="errorStatus" type="_sADskHyqEeCAIan9YGu1mA" direction="out">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JZcHwnyzEeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JZcHwXyzEeCKy5kSqd4eVw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_JZcHw3yzEeCKy5kSqd4eVw" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JZl4wXyzEeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JZl4wHyzEeCKy5kSqd4eVw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_KiT0UHyzEeCKy5kSqd4eVw" name="readUnlimitedNatural" visibility="public">
+ <ownedComment xmi:id="_SMaZQnyzEeCKy5kSqd4eVw">
+ <body>&lt;&lt;TextualRepresentation>>public readUnlimitedNatural (out errorStatus : FoundationalModelLibrary::Common::Status [0..1]) : FoundationalModelLibrary::UnlimitedNatural [0..1] {}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_SMQoQHyzEeCKy5kSqd4eVw" name="errorStatus" type="_sADskHyqEeCAIan9YGu1mA" direction="out">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SMQoQnyzEeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SMQoQXyzEeCKy5kSqd4eVw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_SMQoQ3yzEeCKy5kSqd4eVw" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SMaZQXyzEeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SMaZQHyzEeCKy5kSqd4eVw"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_0HVDwHysEeCAIan9YGu1mA" name="TextOutputChannel" isAbstract="true">
+ <generalization xmi:id="_8TD1cHy0EeCKy5kSqd4eVw" general="_uWOn0HysEeCAIan9YGu1mA"/>
+ <ownedOperation xmi:id="_cXcp4HyzEeCKy5kSqd4eVw" name="writeString" visibility="public">
+ <ownedComment xmi:id="_mKfRQ3yzEeCKy5kSqd4eVw">
+ <body>&lt;&lt;TextualRepresentation>>public writeString (in value : FoundationalModelLibrary::String, out errorStatus : FoundationalModelLibrary::Common::Status [0..1]) {}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_nChFcHyzEeCKy5kSqd4eVw" name="value">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nCq2cXyzEeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nCq2cHyzEeCKy5kSqd4eVw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nCq2cnyzEeCKy5kSqd4eVw" name="errorStatus" type="_sADskHyqEeCAIan9YGu1mA" direction="out">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nCq2dHyzEeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nCq2c3yzEeCKy5kSqd4eVw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_FuNWsHy0EeCKy5kSqd4eVw" name="writeNewLine" visibility="public" isAbstract="true">
+ <ownedComment xmi:id="_KP4yI3y0EeCKy5kSqd4eVw">
+ <body>&lt;&lt;TextualRepresentation>>public abstract writeNewLine (out errorStatus : FoundationalModelLibrary::Common::Status [0..1]) ;</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_KQoZAHy0EeCKy5kSqd4eVw" name="errorStatus" type="_sADskHyqEeCAIan9YGu1mA" direction="out">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KQyKAHy0EeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KQoZAXy0EeCKy5kSqd4eVw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_MFm9oHy0EeCKy5kSqd4eVw" name="writeLine" visibility="public">
+ <ownedComment xmi:id="_P5_OMXy0EeCKy5kSqd4eVw">
+ <body>&lt;&lt;TextualRepresentation>>public writeLine (in value : FoundationalModelLibrary::String, out errorStatus : FoundationalModelLibrary::Common::Status [0..1]) {}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_P6u1EHy0EeCKy5kSqd4eVw" name="value">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_P6u1Eny0EeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_P6u1EXy0EeCKy5kSqd4eVw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_P6u1E3y0EeCKy5kSqd4eVw" name="errorStatus" type="_sADskHyqEeCAIan9YGu1mA" direction="out">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_P64mEXy0EeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_P64mEHy0EeCKy5kSqd4eVw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_RBqn8Hy0EeCKy5kSqd4eVw" name="writeInteger" visibility="public">
+ <ownedComment xmi:id="_Uef7MHy0EeCKy5kSqd4eVw">
+ <body>&lt;&lt;TextualRepresentation>>public writeInteger (in value : FoundationalModelLibrary::Integer, out errorStatus : FoundationalModelLibrary::Common::Status [0..1]) {}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_UfidAHy0EeCKy5kSqd4eVw" name="value">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UfsOAXy0EeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UfsOAHy0EeCKy5kSqd4eVw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_UfsOAny0EeCKy5kSqd4eVw" name="errorStatus" type="_sADskHyqEeCAIan9YGu1mA" direction="out">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UfsOBHy0EeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UfsOA3y0EeCKy5kSqd4eVw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_VBq5sHy0EeCKy5kSqd4eVw" name="writeBoolean" visibility="public">
+ <ownedComment xmi:id="_Xic0YHy0EeCKy5kSqd4eVw">
+ <body>&lt;&lt;TextualRepresentation>>public writeBoolean (in value : FoundationalModelLibrary::Boolean, out errorStatus : FoundationalModelLibrary::Common::Status [0..1]) {}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_XjMbQHy0EeCKy5kSqd4eVw" name="value">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XjMbQny0EeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XjMbQXy0EeCKy5kSqd4eVw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_XjWMQHy0EeCKy5kSqd4eVw" name="errorStatus" type="_sADskHyqEeCAIan9YGu1mA" direction="out">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XjWMQny0EeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XjWMQXy0EeCKy5kSqd4eVw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_fcpq0Hy0EeCKy5kSqd4eVw" name="writeUnlimitedNatural" visibility="public">
+ <ownedComment xmi:id="_jW_ZcHy0EeCKy5kSqd4eVw">
+ <body>&lt;&lt;TextualRepresentation>>public writeUnlimitedNatural (in value : FoundationalModelLibrary::UnlimitedNatural, out errorStatus : FoundationalModelLibrary::Common::Status [0..1]) {}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_jYenMHy0EeCKy5kSqd4eVw" name="value">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jYenMny0EeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jYenMXy0EeCKy5kSqd4eVw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_jYenM3y0EeCKy5kSqd4eVw" name="errorStatus" type="_sADskHyqEeCAIan9YGu1mA" direction="out">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jYoYMXy0EeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jYoYMHy0EeCKy5kSqd4eVw"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_28YlUHysEeCAIan9YGu1mA" name="StandardInputChannel" isAbstract="true">
+ <generalization xmi:id="_BLF7YHy1EeCKy5kSqd4eVw" general="_woHK4HysEeCAIan9YGu1mA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_4_NYsHysEeCAIan9YGu1mA" name="StandardOutputChannel" isAbstract="true">
+ <generalization xmi:id="_BzeKAHy1EeCKy5kSqd4eVw" general="_0HVDwHysEeCAIan9YGu1mA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Activity" xmi:id="_tEWSwHy4EeCKy5kSqd4eVw" name="ReadLine">
+ <ownedParameter xmi:id="_4X9VAHy4EeCKy5kSqd4eVw" name="result" visibility="public" direction="out" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__7W1AHy4EeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__7D6EHy4EeCKy5kSqd4eVw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_BdadoHy5EeCKy5kSqd4eVw" name="errorStatus" visibility="public" type="_sADskHyqEeCAIan9YGu1mA" direction="out" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Gb2tkHy5EeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Gbs8kHy5EeCKy5kSqd4eVw"/>
+ </ownedParameter>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_4iZDYHy4EeCKy5kSqd4eVw" name="Parameter0" parameter="_4X9VAHy4EeCKy5kSqd4eVw">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </node>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_BdadoXy5EeCKy5kSqd4eVw" name="Parameter1" type="_sADskHyqEeCAIan9YGu1mA" parameter="_BdadoHy5EeCKy5kSqd4eVw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Activity" xmi:id="_Kh-OYHy5EeCKy5kSqd4eVw" name="WriteLine">
+ <ownedParameter xmi:id="_MBVvYHy5EeCKy5kSqd4eVw" name="value" visibility="public" effect="create">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_N26J4Hy5EeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_N2wY4Hy5EeCKy5kSqd4eVw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_THhu8Hy5EeCKy5kSqd4eVw" name="errorStatus" visibility="public" type="_sADskHyqEeCAIan9YGu1mA" direction="out" effect="create">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XlCcEHy5EeCKy5kSqd4eVw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Xk5SIHy5EeCKy5kSqd4eVw"/>
+ </ownedParameter>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_MBVvYXy5EeCKy5kSqd4eVw" name="Parameter0" parameter="_MBVvYHy5EeCKy5kSqd4eVw">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </node>
+ <node xmi:type="uml:ActivityParameterNode" xmi:id="_THhu8Xy5EeCKy5kSqd4eVw" name="Parameter1" type="_sADskHyqEeCAIan9YGu1mA" parameter="_THhu8Hy5EeCKy5kSqd4eVw"/>
+ </packagedElement>
+ </packagedElement>
+ <profileApplication xmi:id="_2fttoH0_EeCKy5kSqd4eVw">
+ <eAnnotations xmi:id="_2uUKUH0_EeCKy5kSqd4eVw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/schemas/Standard/1#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ </uml:Model>
+ <Standard:ModelLibrary xmi:id="_3to5UH0_EeCKy5kSqd4eVw" base_Package="_QP6hEHyXEeCAIan9YGu1mA"/>
+</xmi:XMI>
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/AbstractAlfRuntimeModule.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/AbstractAlfRuntimeModule.java
new file mode 100644
index 00000000000..f7fbdfdce2d
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/AbstractAlfRuntimeModule.java
@@ -0,0 +1,117 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.papyrus.alf;
+
+import java.util.Properties;
+
+import org.eclipse.xtext.Constants;
+import org.eclipse.xtext.service.DefaultRuntimeModule;
+
+import com.google.inject.Binder;
+import com.google.inject.name.Names;
+
+/**
+ * Manual modifications go to {org.eclipse.papyrus.alf.AlfRuntimeModule}
+ */
+ @SuppressWarnings("all")
+public abstract class AbstractAlfRuntimeModule extends DefaultRuntimeModule {
+
+ protected Properties properties = null;
+
+ @Override
+ public void configure(Binder binder) {
+ properties = tryBindProperties(binder, "org/eclipse/papyrus/alf/Alf.properties");
+ super.configure(binder);
+ }
+
+ public void configureLanguageName(Binder binder) {
+ binder.bind(String.class).annotatedWith(Names.named(Constants.LANGUAGE_NAME)).toInstance("org.eclipse.papyrus.alf.Alf");
+ }
+
+ public void configureFileExtensions(Binder binder) {
+ if (properties == null || properties.getProperty(Constants.FILE_EXTENSIONS) == null)
+ binder.bind(String.class).annotatedWith(Names.named(Constants.FILE_EXTENSIONS)).toInstance("alf");
+ }
+
+ // contributed by org.eclipse.xtext.generator.grammarAccess.GrammarAccessFragment
+ public Class<? extends org.eclipse.xtext.IGrammarAccess> bindIGrammarAccess() {
+ return org.eclipse.papyrus.alf.services.AlfGrammarAccess.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parseTreeConstructor.ParseTreeConstructorFragment
+ public Class<? extends org.eclipse.xtext.parsetree.reconstr.IParseTreeConstructor> bindIParseTreeConstructor() {
+ return org.eclipse.papyrus.alf.parseTreeConstruction.AlfParsetreeConstructor.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.IParser> bindIParser() {
+ return org.eclipse.papyrus.alf.parser.antlr.AlfParser.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.ITokenToStringConverter> bindITokenToStringConverter() {
+ return org.eclipse.xtext.parser.antlr.AntlrTokenToStringConverter.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider> bindIAntlrTokenFileProvider() {
+ return org.eclipse.papyrus.alf.parser.antlr.AlfAntlrTokenFileProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.antlr.Lexer> bindLexer() {
+ return org.eclipse.papyrus.alf.parser.antlr.internal.InternalAlfLexer.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public com.google.inject.Provider<org.eclipse.papyrus.alf.parser.antlr.internal.InternalAlfLexer> provideInternalAlfLexer() {
+ return org.eclipse.xtext.parser.antlr.LexerProvider.create(org.eclipse.papyrus.alf.parser.antlr.internal.InternalAlfLexer.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public void configureRuntimeLexer(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.parser.antlr.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.parser.antlr.LexerBindings.RUNTIME)).to(org.eclipse.papyrus.alf.parser.antlr.internal.InternalAlfLexer.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.antlr.ITokenDefProvider> bindITokenDefProvider() {
+ return org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.validation.JavaValidatorFragment
+ @org.eclipse.xtext.service.SingletonBinding(eager=true) public Class<? extends org.eclipse.papyrus.alf.validation.AlfJavaValidator> bindAlfJavaValidator() {
+ return org.eclipse.papyrus.alf.validation.AlfJavaValidator.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment
+ public Class<? extends org.eclipse.xtext.scoping.IScopeProvider> bindIScopeProvider() {
+ return org.eclipse.papyrus.alf.scoping.AlfScopeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment
+ public void configureIScopeProviderDelegate(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.scoping.IScopeProvider.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider.NAMED_DELEGATE)).to(org.eclipse.xtext.scoping.impl.SimpleLocalScopeProvider.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment
+ public Class<? extends org.eclipse.xtext.scoping.IGlobalScopeProvider> bindIGlobalScopeProvider() {
+ return org.eclipse.xtext.scoping.impl.ImportUriGlobalScopeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment
+ public void configureIgnoreCaseLinking(com.google.inject.Binder binder) {
+ binder.bindConstant().annotatedWith(org.eclipse.xtext.scoping.IgnoreCaseLinking.class).to(false);
+ }
+
+ // contributed by org.eclipse.xtext.generator.exporting.SimpleNamesFragment
+ public Class<? extends org.eclipse.xtext.naming.IQualifiedNameProvider> bindIQualifiedNameProvider() {
+ return org.eclipse.xtext.naming.SimpleNameProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.formatting.FormatterFragment
+ public Class<? extends org.eclipse.xtext.formatting.IFormatter> bindIFormatter() {
+ return org.eclipse.papyrus.alf.formatting.AlfFormatter.class;
+ }
+
+}
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/Alf.ecore b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/Alf.ecore
new file mode 100644
index 00000000000..e92a527cd6a
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/Alf.ecore
@@ -0,0 +1,559 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="alf"
+ nsURI="http://www.eclipse.org/papyrus/alf/Alf" nsPrefix="alf">
+ <eClassifiers xsi:type="ecore:EClass" name="Test">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expression" upperBound="-1"
+ eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Expression"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="assignExpression" upperBound="-1"
+ eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AssignmentCompletion"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="statements" upperBound="-1"
+ eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Statement"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="block" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Block"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LITERAL" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ValueSpecification"/>
+ <eClassifiers xsi:type="ecore:EClass" name="BOOLEAN_LITERAL" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//LITERAL">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EEnum platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//BooleanValue"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="BooleanValue">
+ <eLiterals name="TRUE" literal="true"/>
+ <eLiterals name="FALSE" value="1" literal="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NUMBER_LITERAL" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//LITERAL">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="INTEGER_LITERAL" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NUMBER_LITERAL"/>
+ <eClassifiers xsi:type="ecore:EClass" name="UNLIMITED_LITERAL" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NUMBER_LITERAL"/>
+ <eClassifiers xsi:type="ecore:EClass" name="STRING_LITERAL" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//LITERAL">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NameExpression" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ValueSpecification platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NonLiteralValueSpecification">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="prefixOp" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="path" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//QualifiedNamePath"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="invocationCompletion" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Tuple"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sequenceConstructionCompletion"
+ eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceConstructionOrAccessCompletion"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="postfixOp" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="suffix" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SuffixExpression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="QualifiedNamePath">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="namespace" upperBound="-1"
+ eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//UnqualifiedName"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="UnqualifiedName">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="templateBinding" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//TemplateBinding"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TemplateBinding">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="bindings" upperBound="-1"
+ eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NamedTemplateBinding"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NamedTemplateBinding">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="formal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="actual" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//QualifiedNameWithBinding"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="QualifiedNameWithBinding">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="binding" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//TemplateBinding"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="remaining" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//QualifiedNameWithBinding"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Tuple">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="tupleElements" upperBound="-1"
+ eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//TupleElement"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TupleElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="argument" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Expression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Expression" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceElement"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ConditionalTestExpression" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Expression">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="exp" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ConditionalOrExpression"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="whenTrue" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ConditionalTestExpression"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="whenFalse" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ConditionalTestExpression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ConditionalOrExpression">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="exp" upperBound="-1" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ConditionalAndExpression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ConditionalAndExpression">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="exp" upperBound="-1" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//InclusiveOrExpression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InclusiveOrExpression">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="exp" upperBound="-1" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ExclusiveOrExpression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ExclusiveOrExpression">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="exp" upperBound="-1" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AndExpression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AndExpression">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="exp" upperBound="-1" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//EqualityExpression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EqualityExpression">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="exp" upperBound="-1" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ClassificationExpression"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" unique="false" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ClassificationExpression">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="exp" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//RelationalExpression"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="typeName" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NameExpression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="RelationalExpression">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="left" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ShiftExpression"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="right" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ShiftExpression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ShiftExpression">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="exp" upperBound="-1" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AdditiveExpression"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AdditiveExpression">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="exp" upperBound="-1" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//MultiplicativeExpression"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" unique="false" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MultiplicativeExpression">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="exp" upperBound="-1" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//UnaryExpression"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" unique="false" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="UnaryExpression">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="exp" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//PrimaryExpression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PrimaryExpression">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="prefix" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ValueSpecification"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SuffixExpression"/>
+ <eClassifiers xsi:type="ecore:EClass" name="OperationCallExpression" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SuffixExpression">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="operationName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="tuple" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Tuple"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="suffix" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SuffixExpression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PropertyCallExpression" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SuffixExpression">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="index" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Expression"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="suffix" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SuffixExpression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkOperationExpression" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SuffixExpression">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="ecore:EEnum platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//LinkOperationKind"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="tuple" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//LinkOperationTuple"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkOperationTuple">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="linkOperationTupleElement"
+ upperBound="-1" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//LinkOperationTupleElement"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkOperationTupleElement">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="role" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="roleIndex" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Expression"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="object" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Expression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="LinkOperationKind">
+ <eLiterals name="CREATE" literal="createLink"/>
+ <eLiterals name="DESTROY" value="1" literal="destroyLink"/>
+ <eLiterals name="CLEAR" value="2" literal="clearAssoc"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SequenceOperationExpression" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SuffixExpression">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="operationName" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//QualifiedNameWithBinding"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="tuple" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Tuple"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="suffix" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SuffixExpression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SequenceReductionExpression" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SuffixExpression">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isOrdered" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="behavior" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//QualifiedNameWithBinding"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="suffix" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SuffixExpression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SequenceExpansionExpression" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SuffixExpression">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expr" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Expression"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="suffix" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SuffixExpression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SelectOrRejectOperation" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceExpansionExpression">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="ecore:EEnum platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SelectOrRejectOperator"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="SelectOrRejectOperator">
+ <eLiterals name="SELECT" literal="select"/>
+ <eLiterals name="REJECT" value="1" literal="reject"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CollectOrIterateOperation" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceExpansionExpression">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="ecore:EEnum platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//CollectOrIterateOperator"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="CollectOrIterateOperator">
+ <eLiterals name="COLLECT" literal="collect"/>
+ <eLiterals name="ITERATE" value="1" literal="iterate"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ForAllOrExistsOrOneOperation" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceExpansionExpression">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="ecore:EEnum platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ForAllOrExistsOrOneOperator"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ForAllOrExistsOrOneOperator">
+ <eLiterals name="FORALL" literal="forAll"/>
+ <eLiterals name="EXISTS" value="1" literal="exists"/>
+ <eLiterals name="ONE" value="2" literal="one"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IsUniqueOperation" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceExpansionExpression"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ValueSpecification"/>
+ <eClassifiers xsi:type="ecore:EClass" name="NonLiteralValueSpecification"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ParenthesizedExpression" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ValueSpecification platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NonLiteralValueSpecification">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expOrTypeCast" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Expression"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="casted" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NonLiteralValueSpecification"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="suffix" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SuffixExpression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NullExpression" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ValueSpecification"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ThisExpression" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ValueSpecification platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NonLiteralValueSpecification">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="suffix" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SuffixExpression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SuperInvocationExpression" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ValueSpecification platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NonLiteralValueSpecification">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="tuple" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Tuple"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="operationName" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//QualifiedNameWithBinding"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InstanceCreationExpression" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ValueSpecification platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NonLiteralValueSpecification">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="constructor" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//QualifiedNameWithBinding"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="tuple" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//InstanceCreationTuple"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="suffix" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SuffixExpression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InstanceCreationTuple">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="instanceCreationTupleElement"
+ upperBound="-1" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//InstanceCreationTupleElement"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InstanceCreationTupleElement">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="role" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="object" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Expression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SequenceConstructionOrAccessCompletion">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="multiplicityIndicator"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="accessCompletion" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AccessCompletion"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sequenceCompletion" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//PartialSequenceConstructionCompletion"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expression" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceConstructionExpression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AccessCompletion">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="accessIndex" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Expression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PartialSequenceConstructionCompletion">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expression" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceConstructionExpression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SequenceConstructionExpression" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sequenceElement" upperBound="-1"
+ eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceElement"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rangeUpper" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Expression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SequenceElement"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ClassExtentExpression" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SuffixExpression"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Block">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sequence" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//StatementSequence"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StatementSequence">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="statements" upperBound="-1"
+ eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//DocumentedStatement"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DocumentedStatement">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="comment" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="statement" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Statement"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InlineStatement" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Statement">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="langageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AnnotatedStatement" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Statement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="annotation" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Annotation"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="statement" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Statement"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Statement"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Annotation">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="ecore:EEnum platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AnnotationKind"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="args" unique="false" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="AnnotationKind">
+ <eLiterals name="ISOLATED" literal="isolated"/>
+ <eLiterals name="DETERMINED" value="1" literal="determined"/>
+ <eLiterals name="ASSURED" value="2" literal="assured"/>
+ <eLiterals name="PARALLEL" value="3" literal="parallel"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BlockStatement" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Statement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="block" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Block"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EmptyStatement" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Statement"/>
+ <eClassifiers xsi:type="ecore:EClass" name="LocalNameDeclarationStatement" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Statement">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="varName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//QualifiedNameWithBinding"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="multiplicityIndicator"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="init" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceElement"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IfStatement" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Statement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sequentialClausses" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequentialClauses"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="finalClause" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//FinalClause"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SequentialClauses">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="conccurentClauses" upperBound="-1"
+ eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ConcurrentClauses"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ConcurrentClauses">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="nonFinalClause" upperBound="-1"
+ eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NonFinalClause"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NonFinalClause">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="condition" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Expression"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="block" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Block"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FinalClause">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="block" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Block"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SwitchStatement" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Statement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expression" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Expression"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="switchClause" upperBound="-1"
+ eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SwitchClause"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="defaultClause" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SwitchDefaultClause"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SwitchClause">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="switchCase" upperBound="-1"
+ eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SwitchCase"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="statementSequence" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NonEmptyStatementSequence"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SwitchCase">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expression" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Expression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SwitchDefaultClause">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="statementSequence" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NonEmptyStatementSequence"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NonEmptyStatementSequence">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="statement" upperBound="-1"
+ eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//DocumentedStatement"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="WhileStatement" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Statement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="condition" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Expression"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="block" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Block"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DoStatement" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Statement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="block" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Block"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="condition" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Expression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ForStatement" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Statement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="control" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ForControl"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="block" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Block"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ForControl">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="loopVariableDefinition"
+ upperBound="-1" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//LoopVariableDefinition"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LoopVariableDefinition">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expression1" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Expression"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expression2" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Expression"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//QualifiedNameWithBinding"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expression" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Expression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BreakStatement" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Statement"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ReturnStatement" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Statement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expression" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Expression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AcceptStatement" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Statement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="clause" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AcceptClause"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="simpleAccept" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SimpleAcceptStatementCompletion"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compoundAccept" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//CompoundAcceptStatementCompletion"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SimpleAcceptStatementCompletion"/>
+ <eClassifiers xsi:type="ecore:EClass" name="CompoundAcceptStatementCompletion">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="block" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Block"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="acceptBlock" upperBound="-1"
+ eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AcceptBlock"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AcceptBlock">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="clause" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AcceptClause"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="block" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Block"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AcceptClause">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="qualifiedNameList" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//QualifiedNameList"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ClassifyStatement" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Statement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expression" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Expression"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="clause" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ClassificationClause"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ClassificationClause">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="classifyFromClause" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ClassificationFromClause"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="classifyToClause" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ClassificationToClause"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="reclassyAllClause" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ReclassifyAllClause"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ClassificationFromClause">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="qualifiedNameList" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//QualifiedNameList"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ClassificationToClause">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="qualifiedNameList" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//QualifiedNameList"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ReclassifyAllClause"/>
+ <eClassifiers xsi:type="ecore:EClass" name="QualifiedNameList">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="qualifiedName" upperBound="-1"
+ eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//QualifiedNameWithBinding"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InvocationOrAssignementOrDeclarationStatement"
+ eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Statement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="typePart_OR_assignedPart_OR_invocationPart"
+ eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NameExpression"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="variableDeclarationCompletion"
+ eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//VariableDeclarationCompletion"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="assignmentCompletion" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AssignmentCompletion"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SuperInvocationStatement" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Statement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="_super" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SuperInvocationExpression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ThisInvocationStatement" eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Statement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="_this" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ThisExpression"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="assignmentCompletion" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AssignmentCompletion"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InstanceCreationInvocationStatement"
+ eSuperTypes="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Statement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="_new" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//InstanceCreationExpression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="VariableDeclarationCompletion">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="multiplicityIndicator"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="variableName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="initValue" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AssignmentCompletion"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AssignmentCompletion">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="ecore:EEnum platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AssignmentOperator"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rightHandSide" eType="ecore:EClass platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceElement"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="AssignmentOperator">
+ <eLiterals name="ASSIGN" literal="="/>
+ <eLiterals name="PLUSASSIGN" value="1" literal="+="/>
+ <eLiterals name="MINUSASSIGN" value="2" literal="-="/>
+ <eLiterals name="MULTASSIGN" value="3" literal="*="/>
+ <eLiterals name="MODASSIGN" value="4" literal="%="/>
+ <eLiterals name="DIVASSIGN" value="5" literal="/="/>
+ <eLiterals name="ANDASSIGN" value="6" literal="&amp;="/>
+ <eLiterals name="ORASSIGN" value="7" literal="|="/>
+ <eLiterals name="XORASSIGN" value="8" literal="^="/>
+ <eLiterals name="LSHIFTASSIGN" value="9" literal="&lt;&lt;="/>
+ <eLiterals name="RSHIFTASSIGN" value="10" literal=">>="/>
+ <eLiterals name="URSHIFTASSIGN" value="11" literal=">>>="/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/Alf.genmodel b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/Alf.genmodel
new file mode 100644
index 00000000000..e62e5cee956
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/Alf.genmodel
@@ -0,0 +1,409 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.papyrus.alf/src-gen"
+ editDirectory="/org.eclipse.papyrus.alf.edit/src" editorDirectory="/org.eclipse.papyrus.alf.editor/src"
+ modelPluginID="org.eclipse.papyrus.alf" forceOverwrite="true" modelName="Alf"
+ updateClasspath="false" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+ complianceLevel="5.0" copyrightFields="false" editPluginID="org.eclipse.papyrus.alf.edit"
+ editorPluginID="org.eclipse.papyrus.alf.editor">
+ <genPackages prefix="Alf" basePackage="org.eclipse.papyrus.alf" disposableProviderFactory="true"
+ ecorePackage="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#/">
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//BooleanValue">
+ <genEnumLiterals ecoreEnumLiteral="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//BooleanValue/TRUE"/>
+ <genEnumLiterals ecoreEnumLiteral="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//BooleanValue/FALSE"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//LinkOperationKind">
+ <genEnumLiterals ecoreEnumLiteral="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//LinkOperationKind/CREATE"/>
+ <genEnumLiterals ecoreEnumLiteral="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//LinkOperationKind/DESTROY"/>
+ <genEnumLiterals ecoreEnumLiteral="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//LinkOperationKind/CLEAR"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SelectOrRejectOperator">
+ <genEnumLiterals ecoreEnumLiteral="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SelectOrRejectOperator/SELECT"/>
+ <genEnumLiterals ecoreEnumLiteral="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SelectOrRejectOperator/REJECT"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//CollectOrIterateOperator">
+ <genEnumLiterals ecoreEnumLiteral="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//CollectOrIterateOperator/COLLECT"/>
+ <genEnumLiterals ecoreEnumLiteral="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//CollectOrIterateOperator/ITERATE"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ForAllOrExistsOrOneOperator">
+ <genEnumLiterals ecoreEnumLiteral="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ForAllOrExistsOrOneOperator/FORALL"/>
+ <genEnumLiterals ecoreEnumLiteral="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ForAllOrExistsOrOneOperator/EXISTS"/>
+ <genEnumLiterals ecoreEnumLiteral="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ForAllOrExistsOrOneOperator/ONE"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AnnotationKind">
+ <genEnumLiterals ecoreEnumLiteral="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AnnotationKind/ISOLATED"/>
+ <genEnumLiterals ecoreEnumLiteral="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AnnotationKind/DETERMINED"/>
+ <genEnumLiterals ecoreEnumLiteral="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AnnotationKind/ASSURED"/>
+ <genEnumLiterals ecoreEnumLiteral="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AnnotationKind/PARALLEL"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AssignmentOperator">
+ <genEnumLiterals ecoreEnumLiteral="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AssignmentOperator/ASSIGN"/>
+ <genEnumLiterals ecoreEnumLiteral="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AssignmentOperator/PLUSASSIGN"/>
+ <genEnumLiterals ecoreEnumLiteral="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AssignmentOperator/MINUSASSIGN"/>
+ <genEnumLiterals ecoreEnumLiteral="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AssignmentOperator/MULTASSIGN"/>
+ <genEnumLiterals ecoreEnumLiteral="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AssignmentOperator/MODASSIGN"/>
+ <genEnumLiterals ecoreEnumLiteral="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AssignmentOperator/DIVASSIGN"/>
+ <genEnumLiterals ecoreEnumLiteral="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AssignmentOperator/ANDASSIGN"/>
+ <genEnumLiterals ecoreEnumLiteral="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AssignmentOperator/ORASSIGN"/>
+ <genEnumLiterals ecoreEnumLiteral="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AssignmentOperator/XORASSIGN"/>
+ <genEnumLiterals ecoreEnumLiteral="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AssignmentOperator/LSHIFTASSIGN"/>
+ <genEnumLiterals ecoreEnumLiteral="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AssignmentOperator/RSHIFTASSIGN"/>
+ <genEnumLiterals ecoreEnumLiteral="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AssignmentOperator/URSHIFTASSIGN"/>
+ </genEnums>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Test">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Test/expression"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Test/assignExpression"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Test/statements"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Test/block"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//LITERAL"/>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//BOOLEAN_LITERAL">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//BOOLEAN_LITERAL/value"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NUMBER_LITERAL">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NUMBER_LITERAL/value"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//INTEGER_LITERAL"/>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//UNLIMITED_LITERAL"/>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//STRING_LITERAL">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//STRING_LITERAL/value"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NameExpression">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NameExpression/prefixOp"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NameExpression/path"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NameExpression/id"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NameExpression/invocationCompletion"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NameExpression/sequenceConstructionCompletion"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NameExpression/postfixOp"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NameExpression/suffix"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//QualifiedNamePath">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//QualifiedNamePath/namespace"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//UnqualifiedName">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//UnqualifiedName/name"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//UnqualifiedName/templateBinding"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//TemplateBinding">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//TemplateBinding/bindings"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NamedTemplateBinding">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NamedTemplateBinding/formal"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NamedTemplateBinding/actual"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//QualifiedNameWithBinding">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//QualifiedNameWithBinding/id"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//QualifiedNameWithBinding/binding"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//QualifiedNameWithBinding/remaining"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Tuple">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Tuple/tupleElements"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//TupleElement">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//TupleElement/argument"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Expression"/>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ConditionalTestExpression">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ConditionalTestExpression/exp"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ConditionalTestExpression/whenTrue"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ConditionalTestExpression/whenFalse"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ConditionalOrExpression">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ConditionalOrExpression/exp"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ConditionalAndExpression">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ConditionalAndExpression/exp"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//InclusiveOrExpression">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//InclusiveOrExpression/exp"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ExclusiveOrExpression">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ExclusiveOrExpression/exp"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AndExpression">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AndExpression/exp"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//EqualityExpression">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//EqualityExpression/exp"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//EqualityExpression/op"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ClassificationExpression">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ClassificationExpression/exp"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ClassificationExpression/op"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ClassificationExpression/typeName"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//RelationalExpression">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//RelationalExpression/left"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//RelationalExpression/op"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//RelationalExpression/right"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ShiftExpression">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ShiftExpression/exp"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ShiftExpression/op"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AdditiveExpression">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AdditiveExpression/exp"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AdditiveExpression/op"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//MultiplicativeExpression">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//MultiplicativeExpression/exp"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//MultiplicativeExpression/op"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//UnaryExpression">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//UnaryExpression/op"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//UnaryExpression/exp"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//PrimaryExpression">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//PrimaryExpression/prefix"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SuffixExpression"/>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//OperationCallExpression">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//OperationCallExpression/operationName"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//OperationCallExpression/tuple"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//OperationCallExpression/suffix"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//PropertyCallExpression">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//PropertyCallExpression/propertyName"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//PropertyCallExpression/index"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//PropertyCallExpression/suffix"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//LinkOperationExpression">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//LinkOperationExpression/kind"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//LinkOperationExpression/tuple"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//LinkOperationTuple">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//LinkOperationTuple/linkOperationTupleElement"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//LinkOperationTupleElement">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//LinkOperationTupleElement/role"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//LinkOperationTupleElement/roleIndex"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//LinkOperationTupleElement/object"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceOperationExpression">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceOperationExpression/operationName"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceOperationExpression/tuple"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceOperationExpression/suffix"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceReductionExpression">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceReductionExpression/isOrdered"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceReductionExpression/behavior"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceReductionExpression/suffix"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceExpansionExpression">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceExpansionExpression/name"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceExpansionExpression/expr"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceExpansionExpression/suffix"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SelectOrRejectOperation">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SelectOrRejectOperation/op"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//CollectOrIterateOperation">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//CollectOrIterateOperation/op"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ForAllOrExistsOrOneOperation">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ForAllOrExistsOrOneOperation/op"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//IsUniqueOperation"/>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ValueSpecification"/>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NonLiteralValueSpecification"/>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ParenthesizedExpression">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ParenthesizedExpression/expOrTypeCast"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ParenthesizedExpression/casted"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ParenthesizedExpression/suffix"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NullExpression"/>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ThisExpression">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ThisExpression/suffix"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SuperInvocationExpression">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SuperInvocationExpression/tuple"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SuperInvocationExpression/operationName"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//InstanceCreationExpression">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//InstanceCreationExpression/constructor"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//InstanceCreationExpression/tuple"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//InstanceCreationExpression/suffix"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//InstanceCreationTuple">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//InstanceCreationTuple/instanceCreationTupleElement"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//InstanceCreationTupleElement">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//InstanceCreationTupleElement/role"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//InstanceCreationTupleElement/object"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceConstructionOrAccessCompletion">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceConstructionOrAccessCompletion/multiplicityIndicator"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceConstructionOrAccessCompletion/accessCompletion"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceConstructionOrAccessCompletion/sequenceCompletion"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceConstructionOrAccessCompletion/expression"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AccessCompletion">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AccessCompletion/accessIndex"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//PartialSequenceConstructionCompletion">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//PartialSequenceConstructionCompletion/expression"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceConstructionExpression">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceConstructionExpression/sequenceElement"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceConstructionExpression/rangeUpper"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequenceElement"/>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ClassExtentExpression"/>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Block">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Block/sequence"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//StatementSequence">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//StatementSequence/statements"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//DocumentedStatement">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//DocumentedStatement/comment"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//DocumentedStatement/statement"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//InlineStatement">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//InlineStatement/langageName"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//InlineStatement/body"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AnnotatedStatement">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AnnotatedStatement/annotation"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AnnotatedStatement/statement"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Statement"/>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Annotation">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Annotation/kind"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//Annotation/args"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//BlockStatement">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//BlockStatement/block"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//EmptyStatement"/>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//LocalNameDeclarationStatement">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//LocalNameDeclarationStatement/varName"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//LocalNameDeclarationStatement/type"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//LocalNameDeclarationStatement/multiplicityIndicator"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//LocalNameDeclarationStatement/init"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//IfStatement">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//IfStatement/sequentialClausses"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//IfStatement/finalClause"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequentialClauses">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SequentialClauses/conccurentClauses"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ConcurrentClauses">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ConcurrentClauses/nonFinalClause"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NonFinalClause">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NonFinalClause/condition"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NonFinalClause/block"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//FinalClause">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//FinalClause/block"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SwitchStatement">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SwitchStatement/expression"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SwitchStatement/switchClause"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SwitchStatement/defaultClause"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SwitchClause">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SwitchClause/switchCase"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SwitchClause/statementSequence"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SwitchCase">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SwitchCase/expression"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SwitchDefaultClause">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SwitchDefaultClause/statementSequence"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NonEmptyStatementSequence">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//NonEmptyStatementSequence/statement"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//WhileStatement">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//WhileStatement/condition"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//WhileStatement/block"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//DoStatement">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//DoStatement/block"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//DoStatement/condition"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ForStatement">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ForStatement/control"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ForStatement/block"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ForControl">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ForControl/loopVariableDefinition"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//LoopVariableDefinition">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//LoopVariableDefinition/name"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//LoopVariableDefinition/expression1"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//LoopVariableDefinition/expression2"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//LoopVariableDefinition/type"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//LoopVariableDefinition/expression"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//BreakStatement"/>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ReturnStatement">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ReturnStatement/expression"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AcceptStatement">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AcceptStatement/clause"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AcceptStatement/simpleAccept"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AcceptStatement/compoundAccept"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SimpleAcceptStatementCompletion"/>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//CompoundAcceptStatementCompletion">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//CompoundAcceptStatementCompletion/block"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//CompoundAcceptStatementCompletion/acceptBlock"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AcceptBlock">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AcceptBlock/clause"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AcceptBlock/block"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AcceptClause">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AcceptClause/name"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AcceptClause/qualifiedNameList"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ClassifyStatement">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ClassifyStatement/expression"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ClassifyStatement/clause"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ClassificationClause">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ClassificationClause/classifyFromClause"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ClassificationClause/classifyToClause"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ClassificationClause/reclassyAllClause"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ClassificationFromClause">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ClassificationFromClause/qualifiedNameList"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ClassificationToClause">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ClassificationToClause/qualifiedNameList"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ReclassifyAllClause"/>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//QualifiedNameList">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//QualifiedNameList/qualifiedName"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//InvocationOrAssignementOrDeclarationStatement">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//InvocationOrAssignementOrDeclarationStatement/typePart_OR_assignedPart_OR_invocationPart"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//InvocationOrAssignementOrDeclarationStatement/variableDeclarationCompletion"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//InvocationOrAssignementOrDeclarationStatement/assignmentCompletion"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SuperInvocationStatement">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//SuperInvocationStatement/_super"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ThisInvocationStatement">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ThisInvocationStatement/_this"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//ThisInvocationStatement/assignmentCompletion"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//InstanceCreationInvocationStatement">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//InstanceCreationInvocationStatement/_new"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//VariableDeclarationCompletion">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//VariableDeclarationCompletion/multiplicityIndicator"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//VariableDeclarationCompletion/variableName"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//VariableDeclarationCompletion/initValue"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AssignmentCompletion">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AssignmentCompletion/op"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.ecore#//AssignmentCompletion/rightHandSide"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/Alf.xmi b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/Alf.xmi
new file mode 100644
index 00000000000..a9a77e11e98
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/Alf.xmi
@@ -0,0 +1,2198 @@
+<?xml version="1.0" encoding="ASCII"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:xtext="http://www.eclipse.org/2008/Xtext">
+ <xtext:Grammar name="org.eclipse.papyrus.alf.Alf" usedGrammars="/1">
+ <metamodelDeclarations xsi:type="xtext:GeneratedMetamodel" name="alf">
+ <ePackage href="http://www.eclipse.org/papyrus/alf/Alf#/"/>
+ </metamodelDeclarations>
+ <rules xsi:type="xtext:ParserRule" name="Test">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//Test"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Group" cardinality="*">
+ <elements xsi:type="xtext:Keyword" value="testExpression"/>
+ <elements xsi:type="xtext:Assignment" feature="expression" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.17"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="*">
+ <elements xsi:type="xtext:Keyword" value="testAssignmentExpression"/>
+ <elements xsi:type="xtext:Assignment" feature="assignExpression" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.108"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="*">
+ <elements xsi:type="xtext:Keyword" value="testStatement"/>
+ <elements xsi:type="xtext:Assignment" feature="statements" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.69"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="testBlock"/>
+ <elements xsi:type="xtext:Assignment" feature="block" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.64"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="LITERAL">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//LITERAL"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.2"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.8"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="BOOLEAN_LITERAL">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//BOOLEAN_LITERAL"/>
+ </type>
+ <alternatives xsi:type="xtext:Assignment" feature="value" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:EnumRule" name="BooleanValue">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/alf/Alf#//BooleanValue"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/papyrus/alf/Alf#//BooleanValue/TRUE"/>
+ <literal value="true"/>
+ </elements>
+ <elements xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/papyrus/alf/Alf#//BooleanValue/FALSE"/>
+ <literal value="false"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="NUMBER_LITERAL">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//NUMBER_LITERAL"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.5"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.6"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="INTEGER_LITERAL">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//INTEGER_LITERAL"/>
+ </type>
+ <alternatives xsi:type="xtext:Assignment" feature="value" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.7"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="UNLIMITED_LITERAL">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//UNLIMITED_LITERAL"/>
+ </type>
+ <alternatives xsi:type="xtext:Assignment" feature="value" operator="=">
+ <terminal xsi:type="xtext:Keyword" value="*"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="IntegerValue">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="0"/>
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="1"/>
+ <right value="9"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="*">
+ <elements xsi:type="xtext:Keyword" cardinality="?" value="_"/>
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="0"/>
+ <right value="9"/>
+ </elements>
+ </elements>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="0b"/>
+ <elements xsi:type="xtext:Keyword" value="0B"/>
+ </elements>
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="0"/>
+ <right value="1"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="*">
+ <elements xsi:type="xtext:Keyword" cardinality="?" value="_"/>
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="0"/>
+ <right value="1"/>
+ </elements>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="0x"/>
+ <elements xsi:type="xtext:Keyword" value="0X"/>
+ </elements>
+ <elements xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="0"/>
+ <right value="9"/>
+ </elements>
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="a"/>
+ <right value="f"/>
+ </elements>
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="A"/>
+ <right value="F"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="*">
+ <elements xsi:type="xtext:Keyword" cardinality="?" value="_"/>
+ <elements xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="0"/>
+ <right value="9"/>
+ </elements>
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="a"/>
+ <right value="f"/>
+ </elements>
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="A"/>
+ <right value="F"/>
+ </elements>
+ </elements>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="0"/>
+ <elements xsi:type="xtext:Keyword" cardinality="?" value="_"/>
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="0"/>
+ <right value="7"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="*">
+ <elements xsi:type="xtext:Keyword" cardinality="?" value="_"/>
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="0"/>
+ <right value="7"/>
+ </elements>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="STRING_LITERAL">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//STRING_LITERAL"/>
+ </type>
+ <alternatives xsi:type="xtext:Assignment" feature="value" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.111"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="NameExpression">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//NameExpression"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="prefixOp" operator="=">
+ <terminal xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="++"/>
+ <elements xsi:type="xtext:Keyword" value="--"/>
+ </terminal>
+ </elements>
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="path" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.10"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="id" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.110"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="path" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.10"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="id" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.110"/>
+ </elements>
+ <elements xsi:type="xtext:Alternatives" cardinality="?">
+ <elements xsi:type="xtext:Assignment" feature="invocationCompletion" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.15"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="sequenceConstructionCompletion" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.58"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="postfixOp" operator="=">
+ <terminal xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="++"/>
+ <elements xsi:type="xtext:Keyword" value="--"/>
+ </terminal>
+ </elements>
+ </elements>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="suffix" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.32"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="QualifiedNamePath">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//QualifiedNamePath"/>
+ </type>
+ <alternatives xsi:type="xtext:Group" cardinality="+">
+ <elements xsi:type="xtext:Assignment" feature="namespace" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.11"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="::"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="UnqualifiedName">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//UnqualifiedName"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.110"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="templateBinding" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.12"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="TemplateBinding">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//TemplateBinding"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="&lt;"/>
+ <elements xsi:type="xtext:Assignment" feature="bindings" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.13"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="*">
+ <elements xsi:type="xtext:Keyword" value=","/>
+ <elements xsi:type="xtext:Assignment" feature="bindings" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.13"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=">"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="NamedTemplateBinding">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//NamedTemplateBinding"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="formal" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.110"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="=>"/>
+ <elements xsi:type="xtext:Assignment" feature="actual" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="QualifiedNameWithBinding">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//QualifiedNameWithBinding"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="id" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.110"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="binding" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.12"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Keyword" value="::"/>
+ <elements xsi:type="xtext:Assignment" feature="remaining" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="Tuple">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//Tuple"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Action">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//Tuple"/>
+ </type>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="("/>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Assignment" feature="tupleElements" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.16"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="*">
+ <elements xsi:type="xtext:Keyword" value=","/>
+ <elements xsi:type="xtext:Assignment" feature="tupleElements" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.16"/>
+ </elements>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=")"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="TupleElement">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//TupleElement"/>
+ </type>
+ <alternatives xsi:type="xtext:Assignment" feature="argument" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.17"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="Expression">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//Expression"/>
+ </type>
+ <alternatives xsi:type="xtext:RuleCall" rule="/0/@rules.18"/>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="ConditionalTestExpression">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//ConditionalTestExpression"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="exp" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.19"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Keyword" value="?"/>
+ <elements xsi:type="xtext:Assignment" feature="whenTrue" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.18"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=":"/>
+ <elements xsi:type="xtext:Assignment" feature="whenFalse" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.18"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="ConditionalOrExpression">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//ConditionalOrExpression"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="exp" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.20"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="*">
+ <elements xsi:type="xtext:Keyword" value="||"/>
+ <elements xsi:type="xtext:Assignment" feature="exp" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.20"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="ConditionalAndExpression">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//ConditionalAndExpression"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="exp" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.21"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="*">
+ <elements xsi:type="xtext:Keyword" value="&amp;&amp;"/>
+ <elements xsi:type="xtext:Assignment" feature="exp" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.21"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="InclusiveOrExpression">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//InclusiveOrExpression"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="exp" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.22"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="*">
+ <elements xsi:type="xtext:Keyword" value="|"/>
+ <elements xsi:type="xtext:Assignment" feature="exp" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.22"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="ExclusiveOrExpression">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//ExclusiveOrExpression"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="exp" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.23"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="*">
+ <elements xsi:type="xtext:Keyword" value="^"/>
+ <elements xsi:type="xtext:Assignment" feature="exp" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.23"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="AndExpression">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//AndExpression"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="exp" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.24"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="*">
+ <elements xsi:type="xtext:Keyword" value="&amp;"/>
+ <elements xsi:type="xtext:Assignment" feature="exp" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.24"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="EqualityExpression">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//EqualityExpression"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="exp" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.25"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="*">
+ <elements xsi:type="xtext:Assignment" feature="op" operator="+=">
+ <terminal xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="=="/>
+ <elements xsi:type="xtext:Keyword" value="!="/>
+ </terminal>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="exp" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.25"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="ClassificationExpression">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//ClassificationExpression"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="exp" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.26"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Assignment" feature="op" operator="=">
+ <terminal xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="instanceof"/>
+ <elements xsi:type="xtext:Keyword" value="hastype"/>
+ </terminal>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="typeName" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.9"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="RelationalExpression">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//RelationalExpression"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="left" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Assignment" feature="op" operator="=">
+ <terminal xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="&lt;"/>
+ <elements xsi:type="xtext:Keyword" value=">"/>
+ <elements xsi:type="xtext:Keyword" value="&lt;="/>
+ <elements xsi:type="xtext:Keyword" value=">="/>
+ </terminal>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="right" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="ShiftExpression">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//ShiftExpression"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="exp" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.28"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Assignment" feature="op" operator="=">
+ <terminal xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="&lt;&lt;"/>
+ <elements xsi:type="xtext:Keyword" value=">>"/>
+ <elements xsi:type="xtext:Keyword" value=">>>"/>
+ </terminal>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="exp" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.28"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="AdditiveExpression">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//AdditiveExpression"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="exp" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.29"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="*">
+ <elements xsi:type="xtext:Assignment" feature="op" operator="+=">
+ <terminal xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="+"/>
+ <elements xsi:type="xtext:Keyword" value="-"/>
+ </terminal>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="exp" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.29"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="MultiplicativeExpression">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//MultiplicativeExpression"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="exp" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.30"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="*">
+ <elements xsi:type="xtext:Assignment" feature="op" operator="+=">
+ <terminal xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="*"/>
+ <elements xsi:type="xtext:Keyword" value="/"/>
+ <elements xsi:type="xtext:Keyword" value="%"/>
+ </terminal>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="exp" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.30"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="UnaryExpression">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//UnaryExpression"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="op" operator="=">
+ <terminal xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="!"/>
+ <elements xsi:type="xtext:Keyword" value="-"/>
+ <elements xsi:type="xtext:Keyword" value="+"/>
+ <elements xsi:type="xtext:Keyword" value="$"/>
+ <elements xsi:type="xtext:Keyword" value="~"/>
+ </terminal>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="exp" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.31"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="PrimaryExpression">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//PrimaryExpression"/>
+ </type>
+ <alternatives xsi:type="xtext:Assignment" feature="prefix" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.49"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="SuffixExpression">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//SuffixExpression"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.33"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.34"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.35"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.39"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.40"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.41"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.63"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="OperationCallExpression">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//OperationCallExpression"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="."/>
+ <elements xsi:type="xtext:Assignment" feature="operationName" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.110"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="tuple" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.15"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="suffix" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.32"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="PropertyCallExpression">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//PropertyCallExpression"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="."/>
+ <elements xsi:type="xtext:Assignment" feature="propertyName" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.110"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Keyword" value="["/>
+ <elements xsi:type="xtext:Assignment" feature="index" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.17"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="]"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="suffix" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.32"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="LinkOperationExpression">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//LinkOperationExpression"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="."/>
+ <elements xsi:type="xtext:Assignment" feature="kind" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.38"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="tuple" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.36"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="LinkOperationTuple">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//LinkOperationTuple"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="("/>
+ <elements xsi:type="xtext:Assignment" feature="linkOperationTupleElement" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.37"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="*">
+ <elements xsi:type="xtext:Keyword" value=","/>
+ <elements xsi:type="xtext:Assignment" feature="linkOperationTupleElement" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.37"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=")"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="LinkOperationTupleElement">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//LinkOperationTupleElement"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="role" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.110"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Keyword" value="["/>
+ <elements xsi:type="xtext:Assignment" feature="roleIndex" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.17"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="]"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="=>"/>
+ <elements xsi:type="xtext:Assignment" feature="object" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.17"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:EnumRule" name="LinkOperationKind">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/alf/Alf#//LinkOperationKind"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/papyrus/alf/Alf#//LinkOperationKind/CREATE"/>
+ <literal value="createLink"/>
+ </elements>
+ <elements xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/papyrus/alf/Alf#//LinkOperationKind/DESTROY"/>
+ <literal value="destroyLink"/>
+ </elements>
+ <elements xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/papyrus/alf/Alf#//LinkOperationKind/CLEAR"/>
+ <literal value="clearAssoc"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="SequenceOperationExpression">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//SequenceOperationExpression"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="->"/>
+ <elements xsi:type="xtext:Assignment" feature="operationName" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="tuple" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.15"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="suffix" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.32"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="SequenceReductionExpression">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//SequenceReductionExpression"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="->"/>
+ <elements xsi:type="xtext:Keyword" value="reduce"/>
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="isOrdered" operator="?=">
+ <terminal xsi:type="xtext:Keyword" value="ordered"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="behavior" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="suffix" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.32"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="SequenceExpansionExpression">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//SequenceExpansionExpression"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.42"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.44"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.46"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.48"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="SelectOrRejectOperation">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//SelectOrRejectOperation"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="->"/>
+ <elements xsi:type="xtext:Assignment" feature="op" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.43"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.110"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="("/>
+ <elements xsi:type="xtext:Assignment" feature="expr" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.17"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=")"/>
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="suffix" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.32"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:EnumRule" name="SelectOrRejectOperator">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/alf/Alf#//SelectOrRejectOperator"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/papyrus/alf/Alf#//SelectOrRejectOperator/SELECT"/>
+ <literal value="select"/>
+ </elements>
+ <elements xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/papyrus/alf/Alf#//SelectOrRejectOperator/REJECT"/>
+ <literal value="reject"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="CollectOrIterateOperation">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//CollectOrIterateOperation"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="->"/>
+ <elements xsi:type="xtext:Assignment" feature="op" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.45"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.110"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="("/>
+ <elements xsi:type="xtext:Assignment" feature="expr" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.17"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=")"/>
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="suffix" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.32"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:EnumRule" name="CollectOrIterateOperator">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/alf/Alf#//CollectOrIterateOperator"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/papyrus/alf/Alf#//CollectOrIterateOperator/COLLECT"/>
+ <literal value="collect"/>
+ </elements>
+ <elements xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/papyrus/alf/Alf#//CollectOrIterateOperator/ITERATE"/>
+ <literal value="iterate"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="ForAllOrExistsOrOneOperation">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//ForAllOrExistsOrOneOperation"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="->"/>
+ <elements xsi:type="xtext:Assignment" feature="op" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.47"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.110"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="("/>
+ <elements xsi:type="xtext:Assignment" feature="expr" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.17"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=")"/>
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="suffix" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.32"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:EnumRule" name="ForAllOrExistsOrOneOperator">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/alf/Alf#//ForAllOrExistsOrOneOperator"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/papyrus/alf/Alf#//ForAllOrExistsOrOneOperator/FORALL"/>
+ <literal value="forAll"/>
+ </elements>
+ <elements xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/papyrus/alf/Alf#//ForAllOrExistsOrOneOperator/EXISTS"/>
+ <literal value="exists"/>
+ </elements>
+ <elements xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/papyrus/alf/Alf#//ForAllOrExistsOrOneOperator/ONE"/>
+ <literal value="one"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="IsUniqueOperation">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//IsUniqueOperation"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="->"/>
+ <elements xsi:type="xtext:Keyword" value="isUnique"/>
+ <elements xsi:type="xtext:Assignment" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.110"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="("/>
+ <elements xsi:type="xtext:Assignment" feature="expr" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.17"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=")"/>
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="suffix" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.32"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="ValueSpecification">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//ValueSpecification"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.9"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.1"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.54"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.55"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.51"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.52"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="NonLiteralValueSpecification">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//NonLiteralValueSpecification"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.9"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.51"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.55"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.54"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="ParenthesizedExpression">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//ParenthesizedExpression"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="("/>
+ <elements xsi:type="xtext:Assignment" feature="expOrTypeCast" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.17"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=")"/>
+ <elements xsi:type="xtext:Alternatives" cardinality="?">
+ <elements xsi:type="xtext:Assignment" feature="casted" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.50"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="suffix" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.32"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="NullExpression">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//NullExpression"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Action">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//NullExpression"/>
+ </type>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="null"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="ThisExpression">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//ThisExpression"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Action">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//ThisExpression"/>
+ </type>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="this"/>
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="suffix" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.32"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="SuperInvocationExpression">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//SuperInvocationExpression"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="super"/>
+ <elements xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Assignment" feature="tuple" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.15"/>
+ </elements>
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="."/>
+ <elements xsi:type="xtext:Assignment" feature="operationName" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="tuple" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.15"/>
+ </elements>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="InstanceCreationExpression">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//InstanceCreationExpression"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="new"/>
+ <elements xsi:type="xtext:Assignment" feature="constructor" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="tuple" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.56"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="suffix" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.32"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="InstanceCreationTuple">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//InstanceCreationTuple"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Action">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//InstanceCreationTuple"/>
+ </type>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="("/>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Assignment" feature="instanceCreationTupleElement" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.57"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="*">
+ <elements xsi:type="xtext:Keyword" value=","/>
+ <elements xsi:type="xtext:Assignment" feature="instanceCreationTupleElement" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.57"/>
+ </elements>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=")"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="InstanceCreationTupleElement">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//InstanceCreationTupleElement"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="role" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.110"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="=>"/>
+ <elements xsi:type="xtext:Assignment" feature="object" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.17"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="SequenceConstructionOrAccessCompletion">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//SequenceConstructionOrAccessCompletion"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="multiplicityIndicator" operator="?=">
+ <terminal xsi:type="xtext:Keyword" value="["/>
+ </elements>
+ <elements xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Assignment" feature="accessCompletion" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.59"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="sequenceCompletion" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.60"/>
+ </elements>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="expression" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.61"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="AccessCompletion">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//AccessCompletion"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="accessIndex" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.17"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="]"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="PartialSequenceConstructionCompletion">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//PartialSequenceConstructionCompletion"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="]"/>
+ <elements xsi:type="xtext:Assignment" feature="expression" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.61"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="SequenceConstructionExpression">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//SequenceConstructionExpression"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="{"/>
+ <elements xsi:type="xtext:Assignment" feature="sequenceElement" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.62"/>
+ </elements>
+ <elements xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Group" cardinality="*">
+ <elements xsi:type="xtext:Keyword" value=","/>
+ <elements xsi:type="xtext:Assignment" feature="sequenceElement" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.62"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value=".."/>
+ <elements xsi:type="xtext:Assignment" feature="rangeUpper" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.17"/>
+ </elements>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="}"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="SequenceElement">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//SequenceElement"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.17"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.61"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="ClassExtentExpression">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//ClassExtentExpression"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Action">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//ClassExtentExpression"/>
+ </type>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="."/>
+ <elements xsi:type="xtext:Keyword" value="allInstances"/>
+ <elements xsi:type="xtext:Keyword" value="("/>
+ <elements xsi:type="xtext:Keyword" value=")"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="Block">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//Block"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="{"/>
+ <elements xsi:type="xtext:Action">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//Block"/>
+ </type>
+ </elements>
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="sequence" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.65"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="}"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="StatementSequence">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//StatementSequence"/>
+ </type>
+ <alternatives xsi:type="xtext:Assignment" cardinality="+" feature="statements" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.66"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="DocumentedStatement">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//DocumentedStatement"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="comment" operator="=">
+ <terminal xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.112"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.113"/>
+ </terminal>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="statement" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.69"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="InlineStatement">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//InlineStatement"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="/*@"/>
+ <elements xsi:type="xtext:Keyword" value="inline"/>
+ <elements xsi:type="xtext:Keyword" value="("/>
+ <elements xsi:type="xtext:Assignment" feature="langageName" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.110"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=")"/>
+ <elements xsi:type="xtext:Assignment" feature="body" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.111"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="*/"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="AnnotatedStatement">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//AnnotatedStatement"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="//@"/>
+ <elements xsi:type="xtext:Assignment" feature="annotation" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.70"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="statement" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.69"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="Statement">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//Statement"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.68"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.67"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.72"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.73"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.74"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.75"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.80"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.85"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.86"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.87"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.90"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.91"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.92"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.97"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.103"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.104"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.105"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.106"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="Annotation">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//Annotation"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="kind" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.71"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Keyword" value="("/>
+ <elements xsi:type="xtext:Assignment" feature="args" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.110"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="*">
+ <elements xsi:type="xtext:Keyword" value=","/>
+ <elements xsi:type="xtext:Assignment" feature="args" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.110"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=")"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:EnumRule" name="AnnotationKind">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/alf/Alf#//AnnotationKind"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/papyrus/alf/Alf#//AnnotationKind/ISOLATED"/>
+ <literal value="isolated"/>
+ </elements>
+ <elements xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/papyrus/alf/Alf#//AnnotationKind/DETERMINED"/>
+ <literal value="determined"/>
+ </elements>
+ <elements xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/papyrus/alf/Alf#//AnnotationKind/ASSURED"/>
+ <literal value="assured"/>
+ </elements>
+ <elements xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/papyrus/alf/Alf#//AnnotationKind/PARALLEL"/>
+ <literal value="parallel"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="BlockStatement">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//BlockStatement"/>
+ </type>
+ <alternatives xsi:type="xtext:Assignment" feature="block" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.64"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="EmptyStatement">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//EmptyStatement"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Action">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//EmptyStatement"/>
+ </type>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=";"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="LocalNameDeclarationStatement">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//LocalNameDeclarationStatement"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="let"/>
+ <elements xsi:type="xtext:Assignment" feature="varName" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.110"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=":"/>
+ <elements xsi:type="xtext:Assignment" feature="type" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Assignment" feature="multiplicityIndicator" operator="?=">
+ <terminal xsi:type="xtext:Keyword" value="["/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="]"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="="/>
+ <elements xsi:type="xtext:Assignment" feature="init" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.62"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=";"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="IfStatement">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//IfStatement"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="if"/>
+ <elements xsi:type="xtext:Assignment" feature="sequentialClausses" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.76"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="finalClause" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.79"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="SequentialClauses">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//SequentialClauses"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="conccurentClauses" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.77"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="*">
+ <elements xsi:type="xtext:Keyword" value="else"/>
+ <elements xsi:type="xtext:Keyword" value="if"/>
+ <elements xsi:type="xtext:Assignment" feature="conccurentClauses" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.77"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="ConcurrentClauses">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//ConcurrentClauses"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="nonFinalClause" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.78"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="*">
+ <elements xsi:type="xtext:Keyword" value="or"/>
+ <elements xsi:type="xtext:Keyword" value="if"/>
+ <elements xsi:type="xtext:Assignment" feature="nonFinalClause" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.78"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="NonFinalClause">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//NonFinalClause"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="("/>
+ <elements xsi:type="xtext:Assignment" feature="condition" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.17"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=")"/>
+ <elements xsi:type="xtext:Assignment" feature="block" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.64"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="FinalClause">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//FinalClause"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="else"/>
+ <elements xsi:type="xtext:Assignment" feature="block" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.64"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="SwitchStatement">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//SwitchStatement"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="switch"/>
+ <elements xsi:type="xtext:Keyword" value="("/>
+ <elements xsi:type="xtext:Assignment" feature="expression" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.17"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=")"/>
+ <elements xsi:type="xtext:Keyword" value="{"/>
+ <elements xsi:type="xtext:Assignment" cardinality="*" feature="switchClause" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.81"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="defaultClause" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.83"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="}"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="SwitchClause">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//SwitchClause"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="switchCase" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.82"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" cardinality="*" feature="switchCase" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.82"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="statementSequence" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.84"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="SwitchCase">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//SwitchCase"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="case"/>
+ <elements xsi:type="xtext:Assignment" feature="expression" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.17"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=":"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="SwitchDefaultClause">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//SwitchDefaultClause"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="default"/>
+ <elements xsi:type="xtext:Keyword" value=":"/>
+ <elements xsi:type="xtext:Assignment" feature="statementSequence" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.84"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="NonEmptyStatementSequence">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//NonEmptyStatementSequence"/>
+ </type>
+ <alternatives xsi:type="xtext:Assignment" cardinality="+" feature="statement" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.66"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="WhileStatement">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//WhileStatement"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="while"/>
+ <elements xsi:type="xtext:Keyword" value="("/>
+ <elements xsi:type="xtext:Assignment" feature="condition" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.17"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=")"/>
+ <elements xsi:type="xtext:Assignment" feature="block" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.64"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="DoStatement">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//DoStatement"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="do"/>
+ <elements xsi:type="xtext:Assignment" feature="block" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.64"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="while"/>
+ <elements xsi:type="xtext:Keyword" value="("/>
+ <elements xsi:type="xtext:Assignment" feature="condition" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.17"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=")"/>
+ <elements xsi:type="xtext:Keyword" value=";"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="ForStatement">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//ForStatement"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="for"/>
+ <elements xsi:type="xtext:Keyword" value="("/>
+ <elements xsi:type="xtext:Assignment" feature="control" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.88"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=")"/>
+ <elements xsi:type="xtext:Assignment" feature="block" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.64"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="ForControl">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//ForControl"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="loopVariableDefinition" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.89"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="*">
+ <elements xsi:type="xtext:Keyword" value=","/>
+ <elements xsi:type="xtext:Assignment" feature="loopVariableDefinition" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.89"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="LoopVariableDefinition">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//LoopVariableDefinition"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.110"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="in"/>
+ <elements xsi:type="xtext:Assignment" feature="expression1" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.17"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Keyword" value=".."/>
+ <elements xsi:type="xtext:Assignment" feature="expression2" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.17"/>
+ </elements>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="type" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.110"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=":"/>
+ <elements xsi:type="xtext:Assignment" feature="expression" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.17"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="BreakStatement">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//BreakStatement"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Action">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//BreakStatement"/>
+ </type>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="break"/>
+ <elements xsi:type="xtext:Keyword" value=";"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="ReturnStatement">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//ReturnStatement"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="return"/>
+ <elements xsi:type="xtext:Assignment" feature="expression" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.17"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=";"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="AcceptStatement">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//AcceptStatement"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="clause" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.96"/>
+ </elements>
+ <elements xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Assignment" feature="simpleAccept" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.93"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="compoundAccept" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.94"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="SimpleAcceptStatementCompletion">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//SimpleAcceptStatementCompletion"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Action">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//SimpleAcceptStatementCompletion"/>
+ </type>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=";"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="CompoundAcceptStatementCompletion">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//CompoundAcceptStatementCompletion"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="block" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.64"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="*">
+ <elements xsi:type="xtext:Keyword" value="or"/>
+ <elements xsi:type="xtext:Assignment" feature="acceptBlock" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.95"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="AcceptBlock">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//AcceptBlock"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="clause" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.96"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="block" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.64"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="AcceptClause">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//AcceptClause"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="accept"/>
+ <elements xsi:type="xtext:Keyword" value="("/>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Assignment" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.110"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=":"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="qualifiedNameList" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.102"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=")"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="ClassifyStatement">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//ClassifyStatement"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="classify"/>
+ <elements xsi:type="xtext:Assignment" feature="expression" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.17"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="clause" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.98"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=";"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="ClassificationClause">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//ClassificationClause"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="classifyFromClause" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.99"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="classifyToClause" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.100"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="reclassyAllClause" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.101"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="classifyToClause" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.100"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="ClassificationFromClause">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//ClassificationFromClause"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="from"/>
+ <elements xsi:type="xtext:Assignment" feature="qualifiedNameList" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.102"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="ClassificationToClause">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//ClassificationToClause"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="to"/>
+ <elements xsi:type="xtext:Assignment" feature="qualifiedNameList" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.102"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="ReclassifyAllClause">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//ReclassifyAllClause"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Action">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//ReclassifyAllClause"/>
+ </type>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="from"/>
+ <elements xsi:type="xtext:Keyword" value="*"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="QualifiedNameList">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//QualifiedNameList"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="qualifiedName" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="*">
+ <elements xsi:type="xtext:Keyword" value=","/>
+ <elements xsi:type="xtext:Assignment" feature="qualifiedName" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="InvocationOrAssignementOrDeclarationStatement">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//InvocationOrAssignementOrDeclarationStatement"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="typePart_OR_assignedPart_OR_invocationPart" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.9"/>
+ </elements>
+ <elements xsi:type="xtext:Alternatives" cardinality="?">
+ <elements xsi:type="xtext:Assignment" feature="variableDeclarationCompletion" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.107"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="assignmentCompletion" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.108"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=";"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="SuperInvocationStatement">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//SuperInvocationStatement"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="_super" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.54"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=";"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="ThisInvocationStatement">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//ThisInvocationStatement"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="_this" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="assignmentCompletion" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.108"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=";"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="InstanceCreationInvocationStatement">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//InstanceCreationInvocationStatement"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="_new" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.55"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=";"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="VariableDeclarationCompletion">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//VariableDeclarationCompletion"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Assignment" feature="multiplicityIndicator" operator="?=">
+ <terminal xsi:type="xtext:Keyword" value="["/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="]"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="variableName" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.110"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="initValue" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.108"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="AssignmentCompletion">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/alf/Alf#//AssignmentCompletion"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="op" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.109"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="rightHandSide" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.62"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:EnumRule" name="AssignmentOperator">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/alf/Alf#//AssignmentOperator"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/papyrus/alf/Alf#//AssignmentOperator/ASSIGN"/>
+ <literal value="="/>
+ </elements>
+ <elements xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/papyrus/alf/Alf#//AssignmentOperator/PLUSASSIGN"/>
+ <literal value="+="/>
+ </elements>
+ <elements xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/papyrus/alf/Alf#//AssignmentOperator/MINUSASSIGN"/>
+ <literal value="-="/>
+ </elements>
+ <elements xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/papyrus/alf/Alf#//AssignmentOperator/MULTASSIGN"/>
+ <literal value="*="/>
+ </elements>
+ <elements xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/papyrus/alf/Alf#//AssignmentOperator/MODASSIGN"/>
+ <literal value="%="/>
+ </elements>
+ <elements xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/papyrus/alf/Alf#//AssignmentOperator/DIVASSIGN"/>
+ <literal value="/="/>
+ </elements>
+ <elements xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/papyrus/alf/Alf#//AssignmentOperator/ANDASSIGN"/>
+ <literal value="&amp;="/>
+ </elements>
+ <elements xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/papyrus/alf/Alf#//AssignmentOperator/ORASSIGN"/>
+ <literal value="|="/>
+ </elements>
+ <elements xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/papyrus/alf/Alf#//AssignmentOperator/XORASSIGN"/>
+ <literal value="^="/>
+ </elements>
+ <elements xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/papyrus/alf/Alf#//AssignmentOperator/LSHIFTASSIGN"/>
+ <literal value="&lt;&lt;="/>
+ </elements>
+ <elements xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/papyrus/alf/Alf#//AssignmentOperator/RSHIFTASSIGN"/>
+ <literal value=">>="/>
+ </elements>
+ <elements xsi:type="xtext:EnumLiteralDeclaration">
+ <enumLiteral href="http://www.eclipse.org/papyrus/alf/Alf#//AssignmentOperator/URSHIFTASSIGN"/>
+ <literal value=">>>="/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="ID">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="a"/>
+ <right value="z"/>
+ </elements>
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="A"/>
+ <right value="Z"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="_"/>
+ </elements>
+ <elements xsi:type="xtext:Alternatives" cardinality="*">
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="a"/>
+ <right value="z"/>
+ </elements>
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="A"/>
+ <right value="Z"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="_"/>
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="0"/>
+ <right value="9"/>
+ </elements>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="'"/>
+ <elements xsi:type="xtext:UntilToken">
+ <terminal xsi:type="xtext:Keyword" value="'"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="STRING">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="&quot;"/>
+ <elements xsi:type="xtext:Alternatives" cardinality="*">
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="\"/>
+ <elements xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="b"/>
+ <elements xsi:type="xtext:Keyword" value="t"/>
+ <elements xsi:type="xtext:Keyword" value="n"/>
+ <elements xsi:type="xtext:Keyword" value="f"/>
+ <elements xsi:type="xtext:Keyword" value="r"/>
+ <elements xsi:type="xtext:Keyword" value="&quot;"/>
+ <elements xsi:type="xtext:Keyword" value="'"/>
+ <elements xsi:type="xtext:Keyword" value="\"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:NegatedToken">
+ <terminal xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="\"/>
+ <elements xsi:type="xtext:Keyword" value="&quot;"/>
+ </terminal>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="&quot;"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="ML_COMMENT">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="/*"/>
+ <elements xsi:type="xtext:NegatedToken">
+ <terminal xsi:type="xtext:Keyword" value="@"/>
+ </elements>
+ <elements xsi:type="xtext:UntilToken">
+ <terminal xsi:type="xtext:Keyword" value="*/"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="SL_COMMENT">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="//"/>
+ <elements xsi:type="xtext:NegatedToken" cardinality="*">
+ <terminal xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="&#xA;"/>
+ <elements xsi:type="xtext:Keyword" value="&#xD;"/>
+ <elements xsi:type="xtext:Keyword" value="@"/>
+ </terminal>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Keyword" cardinality="?" value="&#xD;"/>
+ <elements xsi:type="xtext:Keyword" value="&#xA;"/>
+ </elements>
+ </alternatives>
+ </rules>
+ </xtext:Grammar>
+ <xtext:Grammar name="org.eclipse.xtext.common.Terminals" definesHiddenTokens="true" hiddenTokens="/1/@rules.5 /0/@rules.112 /0/@rules.113">
+ <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="ecore">
+ <ePackage href="http://www.eclipse.org/emf/2002/Ecore#/"/>
+ </metamodelDeclarations>
+ <rules xsi:type="xtext:TerminalRule" name="ID">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" cardinality="?" value="^"/>
+ <elements xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="a"/>
+ <right value="z"/>
+ </elements>
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="A"/>
+ <right value="Z"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="_"/>
+ </elements>
+ <elements xsi:type="xtext:Alternatives" cardinality="*">
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="a"/>
+ <right value="z"/>
+ </elements>
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="A"/>
+ <right value="Z"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="_"/>
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="0"/>
+ <right value="9"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="INT">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </type>
+ <alternatives xsi:type="xtext:CharacterRange" cardinality="+">
+ <left value="0"/>
+ <right value="9"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="STRING">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="&quot;"/>
+ <elements xsi:type="xtext:Alternatives" cardinality="*">
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="\"/>
+ <elements xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="b"/>
+ <elements xsi:type="xtext:Keyword" value="t"/>
+ <elements xsi:type="xtext:Keyword" value="n"/>
+ <elements xsi:type="xtext:Keyword" value="f"/>
+ <elements xsi:type="xtext:Keyword" value="r"/>
+ <elements xsi:type="xtext:Keyword" value="u"/>
+ <elements xsi:type="xtext:Keyword" value="&quot;"/>
+ <elements xsi:type="xtext:Keyword" value="'"/>
+ <elements xsi:type="xtext:Keyword" value="\"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:NegatedToken">
+ <terminal xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="\"/>
+ <elements xsi:type="xtext:Keyword" value="&quot;"/>
+ </terminal>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="&quot;"/>
+ </elements>
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="'"/>
+ <elements xsi:type="xtext:Alternatives" cardinality="*">
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="\"/>
+ <elements xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="b"/>
+ <elements xsi:type="xtext:Keyword" value="t"/>
+ <elements xsi:type="xtext:Keyword" value="n"/>
+ <elements xsi:type="xtext:Keyword" value="f"/>
+ <elements xsi:type="xtext:Keyword" value="r"/>
+ <elements xsi:type="xtext:Keyword" value="u"/>
+ <elements xsi:type="xtext:Keyword" value="&quot;"/>
+ <elements xsi:type="xtext:Keyword" value="'"/>
+ <elements xsi:type="xtext:Keyword" value="\"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:NegatedToken">
+ <terminal xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="\"/>
+ <elements xsi:type="xtext:Keyword" value="'"/>
+ </terminal>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="'"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="ML_COMMENT">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="/*"/>
+ <elements xsi:type="xtext:UntilToken">
+ <terminal xsi:type="xtext:Keyword" value="*/"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="SL_COMMENT">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="//"/>
+ <elements xsi:type="xtext:NegatedToken" cardinality="*">
+ <terminal xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="&#xA;"/>
+ <elements xsi:type="xtext:Keyword" value="&#xD;"/>
+ </terminal>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Keyword" cardinality="?" value="&#xD;"/>
+ <elements xsi:type="xtext:Keyword" value="&#xA;"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="WS">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives" cardinality="+">
+ <elements xsi:type="xtext:Keyword" value=" "/>
+ <elements xsi:type="xtext:Keyword" value="&#x9;"/>
+ <elements xsi:type="xtext:Keyword" value="&#xD;"/>
+ <elements xsi:type="xtext:Keyword" value="&#xA;"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="ANY_OTHER">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Wildcard"/>
+ </rules>
+ </xtext:Grammar>
+</xmi:XMI>
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/AlfStandaloneSetupGenerated.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/AlfStandaloneSetupGenerated.java
new file mode 100644
index 00000000000..32677048379
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/AlfStandaloneSetupGenerated.java
@@ -0,0 +1,43 @@
+
+package org.eclipse.papyrus.alf;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.xtext.ISetup;
+import org.eclipse.emf.ecore.resource.Resource;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+
+/**
+ * Generated from StandaloneSetup.xpt!
+ */
+@SuppressWarnings("all")
+public class AlfStandaloneSetupGenerated implements ISetup {
+
+ public Injector createInjectorAndDoEMFRegistration() {
+ org.eclipse.xtext.common.TerminalsStandaloneSetup.doSetup();
+
+ Injector injector = createInjector();
+ register(injector);
+ return injector;
+ }
+
+ public Injector createInjector() {
+ return Guice.createInjector(new org.eclipse.papyrus.alf.AlfRuntimeModule());
+ }
+
+ public void register(Injector injector) {
+ if (!EPackage.Registry.INSTANCE.containsKey("http://www.eclipse.org/papyrus/alf/Alf")) {
+ EPackage.Registry.INSTANCE.put("http://www.eclipse.org/papyrus/alf/Alf", org.eclipse.papyrus.alf.alf.AlfPackage.eINSTANCE);
+ }
+
+ org.eclipse.xtext.resource.IResourceFactory resourceFactory = injector.getInstance(org.eclipse.xtext.resource.IResourceFactory.class);
+ org.eclipse.xtext.resource.IResourceServiceProvider serviceProvider = injector.getInstance(org.eclipse.xtext.resource.IResourceServiceProvider.class);
+ Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("alf", resourceFactory);
+ org.eclipse.xtext.resource.IResourceServiceProvider.Registry.INSTANCE.getExtensionToFactoryMap().put("alf", serviceProvider);
+
+
+
+
+ }
+}
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AcceptBlock.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AcceptBlock.java
new file mode 100644
index 00000000000..4c1e7b1638e
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AcceptBlock.java
@@ -0,0 +1,82 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Accept Block</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.AcceptBlock#getClause <em>Clause</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.AcceptBlock#getBlock <em>Block</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getAcceptBlock()
+ * @model
+ * @generated
+ */
+public interface AcceptBlock extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Clause</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Clause</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Clause</em>' containment reference.
+ * @see #setClause(AcceptClause)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getAcceptBlock_Clause()
+ * @model containment="true"
+ * @generated
+ */
+ AcceptClause getClause();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.AcceptBlock#getClause <em>Clause</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Clause</em>' containment reference.
+ * @see #getClause()
+ * @generated
+ */
+ void setClause(AcceptClause value);
+
+ /**
+ * Returns the value of the '<em><b>Block</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Block</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Block</em>' containment reference.
+ * @see #setBlock(Block)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getAcceptBlock_Block()
+ * @model containment="true"
+ * @generated
+ */
+ Block getBlock();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.AcceptBlock#getBlock <em>Block</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Block</em>' containment reference.
+ * @see #getBlock()
+ * @generated
+ */
+ void setBlock(Block value);
+
+} // AcceptBlock
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AcceptClause.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AcceptClause.java
new file mode 100644
index 00000000000..0b095fc75f6
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AcceptClause.java
@@ -0,0 +1,82 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Accept Clause</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.AcceptClause#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.AcceptClause#getQualifiedNameList <em>Qualified Name List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getAcceptClause()
+ * @model
+ * @generated
+ */
+public interface AcceptClause extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getAcceptClause_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.AcceptClause#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Qualified Name List</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Qualified Name List</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Qualified Name List</em>' containment reference.
+ * @see #setQualifiedNameList(QualifiedNameList)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getAcceptClause_QualifiedNameList()
+ * @model containment="true"
+ * @generated
+ */
+ QualifiedNameList getQualifiedNameList();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.AcceptClause#getQualifiedNameList <em>Qualified Name List</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Qualified Name List</em>' containment reference.
+ * @see #getQualifiedNameList()
+ * @generated
+ */
+ void setQualifiedNameList(QualifiedNameList value);
+
+} // AcceptClause
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AcceptStatement.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AcceptStatement.java
new file mode 100644
index 00000000000..2e642d53c70
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AcceptStatement.java
@@ -0,0 +1,108 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Accept Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.AcceptStatement#getClause <em>Clause</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.AcceptStatement#getSimpleAccept <em>Simple Accept</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.AcceptStatement#getCompoundAccept <em>Compound Accept</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getAcceptStatement()
+ * @model
+ * @generated
+ */
+public interface AcceptStatement extends Statement
+{
+ /**
+ * Returns the value of the '<em><b>Clause</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Clause</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Clause</em>' containment reference.
+ * @see #setClause(AcceptClause)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getAcceptStatement_Clause()
+ * @model containment="true"
+ * @generated
+ */
+ AcceptClause getClause();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.AcceptStatement#getClause <em>Clause</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Clause</em>' containment reference.
+ * @see #getClause()
+ * @generated
+ */
+ void setClause(AcceptClause value);
+
+ /**
+ * Returns the value of the '<em><b>Simple Accept</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Simple Accept</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Simple Accept</em>' containment reference.
+ * @see #setSimpleAccept(SimpleAcceptStatementCompletion)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getAcceptStatement_SimpleAccept()
+ * @model containment="true"
+ * @generated
+ */
+ SimpleAcceptStatementCompletion getSimpleAccept();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.AcceptStatement#getSimpleAccept <em>Simple Accept</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Simple Accept</em>' containment reference.
+ * @see #getSimpleAccept()
+ * @generated
+ */
+ void setSimpleAccept(SimpleAcceptStatementCompletion value);
+
+ /**
+ * Returns the value of the '<em><b>Compound Accept</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Compound Accept</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Compound Accept</em>' containment reference.
+ * @see #setCompoundAccept(CompoundAcceptStatementCompletion)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getAcceptStatement_CompoundAccept()
+ * @model containment="true"
+ * @generated
+ */
+ CompoundAcceptStatementCompletion getCompoundAccept();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.AcceptStatement#getCompoundAccept <em>Compound Accept</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Compound Accept</em>' containment reference.
+ * @see #getCompoundAccept()
+ * @generated
+ */
+ void setCompoundAccept(CompoundAcceptStatementCompletion value);
+
+} // AcceptStatement
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AccessCompletion.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AccessCompletion.java
new file mode 100644
index 00000000000..46558e9691a
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AccessCompletion.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Access Completion</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.AccessCompletion#getAccessIndex <em>Access Index</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getAccessCompletion()
+ * @model
+ * @generated
+ */
+public interface AccessCompletion extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Access Index</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Access Index</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Access Index</em>' containment reference.
+ * @see #setAccessIndex(Expression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getAccessCompletion_AccessIndex()
+ * @model containment="true"
+ * @generated
+ */
+ Expression getAccessIndex();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.AccessCompletion#getAccessIndex <em>Access Index</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Access Index</em>' containment reference.
+ * @see #getAccessIndex()
+ * @generated
+ */
+ void setAccessIndex(Expression value);
+
+} // AccessCompletion
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AdditiveExpression.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AdditiveExpression.java
new file mode 100644
index 00000000000..54e6dbf5fb3
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AdditiveExpression.java
@@ -0,0 +1,64 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Additive Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.AdditiveExpression#getExp <em>Exp</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.AdditiveExpression#getOp <em>Op</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getAdditiveExpression()
+ * @model
+ * @generated
+ */
+public interface AdditiveExpression extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Exp</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.alf.alf.MultiplicativeExpression}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Exp</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Exp</em>' containment reference list.
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getAdditiveExpression_Exp()
+ * @model containment="true"
+ * @generated
+ */
+ EList<MultiplicativeExpression> getExp();
+
+ /**
+ * Returns the value of the '<em><b>Op</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Op</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Op</em>' attribute list.
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getAdditiveExpression_Op()
+ * @model unique="false"
+ * @generated
+ */
+ EList<String> getOp();
+
+} // AdditiveExpression
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AlfFactory.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AlfFactory.java
new file mode 100644
index 00000000000..712db012900
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AlfFactory.java
@@ -0,0 +1,956 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage
+ * @generated
+ */
+public interface AlfFactory extends EFactory
+{
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ AlfFactory eINSTANCE = org.eclipse.papyrus.alf.alf.impl.AlfFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Test</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Test</em>'.
+ * @generated
+ */
+ Test createTest();
+
+ /**
+ * Returns a new object of class '<em>LITERAL</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>LITERAL</em>'.
+ * @generated
+ */
+ LITERAL createLITERAL();
+
+ /**
+ * Returns a new object of class '<em>BOOLEAN LITERAL</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>BOOLEAN LITERAL</em>'.
+ * @generated
+ */
+ BOOLEAN_LITERAL createBOOLEAN_LITERAL();
+
+ /**
+ * Returns a new object of class '<em>NUMBER LITERAL</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>NUMBER LITERAL</em>'.
+ * @generated
+ */
+ NUMBER_LITERAL createNUMBER_LITERAL();
+
+ /**
+ * Returns a new object of class '<em>INTEGER LITERAL</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>INTEGER LITERAL</em>'.
+ * @generated
+ */
+ INTEGER_LITERAL createINTEGER_LITERAL();
+
+ /**
+ * Returns a new object of class '<em>UNLIMITED LITERAL</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>UNLIMITED LITERAL</em>'.
+ * @generated
+ */
+ UNLIMITED_LITERAL createUNLIMITED_LITERAL();
+
+ /**
+ * Returns a new object of class '<em>STRING LITERAL</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>STRING LITERAL</em>'.
+ * @generated
+ */
+ STRING_LITERAL createSTRING_LITERAL();
+
+ /**
+ * Returns a new object of class '<em>Name Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Name Expression</em>'.
+ * @generated
+ */
+ NameExpression createNameExpression();
+
+ /**
+ * Returns a new object of class '<em>Qualified Name Path</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Qualified Name Path</em>'.
+ * @generated
+ */
+ QualifiedNamePath createQualifiedNamePath();
+
+ /**
+ * Returns a new object of class '<em>Unqualified Name</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Unqualified Name</em>'.
+ * @generated
+ */
+ UnqualifiedName createUnqualifiedName();
+
+ /**
+ * Returns a new object of class '<em>Template Binding</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Template Binding</em>'.
+ * @generated
+ */
+ TemplateBinding createTemplateBinding();
+
+ /**
+ * Returns a new object of class '<em>Named Template Binding</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Named Template Binding</em>'.
+ * @generated
+ */
+ NamedTemplateBinding createNamedTemplateBinding();
+
+ /**
+ * Returns a new object of class '<em>Qualified Name With Binding</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Qualified Name With Binding</em>'.
+ * @generated
+ */
+ QualifiedNameWithBinding createQualifiedNameWithBinding();
+
+ /**
+ * Returns a new object of class '<em>Tuple</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Tuple</em>'.
+ * @generated
+ */
+ Tuple createTuple();
+
+ /**
+ * Returns a new object of class '<em>Tuple Element</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Tuple Element</em>'.
+ * @generated
+ */
+ TupleElement createTupleElement();
+
+ /**
+ * Returns a new object of class '<em>Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Expression</em>'.
+ * @generated
+ */
+ Expression createExpression();
+
+ /**
+ * Returns a new object of class '<em>Conditional Test Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Conditional Test Expression</em>'.
+ * @generated
+ */
+ ConditionalTestExpression createConditionalTestExpression();
+
+ /**
+ * Returns a new object of class '<em>Conditional Or Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Conditional Or Expression</em>'.
+ * @generated
+ */
+ ConditionalOrExpression createConditionalOrExpression();
+
+ /**
+ * Returns a new object of class '<em>Conditional And Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Conditional And Expression</em>'.
+ * @generated
+ */
+ ConditionalAndExpression createConditionalAndExpression();
+
+ /**
+ * Returns a new object of class '<em>Inclusive Or Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Inclusive Or Expression</em>'.
+ * @generated
+ */
+ InclusiveOrExpression createInclusiveOrExpression();
+
+ /**
+ * Returns a new object of class '<em>Exclusive Or Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Exclusive Or Expression</em>'.
+ * @generated
+ */
+ ExclusiveOrExpression createExclusiveOrExpression();
+
+ /**
+ * Returns a new object of class '<em>And Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>And Expression</em>'.
+ * @generated
+ */
+ AndExpression createAndExpression();
+
+ /**
+ * Returns a new object of class '<em>Equality Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Equality Expression</em>'.
+ * @generated
+ */
+ EqualityExpression createEqualityExpression();
+
+ /**
+ * Returns a new object of class '<em>Classification Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Classification Expression</em>'.
+ * @generated
+ */
+ ClassificationExpression createClassificationExpression();
+
+ /**
+ * Returns a new object of class '<em>Relational Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Relational Expression</em>'.
+ * @generated
+ */
+ RelationalExpression createRelationalExpression();
+
+ /**
+ * Returns a new object of class '<em>Shift Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Shift Expression</em>'.
+ * @generated
+ */
+ ShiftExpression createShiftExpression();
+
+ /**
+ * Returns a new object of class '<em>Additive Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Additive Expression</em>'.
+ * @generated
+ */
+ AdditiveExpression createAdditiveExpression();
+
+ /**
+ * Returns a new object of class '<em>Multiplicative Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Multiplicative Expression</em>'.
+ * @generated
+ */
+ MultiplicativeExpression createMultiplicativeExpression();
+
+ /**
+ * Returns a new object of class '<em>Unary Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Unary Expression</em>'.
+ * @generated
+ */
+ UnaryExpression createUnaryExpression();
+
+ /**
+ * Returns a new object of class '<em>Primary Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Primary Expression</em>'.
+ * @generated
+ */
+ PrimaryExpression createPrimaryExpression();
+
+ /**
+ * Returns a new object of class '<em>Suffix Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Suffix Expression</em>'.
+ * @generated
+ */
+ SuffixExpression createSuffixExpression();
+
+ /**
+ * Returns a new object of class '<em>Operation Call Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Operation Call Expression</em>'.
+ * @generated
+ */
+ OperationCallExpression createOperationCallExpression();
+
+ /**
+ * Returns a new object of class '<em>Property Call Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Property Call Expression</em>'.
+ * @generated
+ */
+ PropertyCallExpression createPropertyCallExpression();
+
+ /**
+ * Returns a new object of class '<em>Link Operation Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Link Operation Expression</em>'.
+ * @generated
+ */
+ LinkOperationExpression createLinkOperationExpression();
+
+ /**
+ * Returns a new object of class '<em>Link Operation Tuple</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Link Operation Tuple</em>'.
+ * @generated
+ */
+ LinkOperationTuple createLinkOperationTuple();
+
+ /**
+ * Returns a new object of class '<em>Link Operation Tuple Element</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Link Operation Tuple Element</em>'.
+ * @generated
+ */
+ LinkOperationTupleElement createLinkOperationTupleElement();
+
+ /**
+ * Returns a new object of class '<em>Sequence Operation Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Sequence Operation Expression</em>'.
+ * @generated
+ */
+ SequenceOperationExpression createSequenceOperationExpression();
+
+ /**
+ * Returns a new object of class '<em>Sequence Reduction Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Sequence Reduction Expression</em>'.
+ * @generated
+ */
+ SequenceReductionExpression createSequenceReductionExpression();
+
+ /**
+ * Returns a new object of class '<em>Sequence Expansion Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Sequence Expansion Expression</em>'.
+ * @generated
+ */
+ SequenceExpansionExpression createSequenceExpansionExpression();
+
+ /**
+ * Returns a new object of class '<em>Select Or Reject Operation</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Select Or Reject Operation</em>'.
+ * @generated
+ */
+ SelectOrRejectOperation createSelectOrRejectOperation();
+
+ /**
+ * Returns a new object of class '<em>Collect Or Iterate Operation</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Collect Or Iterate Operation</em>'.
+ * @generated
+ */
+ CollectOrIterateOperation createCollectOrIterateOperation();
+
+ /**
+ * Returns a new object of class '<em>For All Or Exists Or One Operation</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>For All Or Exists Or One Operation</em>'.
+ * @generated
+ */
+ ForAllOrExistsOrOneOperation createForAllOrExistsOrOneOperation();
+
+ /**
+ * Returns a new object of class '<em>Is Unique Operation</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Is Unique Operation</em>'.
+ * @generated
+ */
+ IsUniqueOperation createIsUniqueOperation();
+
+ /**
+ * Returns a new object of class '<em>Value Specification</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Value Specification</em>'.
+ * @generated
+ */
+ ValueSpecification createValueSpecification();
+
+ /**
+ * Returns a new object of class '<em>Non Literal Value Specification</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Non Literal Value Specification</em>'.
+ * @generated
+ */
+ NonLiteralValueSpecification createNonLiteralValueSpecification();
+
+ /**
+ * Returns a new object of class '<em>Parenthesized Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Parenthesized Expression</em>'.
+ * @generated
+ */
+ ParenthesizedExpression createParenthesizedExpression();
+
+ /**
+ * Returns a new object of class '<em>Null Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Null Expression</em>'.
+ * @generated
+ */
+ NullExpression createNullExpression();
+
+ /**
+ * Returns a new object of class '<em>This Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>This Expression</em>'.
+ * @generated
+ */
+ ThisExpression createThisExpression();
+
+ /**
+ * Returns a new object of class '<em>Super Invocation Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Super Invocation Expression</em>'.
+ * @generated
+ */
+ SuperInvocationExpression createSuperInvocationExpression();
+
+ /**
+ * Returns a new object of class '<em>Instance Creation Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Instance Creation Expression</em>'.
+ * @generated
+ */
+ InstanceCreationExpression createInstanceCreationExpression();
+
+ /**
+ * Returns a new object of class '<em>Instance Creation Tuple</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Instance Creation Tuple</em>'.
+ * @generated
+ */
+ InstanceCreationTuple createInstanceCreationTuple();
+
+ /**
+ * Returns a new object of class '<em>Instance Creation Tuple Element</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Instance Creation Tuple Element</em>'.
+ * @generated
+ */
+ InstanceCreationTupleElement createInstanceCreationTupleElement();
+
+ /**
+ * Returns a new object of class '<em>Sequence Construction Or Access Completion</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Sequence Construction Or Access Completion</em>'.
+ * @generated
+ */
+ SequenceConstructionOrAccessCompletion createSequenceConstructionOrAccessCompletion();
+
+ /**
+ * Returns a new object of class '<em>Access Completion</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Access Completion</em>'.
+ * @generated
+ */
+ AccessCompletion createAccessCompletion();
+
+ /**
+ * Returns a new object of class '<em>Partial Sequence Construction Completion</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Partial Sequence Construction Completion</em>'.
+ * @generated
+ */
+ PartialSequenceConstructionCompletion createPartialSequenceConstructionCompletion();
+
+ /**
+ * Returns a new object of class '<em>Sequence Construction Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Sequence Construction Expression</em>'.
+ * @generated
+ */
+ SequenceConstructionExpression createSequenceConstructionExpression();
+
+ /**
+ * Returns a new object of class '<em>Sequence Element</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Sequence Element</em>'.
+ * @generated
+ */
+ SequenceElement createSequenceElement();
+
+ /**
+ * Returns a new object of class '<em>Class Extent Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Class Extent Expression</em>'.
+ * @generated
+ */
+ ClassExtentExpression createClassExtentExpression();
+
+ /**
+ * Returns a new object of class '<em>Block</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Block</em>'.
+ * @generated
+ */
+ Block createBlock();
+
+ /**
+ * Returns a new object of class '<em>Statement Sequence</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Statement Sequence</em>'.
+ * @generated
+ */
+ StatementSequence createStatementSequence();
+
+ /**
+ * Returns a new object of class '<em>Documented Statement</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Documented Statement</em>'.
+ * @generated
+ */
+ DocumentedStatement createDocumentedStatement();
+
+ /**
+ * Returns a new object of class '<em>Inline Statement</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Inline Statement</em>'.
+ * @generated
+ */
+ InlineStatement createInlineStatement();
+
+ /**
+ * Returns a new object of class '<em>Annotated Statement</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Annotated Statement</em>'.
+ * @generated
+ */
+ AnnotatedStatement createAnnotatedStatement();
+
+ /**
+ * Returns a new object of class '<em>Statement</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Statement</em>'.
+ * @generated
+ */
+ Statement createStatement();
+
+ /**
+ * Returns a new object of class '<em>Annotation</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Annotation</em>'.
+ * @generated
+ */
+ Annotation createAnnotation();
+
+ /**
+ * Returns a new object of class '<em>Block Statement</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Block Statement</em>'.
+ * @generated
+ */
+ BlockStatement createBlockStatement();
+
+ /**
+ * Returns a new object of class '<em>Empty Statement</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Empty Statement</em>'.
+ * @generated
+ */
+ EmptyStatement createEmptyStatement();
+
+ /**
+ * Returns a new object of class '<em>Local Name Declaration Statement</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Local Name Declaration Statement</em>'.
+ * @generated
+ */
+ LocalNameDeclarationStatement createLocalNameDeclarationStatement();
+
+ /**
+ * Returns a new object of class '<em>If Statement</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>If Statement</em>'.
+ * @generated
+ */
+ IfStatement createIfStatement();
+
+ /**
+ * Returns a new object of class '<em>Sequential Clauses</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Sequential Clauses</em>'.
+ * @generated
+ */
+ SequentialClauses createSequentialClauses();
+
+ /**
+ * Returns a new object of class '<em>Concurrent Clauses</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Concurrent Clauses</em>'.
+ * @generated
+ */
+ ConcurrentClauses createConcurrentClauses();
+
+ /**
+ * Returns a new object of class '<em>Non Final Clause</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Non Final Clause</em>'.
+ * @generated
+ */
+ NonFinalClause createNonFinalClause();
+
+ /**
+ * Returns a new object of class '<em>Final Clause</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Final Clause</em>'.
+ * @generated
+ */
+ FinalClause createFinalClause();
+
+ /**
+ * Returns a new object of class '<em>Switch Statement</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Switch Statement</em>'.
+ * @generated
+ */
+ SwitchStatement createSwitchStatement();
+
+ /**
+ * Returns a new object of class '<em>Switch Clause</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Switch Clause</em>'.
+ * @generated
+ */
+ SwitchClause createSwitchClause();
+
+ /**
+ * Returns a new object of class '<em>Switch Case</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Switch Case</em>'.
+ * @generated
+ */
+ SwitchCase createSwitchCase();
+
+ /**
+ * Returns a new object of class '<em>Switch Default Clause</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Switch Default Clause</em>'.
+ * @generated
+ */
+ SwitchDefaultClause createSwitchDefaultClause();
+
+ /**
+ * Returns a new object of class '<em>Non Empty Statement Sequence</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Non Empty Statement Sequence</em>'.
+ * @generated
+ */
+ NonEmptyStatementSequence createNonEmptyStatementSequence();
+
+ /**
+ * Returns a new object of class '<em>While Statement</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>While Statement</em>'.
+ * @generated
+ */
+ WhileStatement createWhileStatement();
+
+ /**
+ * Returns a new object of class '<em>Do Statement</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Do Statement</em>'.
+ * @generated
+ */
+ DoStatement createDoStatement();
+
+ /**
+ * Returns a new object of class '<em>For Statement</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>For Statement</em>'.
+ * @generated
+ */
+ ForStatement createForStatement();
+
+ /**
+ * Returns a new object of class '<em>For Control</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>For Control</em>'.
+ * @generated
+ */
+ ForControl createForControl();
+
+ /**
+ * Returns a new object of class '<em>Loop Variable Definition</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Loop Variable Definition</em>'.
+ * @generated
+ */
+ LoopVariableDefinition createLoopVariableDefinition();
+
+ /**
+ * Returns a new object of class '<em>Break Statement</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Break Statement</em>'.
+ * @generated
+ */
+ BreakStatement createBreakStatement();
+
+ /**
+ * Returns a new object of class '<em>Return Statement</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Return Statement</em>'.
+ * @generated
+ */
+ ReturnStatement createReturnStatement();
+
+ /**
+ * Returns a new object of class '<em>Accept Statement</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Accept Statement</em>'.
+ * @generated
+ */
+ AcceptStatement createAcceptStatement();
+
+ /**
+ * Returns a new object of class '<em>Simple Accept Statement Completion</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Simple Accept Statement Completion</em>'.
+ * @generated
+ */
+ SimpleAcceptStatementCompletion createSimpleAcceptStatementCompletion();
+
+ /**
+ * Returns a new object of class '<em>Compound Accept Statement Completion</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Compound Accept Statement Completion</em>'.
+ * @generated
+ */
+ CompoundAcceptStatementCompletion createCompoundAcceptStatementCompletion();
+
+ /**
+ * Returns a new object of class '<em>Accept Block</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Accept Block</em>'.
+ * @generated
+ */
+ AcceptBlock createAcceptBlock();
+
+ /**
+ * Returns a new object of class '<em>Accept Clause</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Accept Clause</em>'.
+ * @generated
+ */
+ AcceptClause createAcceptClause();
+
+ /**
+ * Returns a new object of class '<em>Classify Statement</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Classify Statement</em>'.
+ * @generated
+ */
+ ClassifyStatement createClassifyStatement();
+
+ /**
+ * Returns a new object of class '<em>Classification Clause</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Classification Clause</em>'.
+ * @generated
+ */
+ ClassificationClause createClassificationClause();
+
+ /**
+ * Returns a new object of class '<em>Classification From Clause</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Classification From Clause</em>'.
+ * @generated
+ */
+ ClassificationFromClause createClassificationFromClause();
+
+ /**
+ * Returns a new object of class '<em>Classification To Clause</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Classification To Clause</em>'.
+ * @generated
+ */
+ ClassificationToClause createClassificationToClause();
+
+ /**
+ * Returns a new object of class '<em>Reclassify All Clause</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Reclassify All Clause</em>'.
+ * @generated
+ */
+ ReclassifyAllClause createReclassifyAllClause();
+
+ /**
+ * Returns a new object of class '<em>Qualified Name List</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Qualified Name List</em>'.
+ * @generated
+ */
+ QualifiedNameList createQualifiedNameList();
+
+ /**
+ * Returns a new object of class '<em>Invocation Or Assignement Or Declaration Statement</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Invocation Or Assignement Or Declaration Statement</em>'.
+ * @generated
+ */
+ InvocationOrAssignementOrDeclarationStatement createInvocationOrAssignementOrDeclarationStatement();
+
+ /**
+ * Returns a new object of class '<em>Super Invocation Statement</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Super Invocation Statement</em>'.
+ * @generated
+ */
+ SuperInvocationStatement createSuperInvocationStatement();
+
+ /**
+ * Returns a new object of class '<em>This Invocation Statement</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>This Invocation Statement</em>'.
+ * @generated
+ */
+ ThisInvocationStatement createThisInvocationStatement();
+
+ /**
+ * Returns a new object of class '<em>Instance Creation Invocation Statement</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Instance Creation Invocation Statement</em>'.
+ * @generated
+ */
+ InstanceCreationInvocationStatement createInstanceCreationInvocationStatement();
+
+ /**
+ * Returns a new object of class '<em>Variable Declaration Completion</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Variable Declaration Completion</em>'.
+ * @generated
+ */
+ VariableDeclarationCompletion createVariableDeclarationCompletion();
+
+ /**
+ * Returns a new object of class '<em>Assignment Completion</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Assignment Completion</em>'.
+ * @generated
+ */
+ AssignmentCompletion createAssignmentCompletion();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ AlfPackage getAlfPackage();
+
+} //AlfFactory
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AlfPackage.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AlfPackage.java
new file mode 100644
index 00000000000..43d15b4fe79
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AlfPackage.java
@@ -0,0 +1,9052 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.AlfFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface AlfPackage extends EPackage
+{
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "alf";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/alf/Alf";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "alf";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ AlfPackage eINSTANCE = org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.TestImpl <em>Test</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.TestImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getTest()
+ * @generated
+ */
+ int TEST = 0;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEST__EXPRESSION = 0;
+
+ /**
+ * The feature id for the '<em><b>Assign Expression</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEST__ASSIGN_EXPRESSION = 1;
+
+ /**
+ * The feature id for the '<em><b>Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEST__STATEMENTS = 2;
+
+ /**
+ * The feature id for the '<em><b>Block</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEST__BLOCK = 3;
+
+ /**
+ * The number of structural features of the '<em>Test</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEST_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.ValueSpecificationImpl <em>Value Specification</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ValueSpecificationImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getValueSpecification()
+ * @generated
+ */
+ int VALUE_SPECIFICATION = 43;
+
+ /**
+ * The number of structural features of the '<em>Value Specification</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VALUE_SPECIFICATION_FEATURE_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.LITERALImpl <em>LITERAL</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.LITERALImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getLITERAL()
+ * @generated
+ */
+ int LITERAL = 1;
+
+ /**
+ * The number of structural features of the '<em>LITERAL</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LITERAL_FEATURE_COUNT = VALUE_SPECIFICATION_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.BOOLEAN_LITERALImpl <em>BOOLEAN LITERAL</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.BOOLEAN_LITERALImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getBOOLEAN_LITERAL()
+ * @generated
+ */
+ int BOOLEAN_LITERAL = 2;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOLEAN_LITERAL__VALUE = LITERAL_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>BOOLEAN LITERAL</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOLEAN_LITERAL_FEATURE_COUNT = LITERAL_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.NUMBER_LITERALImpl <em>NUMBER LITERAL</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.NUMBER_LITERALImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getNUMBER_LITERAL()
+ * @generated
+ */
+ int NUMBER_LITERAL = 3;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NUMBER_LITERAL__VALUE = LITERAL_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>NUMBER LITERAL</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NUMBER_LITERAL_FEATURE_COUNT = LITERAL_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.INTEGER_LITERALImpl <em>INTEGER LITERAL</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.INTEGER_LITERALImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getINTEGER_LITERAL()
+ * @generated
+ */
+ int INTEGER_LITERAL = 4;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTEGER_LITERAL__VALUE = NUMBER_LITERAL__VALUE;
+
+ /**
+ * The number of structural features of the '<em>INTEGER LITERAL</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTEGER_LITERAL_FEATURE_COUNT = NUMBER_LITERAL_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.UNLIMITED_LITERALImpl <em>UNLIMITED LITERAL</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.UNLIMITED_LITERALImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getUNLIMITED_LITERAL()
+ * @generated
+ */
+ int UNLIMITED_LITERAL = 5;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNLIMITED_LITERAL__VALUE = NUMBER_LITERAL__VALUE;
+
+ /**
+ * The number of structural features of the '<em>UNLIMITED LITERAL</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNLIMITED_LITERAL_FEATURE_COUNT = NUMBER_LITERAL_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.STRING_LITERALImpl <em>STRING LITERAL</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.STRING_LITERALImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSTRING_LITERAL()
+ * @generated
+ */
+ int STRING_LITERAL = 6;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STRING_LITERAL__VALUE = LITERAL_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>STRING LITERAL</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STRING_LITERAL_FEATURE_COUNT = LITERAL_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.NameExpressionImpl <em>Name Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.NameExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getNameExpression()
+ * @generated
+ */
+ int NAME_EXPRESSION = 7;
+
+ /**
+ * The feature id for the '<em><b>Prefix Op</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NAME_EXPRESSION__PREFIX_OP = VALUE_SPECIFICATION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Path</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NAME_EXPRESSION__PATH = VALUE_SPECIFICATION_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NAME_EXPRESSION__ID = VALUE_SPECIFICATION_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Invocation Completion</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NAME_EXPRESSION__INVOCATION_COMPLETION = VALUE_SPECIFICATION_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Sequence Construction Completion</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NAME_EXPRESSION__SEQUENCE_CONSTRUCTION_COMPLETION = VALUE_SPECIFICATION_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Postfix Op</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NAME_EXPRESSION__POSTFIX_OP = VALUE_SPECIFICATION_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Suffix</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NAME_EXPRESSION__SUFFIX = VALUE_SPECIFICATION_FEATURE_COUNT + 6;
+
+ /**
+ * The number of structural features of the '<em>Name Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NAME_EXPRESSION_FEATURE_COUNT = VALUE_SPECIFICATION_FEATURE_COUNT + 7;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.QualifiedNamePathImpl <em>Qualified Name Path</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.QualifiedNamePathImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getQualifiedNamePath()
+ * @generated
+ */
+ int QUALIFIED_NAME_PATH = 8;
+
+ /**
+ * The feature id for the '<em><b>Namespace</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int QUALIFIED_NAME_PATH__NAMESPACE = 0;
+
+ /**
+ * The number of structural features of the '<em>Qualified Name Path</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int QUALIFIED_NAME_PATH_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.UnqualifiedNameImpl <em>Unqualified Name</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.UnqualifiedNameImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getUnqualifiedName()
+ * @generated
+ */
+ int UNQUALIFIED_NAME = 9;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNQUALIFIED_NAME__NAME = 0;
+
+ /**
+ * The feature id for the '<em><b>Template Binding</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNQUALIFIED_NAME__TEMPLATE_BINDING = 1;
+
+ /**
+ * The number of structural features of the '<em>Unqualified Name</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNQUALIFIED_NAME_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.TemplateBindingImpl <em>Template Binding</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.TemplateBindingImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getTemplateBinding()
+ * @generated
+ */
+ int TEMPLATE_BINDING = 10;
+
+ /**
+ * The feature id for the '<em><b>Bindings</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPLATE_BINDING__BINDINGS = 0;
+
+ /**
+ * The number of structural features of the '<em>Template Binding</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPLATE_BINDING_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.NamedTemplateBindingImpl <em>Named Template Binding</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.NamedTemplateBindingImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getNamedTemplateBinding()
+ * @generated
+ */
+ int NAMED_TEMPLATE_BINDING = 11;
+
+ /**
+ * The feature id for the '<em><b>Formal</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NAMED_TEMPLATE_BINDING__FORMAL = 0;
+
+ /**
+ * The feature id for the '<em><b>Actual</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NAMED_TEMPLATE_BINDING__ACTUAL = 1;
+
+ /**
+ * The number of structural features of the '<em>Named Template Binding</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NAMED_TEMPLATE_BINDING_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.QualifiedNameWithBindingImpl <em>Qualified Name With Binding</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.QualifiedNameWithBindingImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getQualifiedNameWithBinding()
+ * @generated
+ */
+ int QUALIFIED_NAME_WITH_BINDING = 12;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int QUALIFIED_NAME_WITH_BINDING__ID = 0;
+
+ /**
+ * The feature id for the '<em><b>Binding</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int QUALIFIED_NAME_WITH_BINDING__BINDING = 1;
+
+ /**
+ * The feature id for the '<em><b>Remaining</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int QUALIFIED_NAME_WITH_BINDING__REMAINING = 2;
+
+ /**
+ * The number of structural features of the '<em>Qualified Name With Binding</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int QUALIFIED_NAME_WITH_BINDING_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.TupleImpl <em>Tuple</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.TupleImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getTuple()
+ * @generated
+ */
+ int TUPLE = 13;
+
+ /**
+ * The feature id for the '<em><b>Tuple Elements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TUPLE__TUPLE_ELEMENTS = 0;
+
+ /**
+ * The number of structural features of the '<em>Tuple</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TUPLE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.TupleElementImpl <em>Tuple Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.TupleElementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getTupleElement()
+ * @generated
+ */
+ int TUPLE_ELEMENT = 14;
+
+ /**
+ * The feature id for the '<em><b>Argument</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TUPLE_ELEMENT__ARGUMENT = 0;
+
+ /**
+ * The number of structural features of the '<em>Tuple Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TUPLE_ELEMENT_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.SequenceElementImpl <em>Sequence Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.SequenceElementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSequenceElement()
+ * @generated
+ */
+ int SEQUENCE_ELEMENT = 56;
+
+ /**
+ * The number of structural features of the '<em>Sequence Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENCE_ELEMENT_FEATURE_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.ExpressionImpl <em>Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getExpression()
+ * @generated
+ */
+ int EXPRESSION = 15;
+
+ /**
+ * The number of structural features of the '<em>Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXPRESSION_FEATURE_COUNT = SEQUENCE_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.ConditionalTestExpressionImpl <em>Conditional Test Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ConditionalTestExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getConditionalTestExpression()
+ * @generated
+ */
+ int CONDITIONAL_TEST_EXPRESSION = 16;
+
+ /**
+ * The feature id for the '<em><b>Exp</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONDITIONAL_TEST_EXPRESSION__EXP = EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>When True</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONDITIONAL_TEST_EXPRESSION__WHEN_TRUE = EXPRESSION_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>When False</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONDITIONAL_TEST_EXPRESSION__WHEN_FALSE = EXPRESSION_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Conditional Test Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONDITIONAL_TEST_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.ConditionalOrExpressionImpl <em>Conditional Or Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ConditionalOrExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getConditionalOrExpression()
+ * @generated
+ */
+ int CONDITIONAL_OR_EXPRESSION = 17;
+
+ /**
+ * The feature id for the '<em><b>Exp</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONDITIONAL_OR_EXPRESSION__EXP = 0;
+
+ /**
+ * The number of structural features of the '<em>Conditional Or Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONDITIONAL_OR_EXPRESSION_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.ConditionalAndExpressionImpl <em>Conditional And Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ConditionalAndExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getConditionalAndExpression()
+ * @generated
+ */
+ int CONDITIONAL_AND_EXPRESSION = 18;
+
+ /**
+ * The feature id for the '<em><b>Exp</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONDITIONAL_AND_EXPRESSION__EXP = 0;
+
+ /**
+ * The number of structural features of the '<em>Conditional And Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONDITIONAL_AND_EXPRESSION_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.InclusiveOrExpressionImpl <em>Inclusive Or Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.InclusiveOrExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getInclusiveOrExpression()
+ * @generated
+ */
+ int INCLUSIVE_OR_EXPRESSION = 19;
+
+ /**
+ * The feature id for the '<em><b>Exp</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INCLUSIVE_OR_EXPRESSION__EXP = 0;
+
+ /**
+ * The number of structural features of the '<em>Inclusive Or Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INCLUSIVE_OR_EXPRESSION_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.ExclusiveOrExpressionImpl <em>Exclusive Or Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ExclusiveOrExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getExclusiveOrExpression()
+ * @generated
+ */
+ int EXCLUSIVE_OR_EXPRESSION = 20;
+
+ /**
+ * The feature id for the '<em><b>Exp</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXCLUSIVE_OR_EXPRESSION__EXP = 0;
+
+ /**
+ * The number of structural features of the '<em>Exclusive Or Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXCLUSIVE_OR_EXPRESSION_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.AndExpressionImpl <em>And Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.AndExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getAndExpression()
+ * @generated
+ */
+ int AND_EXPRESSION = 21;
+
+ /**
+ * The feature id for the '<em><b>Exp</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AND_EXPRESSION__EXP = 0;
+
+ /**
+ * The number of structural features of the '<em>And Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AND_EXPRESSION_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.EqualityExpressionImpl <em>Equality Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.EqualityExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getEqualityExpression()
+ * @generated
+ */
+ int EQUALITY_EXPRESSION = 22;
+
+ /**
+ * The feature id for the '<em><b>Exp</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EQUALITY_EXPRESSION__EXP = 0;
+
+ /**
+ * The feature id for the '<em><b>Op</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EQUALITY_EXPRESSION__OP = 1;
+
+ /**
+ * The number of structural features of the '<em>Equality Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EQUALITY_EXPRESSION_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.ClassificationExpressionImpl <em>Classification Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ClassificationExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getClassificationExpression()
+ * @generated
+ */
+ int CLASSIFICATION_EXPRESSION = 23;
+
+ /**
+ * The feature id for the '<em><b>Exp</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASSIFICATION_EXPRESSION__EXP = 0;
+
+ /**
+ * The feature id for the '<em><b>Op</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASSIFICATION_EXPRESSION__OP = 1;
+
+ /**
+ * The feature id for the '<em><b>Type Name</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASSIFICATION_EXPRESSION__TYPE_NAME = 2;
+
+ /**
+ * The number of structural features of the '<em>Classification Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASSIFICATION_EXPRESSION_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.RelationalExpressionImpl <em>Relational Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.RelationalExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getRelationalExpression()
+ * @generated
+ */
+ int RELATIONAL_EXPRESSION = 24;
+
+ /**
+ * The feature id for the '<em><b>Left</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RELATIONAL_EXPRESSION__LEFT = 0;
+
+ /**
+ * The feature id for the '<em><b>Op</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RELATIONAL_EXPRESSION__OP = 1;
+
+ /**
+ * The feature id for the '<em><b>Right</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RELATIONAL_EXPRESSION__RIGHT = 2;
+
+ /**
+ * The number of structural features of the '<em>Relational Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RELATIONAL_EXPRESSION_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.ShiftExpressionImpl <em>Shift Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ShiftExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getShiftExpression()
+ * @generated
+ */
+ int SHIFT_EXPRESSION = 25;
+
+ /**
+ * The feature id for the '<em><b>Exp</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHIFT_EXPRESSION__EXP = 0;
+
+ /**
+ * The feature id for the '<em><b>Op</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHIFT_EXPRESSION__OP = 1;
+
+ /**
+ * The number of structural features of the '<em>Shift Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHIFT_EXPRESSION_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.AdditiveExpressionImpl <em>Additive Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.AdditiveExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getAdditiveExpression()
+ * @generated
+ */
+ int ADDITIVE_EXPRESSION = 26;
+
+ /**
+ * The feature id for the '<em><b>Exp</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADDITIVE_EXPRESSION__EXP = 0;
+
+ /**
+ * The feature id for the '<em><b>Op</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADDITIVE_EXPRESSION__OP = 1;
+
+ /**
+ * The number of structural features of the '<em>Additive Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADDITIVE_EXPRESSION_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.MultiplicativeExpressionImpl <em>Multiplicative Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.MultiplicativeExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getMultiplicativeExpression()
+ * @generated
+ */
+ int MULTIPLICATIVE_EXPRESSION = 27;
+
+ /**
+ * The feature id for the '<em><b>Exp</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTIPLICATIVE_EXPRESSION__EXP = 0;
+
+ /**
+ * The feature id for the '<em><b>Op</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTIPLICATIVE_EXPRESSION__OP = 1;
+
+ /**
+ * The number of structural features of the '<em>Multiplicative Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTIPLICATIVE_EXPRESSION_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.UnaryExpressionImpl <em>Unary Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.UnaryExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getUnaryExpression()
+ * @generated
+ */
+ int UNARY_EXPRESSION = 28;
+
+ /**
+ * The feature id for the '<em><b>Op</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNARY_EXPRESSION__OP = 0;
+
+ /**
+ * The feature id for the '<em><b>Exp</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNARY_EXPRESSION__EXP = 1;
+
+ /**
+ * The number of structural features of the '<em>Unary Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNARY_EXPRESSION_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.PrimaryExpressionImpl <em>Primary Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.PrimaryExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getPrimaryExpression()
+ * @generated
+ */
+ int PRIMARY_EXPRESSION = 29;
+
+ /**
+ * The feature id for the '<em><b>Prefix</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PRIMARY_EXPRESSION__PREFIX = 0;
+
+ /**
+ * The number of structural features of the '<em>Primary Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PRIMARY_EXPRESSION_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.SuffixExpressionImpl <em>Suffix Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.SuffixExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSuffixExpression()
+ * @generated
+ */
+ int SUFFIX_EXPRESSION = 30;
+
+ /**
+ * The number of structural features of the '<em>Suffix Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SUFFIX_EXPRESSION_FEATURE_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.OperationCallExpressionImpl <em>Operation Call Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.OperationCallExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getOperationCallExpression()
+ * @generated
+ */
+ int OPERATION_CALL_EXPRESSION = 31;
+
+ /**
+ * The feature id for the '<em><b>Operation Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OPERATION_CALL_EXPRESSION__OPERATION_NAME = SUFFIX_EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Tuple</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OPERATION_CALL_EXPRESSION__TUPLE = SUFFIX_EXPRESSION_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Suffix</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OPERATION_CALL_EXPRESSION__SUFFIX = SUFFIX_EXPRESSION_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Operation Call Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OPERATION_CALL_EXPRESSION_FEATURE_COUNT = SUFFIX_EXPRESSION_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.PropertyCallExpressionImpl <em>Property Call Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.PropertyCallExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getPropertyCallExpression()
+ * @generated
+ */
+ int PROPERTY_CALL_EXPRESSION = 32;
+
+ /**
+ * The feature id for the '<em><b>Property Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_CALL_EXPRESSION__PROPERTY_NAME = SUFFIX_EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Index</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_CALL_EXPRESSION__INDEX = SUFFIX_EXPRESSION_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Suffix</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_CALL_EXPRESSION__SUFFIX = SUFFIX_EXPRESSION_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Property Call Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_CALL_EXPRESSION_FEATURE_COUNT = SUFFIX_EXPRESSION_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.LinkOperationExpressionImpl <em>Link Operation Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.LinkOperationExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getLinkOperationExpression()
+ * @generated
+ */
+ int LINK_OPERATION_EXPRESSION = 33;
+
+ /**
+ * The feature id for the '<em><b>Kind</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINK_OPERATION_EXPRESSION__KIND = SUFFIX_EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Tuple</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINK_OPERATION_EXPRESSION__TUPLE = SUFFIX_EXPRESSION_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Link Operation Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINK_OPERATION_EXPRESSION_FEATURE_COUNT = SUFFIX_EXPRESSION_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.LinkOperationTupleImpl <em>Link Operation Tuple</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.LinkOperationTupleImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getLinkOperationTuple()
+ * @generated
+ */
+ int LINK_OPERATION_TUPLE = 34;
+
+ /**
+ * The feature id for the '<em><b>Link Operation Tuple Element</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINK_OPERATION_TUPLE__LINK_OPERATION_TUPLE_ELEMENT = 0;
+
+ /**
+ * The number of structural features of the '<em>Link Operation Tuple</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINK_OPERATION_TUPLE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.LinkOperationTupleElementImpl <em>Link Operation Tuple Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.LinkOperationTupleElementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getLinkOperationTupleElement()
+ * @generated
+ */
+ int LINK_OPERATION_TUPLE_ELEMENT = 35;
+
+ /**
+ * The feature id for the '<em><b>Role</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINK_OPERATION_TUPLE_ELEMENT__ROLE = 0;
+
+ /**
+ * The feature id for the '<em><b>Role Index</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINK_OPERATION_TUPLE_ELEMENT__ROLE_INDEX = 1;
+
+ /**
+ * The feature id for the '<em><b>Object</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINK_OPERATION_TUPLE_ELEMENT__OBJECT = 2;
+
+ /**
+ * The number of structural features of the '<em>Link Operation Tuple Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINK_OPERATION_TUPLE_ELEMENT_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.SequenceOperationExpressionImpl <em>Sequence Operation Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.SequenceOperationExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSequenceOperationExpression()
+ * @generated
+ */
+ int SEQUENCE_OPERATION_EXPRESSION = 36;
+
+ /**
+ * The feature id for the '<em><b>Operation Name</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENCE_OPERATION_EXPRESSION__OPERATION_NAME = SUFFIX_EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Tuple</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENCE_OPERATION_EXPRESSION__TUPLE = SUFFIX_EXPRESSION_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Suffix</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENCE_OPERATION_EXPRESSION__SUFFIX = SUFFIX_EXPRESSION_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Sequence Operation Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENCE_OPERATION_EXPRESSION_FEATURE_COUNT = SUFFIX_EXPRESSION_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.SequenceReductionExpressionImpl <em>Sequence Reduction Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.SequenceReductionExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSequenceReductionExpression()
+ * @generated
+ */
+ int SEQUENCE_REDUCTION_EXPRESSION = 37;
+
+ /**
+ * The feature id for the '<em><b>Is Ordered</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENCE_REDUCTION_EXPRESSION__IS_ORDERED = SUFFIX_EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Behavior</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENCE_REDUCTION_EXPRESSION__BEHAVIOR = SUFFIX_EXPRESSION_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Suffix</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENCE_REDUCTION_EXPRESSION__SUFFIX = SUFFIX_EXPRESSION_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Sequence Reduction Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENCE_REDUCTION_EXPRESSION_FEATURE_COUNT = SUFFIX_EXPRESSION_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.SequenceExpansionExpressionImpl <em>Sequence Expansion Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.SequenceExpansionExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSequenceExpansionExpression()
+ * @generated
+ */
+ int SEQUENCE_EXPANSION_EXPRESSION = 38;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENCE_EXPANSION_EXPRESSION__NAME = SUFFIX_EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Expr</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENCE_EXPANSION_EXPRESSION__EXPR = SUFFIX_EXPRESSION_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Suffix</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENCE_EXPANSION_EXPRESSION__SUFFIX = SUFFIX_EXPRESSION_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Sequence Expansion Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENCE_EXPANSION_EXPRESSION_FEATURE_COUNT = SUFFIX_EXPRESSION_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.SelectOrRejectOperationImpl <em>Select Or Reject Operation</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.SelectOrRejectOperationImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSelectOrRejectOperation()
+ * @generated
+ */
+ int SELECT_OR_REJECT_OPERATION = 39;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SELECT_OR_REJECT_OPERATION__NAME = SEQUENCE_EXPANSION_EXPRESSION__NAME;
+
+ /**
+ * The feature id for the '<em><b>Expr</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SELECT_OR_REJECT_OPERATION__EXPR = SEQUENCE_EXPANSION_EXPRESSION__EXPR;
+
+ /**
+ * The feature id for the '<em><b>Suffix</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SELECT_OR_REJECT_OPERATION__SUFFIX = SEQUENCE_EXPANSION_EXPRESSION__SUFFIX;
+
+ /**
+ * The feature id for the '<em><b>Op</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SELECT_OR_REJECT_OPERATION__OP = SEQUENCE_EXPANSION_EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Select Or Reject Operation</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SELECT_OR_REJECT_OPERATION_FEATURE_COUNT = SEQUENCE_EXPANSION_EXPRESSION_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.CollectOrIterateOperationImpl <em>Collect Or Iterate Operation</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.CollectOrIterateOperationImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getCollectOrIterateOperation()
+ * @generated
+ */
+ int COLLECT_OR_ITERATE_OPERATION = 40;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COLLECT_OR_ITERATE_OPERATION__NAME = SEQUENCE_EXPANSION_EXPRESSION__NAME;
+
+ /**
+ * The feature id for the '<em><b>Expr</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COLLECT_OR_ITERATE_OPERATION__EXPR = SEQUENCE_EXPANSION_EXPRESSION__EXPR;
+
+ /**
+ * The feature id for the '<em><b>Suffix</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COLLECT_OR_ITERATE_OPERATION__SUFFIX = SEQUENCE_EXPANSION_EXPRESSION__SUFFIX;
+
+ /**
+ * The feature id for the '<em><b>Op</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COLLECT_OR_ITERATE_OPERATION__OP = SEQUENCE_EXPANSION_EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Collect Or Iterate Operation</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COLLECT_OR_ITERATE_OPERATION_FEATURE_COUNT = SEQUENCE_EXPANSION_EXPRESSION_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.ForAllOrExistsOrOneOperationImpl <em>For All Or Exists Or One Operation</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ForAllOrExistsOrOneOperationImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getForAllOrExistsOrOneOperation()
+ * @generated
+ */
+ int FOR_ALL_OR_EXISTS_OR_ONE_OPERATION = 41;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOR_ALL_OR_EXISTS_OR_ONE_OPERATION__NAME = SEQUENCE_EXPANSION_EXPRESSION__NAME;
+
+ /**
+ * The feature id for the '<em><b>Expr</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOR_ALL_OR_EXISTS_OR_ONE_OPERATION__EXPR = SEQUENCE_EXPANSION_EXPRESSION__EXPR;
+
+ /**
+ * The feature id for the '<em><b>Suffix</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOR_ALL_OR_EXISTS_OR_ONE_OPERATION__SUFFIX = SEQUENCE_EXPANSION_EXPRESSION__SUFFIX;
+
+ /**
+ * The feature id for the '<em><b>Op</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOR_ALL_OR_EXISTS_OR_ONE_OPERATION__OP = SEQUENCE_EXPANSION_EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>For All Or Exists Or One Operation</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOR_ALL_OR_EXISTS_OR_ONE_OPERATION_FEATURE_COUNT = SEQUENCE_EXPANSION_EXPRESSION_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.IsUniqueOperationImpl <em>Is Unique Operation</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.IsUniqueOperationImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getIsUniqueOperation()
+ * @generated
+ */
+ int IS_UNIQUE_OPERATION = 42;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_UNIQUE_OPERATION__NAME = SEQUENCE_EXPANSION_EXPRESSION__NAME;
+
+ /**
+ * The feature id for the '<em><b>Expr</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_UNIQUE_OPERATION__EXPR = SEQUENCE_EXPANSION_EXPRESSION__EXPR;
+
+ /**
+ * The feature id for the '<em><b>Suffix</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_UNIQUE_OPERATION__SUFFIX = SEQUENCE_EXPANSION_EXPRESSION__SUFFIX;
+
+ /**
+ * The number of structural features of the '<em>Is Unique Operation</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_UNIQUE_OPERATION_FEATURE_COUNT = SEQUENCE_EXPANSION_EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.NonLiteralValueSpecificationImpl <em>Non Literal Value Specification</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.NonLiteralValueSpecificationImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getNonLiteralValueSpecification()
+ * @generated
+ */
+ int NON_LITERAL_VALUE_SPECIFICATION = 44;
+
+ /**
+ * The number of structural features of the '<em>Non Literal Value Specification</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NON_LITERAL_VALUE_SPECIFICATION_FEATURE_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.ParenthesizedExpressionImpl <em>Parenthesized Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ParenthesizedExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getParenthesizedExpression()
+ * @generated
+ */
+ int PARENTHESIZED_EXPRESSION = 45;
+
+ /**
+ * The feature id for the '<em><b>Exp Or Type Cast</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PARENTHESIZED_EXPRESSION__EXP_OR_TYPE_CAST = VALUE_SPECIFICATION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Casted</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PARENTHESIZED_EXPRESSION__CASTED = VALUE_SPECIFICATION_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Suffix</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PARENTHESIZED_EXPRESSION__SUFFIX = VALUE_SPECIFICATION_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Parenthesized Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PARENTHESIZED_EXPRESSION_FEATURE_COUNT = VALUE_SPECIFICATION_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.NullExpressionImpl <em>Null Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.NullExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getNullExpression()
+ * @generated
+ */
+ int NULL_EXPRESSION = 46;
+
+ /**
+ * The number of structural features of the '<em>Null Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NULL_EXPRESSION_FEATURE_COUNT = VALUE_SPECIFICATION_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.ThisExpressionImpl <em>This Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ThisExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getThisExpression()
+ * @generated
+ */
+ int THIS_EXPRESSION = 47;
+
+ /**
+ * The feature id for the '<em><b>Suffix</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int THIS_EXPRESSION__SUFFIX = VALUE_SPECIFICATION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>This Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int THIS_EXPRESSION_FEATURE_COUNT = VALUE_SPECIFICATION_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.SuperInvocationExpressionImpl <em>Super Invocation Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.SuperInvocationExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSuperInvocationExpression()
+ * @generated
+ */
+ int SUPER_INVOCATION_EXPRESSION = 48;
+
+ /**
+ * The feature id for the '<em><b>Tuple</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SUPER_INVOCATION_EXPRESSION__TUPLE = VALUE_SPECIFICATION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Operation Name</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SUPER_INVOCATION_EXPRESSION__OPERATION_NAME = VALUE_SPECIFICATION_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Super Invocation Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SUPER_INVOCATION_EXPRESSION_FEATURE_COUNT = VALUE_SPECIFICATION_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.InstanceCreationExpressionImpl <em>Instance Creation Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.InstanceCreationExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getInstanceCreationExpression()
+ * @generated
+ */
+ int INSTANCE_CREATION_EXPRESSION = 49;
+
+ /**
+ * The feature id for the '<em><b>Constructor</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_CREATION_EXPRESSION__CONSTRUCTOR = VALUE_SPECIFICATION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Tuple</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_CREATION_EXPRESSION__TUPLE = VALUE_SPECIFICATION_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Suffix</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_CREATION_EXPRESSION__SUFFIX = VALUE_SPECIFICATION_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Instance Creation Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_CREATION_EXPRESSION_FEATURE_COUNT = VALUE_SPECIFICATION_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.InstanceCreationTupleImpl <em>Instance Creation Tuple</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.InstanceCreationTupleImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getInstanceCreationTuple()
+ * @generated
+ */
+ int INSTANCE_CREATION_TUPLE = 50;
+
+ /**
+ * The feature id for the '<em><b>Instance Creation Tuple Element</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_CREATION_TUPLE__INSTANCE_CREATION_TUPLE_ELEMENT = 0;
+
+ /**
+ * The number of structural features of the '<em>Instance Creation Tuple</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_CREATION_TUPLE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.InstanceCreationTupleElementImpl <em>Instance Creation Tuple Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.InstanceCreationTupleElementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getInstanceCreationTupleElement()
+ * @generated
+ */
+ int INSTANCE_CREATION_TUPLE_ELEMENT = 51;
+
+ /**
+ * The feature id for the '<em><b>Role</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_CREATION_TUPLE_ELEMENT__ROLE = 0;
+
+ /**
+ * The feature id for the '<em><b>Object</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_CREATION_TUPLE_ELEMENT__OBJECT = 1;
+
+ /**
+ * The number of structural features of the '<em>Instance Creation Tuple Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_CREATION_TUPLE_ELEMENT_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.SequenceConstructionOrAccessCompletionImpl <em>Sequence Construction Or Access Completion</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.SequenceConstructionOrAccessCompletionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSequenceConstructionOrAccessCompletion()
+ * @generated
+ */
+ int SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION = 52;
+
+ /**
+ * The feature id for the '<em><b>Multiplicity Indicator</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__MULTIPLICITY_INDICATOR = 0;
+
+ /**
+ * The feature id for the '<em><b>Access Completion</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__ACCESS_COMPLETION = 1;
+
+ /**
+ * The feature id for the '<em><b>Sequence Completion</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__SEQUENCE_COMPLETION = 2;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__EXPRESSION = 3;
+
+ /**
+ * The number of structural features of the '<em>Sequence Construction Or Access Completion</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.AccessCompletionImpl <em>Access Completion</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.AccessCompletionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getAccessCompletion()
+ * @generated
+ */
+ int ACCESS_COMPLETION = 53;
+
+ /**
+ * The feature id for the '<em><b>Access Index</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACCESS_COMPLETION__ACCESS_INDEX = 0;
+
+ /**
+ * The number of structural features of the '<em>Access Completion</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACCESS_COMPLETION_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.PartialSequenceConstructionCompletionImpl <em>Partial Sequence Construction Completion</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.PartialSequenceConstructionCompletionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getPartialSequenceConstructionCompletion()
+ * @generated
+ */
+ int PARTIAL_SEQUENCE_CONSTRUCTION_COMPLETION = 54;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PARTIAL_SEQUENCE_CONSTRUCTION_COMPLETION__EXPRESSION = 0;
+
+ /**
+ * The number of structural features of the '<em>Partial Sequence Construction Completion</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PARTIAL_SEQUENCE_CONSTRUCTION_COMPLETION_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.SequenceConstructionExpressionImpl <em>Sequence Construction Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.SequenceConstructionExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSequenceConstructionExpression()
+ * @generated
+ */
+ int SEQUENCE_CONSTRUCTION_EXPRESSION = 55;
+
+ /**
+ * The feature id for the '<em><b>Sequence Element</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENCE_CONSTRUCTION_EXPRESSION__SEQUENCE_ELEMENT = SEQUENCE_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Range Upper</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENCE_CONSTRUCTION_EXPRESSION__RANGE_UPPER = SEQUENCE_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Sequence Construction Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENCE_CONSTRUCTION_EXPRESSION_FEATURE_COUNT = SEQUENCE_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.ClassExtentExpressionImpl <em>Class Extent Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ClassExtentExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getClassExtentExpression()
+ * @generated
+ */
+ int CLASS_EXTENT_EXPRESSION = 57;
+
+ /**
+ * The number of structural features of the '<em>Class Extent Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASS_EXTENT_EXPRESSION_FEATURE_COUNT = SUFFIX_EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.BlockImpl <em>Block</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.BlockImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getBlock()
+ * @generated
+ */
+ int BLOCK = 58;
+
+ /**
+ * The feature id for the '<em><b>Sequence</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BLOCK__SEQUENCE = 0;
+
+ /**
+ * The number of structural features of the '<em>Block</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BLOCK_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.StatementSequenceImpl <em>Statement Sequence</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.StatementSequenceImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getStatementSequence()
+ * @generated
+ */
+ int STATEMENT_SEQUENCE = 59;
+
+ /**
+ * The feature id for the '<em><b>Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATEMENT_SEQUENCE__STATEMENTS = 0;
+
+ /**
+ * The number of structural features of the '<em>Statement Sequence</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATEMENT_SEQUENCE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.DocumentedStatementImpl <em>Documented Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.DocumentedStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getDocumentedStatement()
+ * @generated
+ */
+ int DOCUMENTED_STATEMENT = 60;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENTED_STATEMENT__COMMENT = 0;
+
+ /**
+ * The feature id for the '<em><b>Statement</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENTED_STATEMENT__STATEMENT = 1;
+
+ /**
+ * The number of structural features of the '<em>Documented Statement</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENTED_STATEMENT_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.StatementImpl <em>Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.StatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getStatement()
+ * @generated
+ */
+ int STATEMENT = 63;
+
+ /**
+ * The number of structural features of the '<em>Statement</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATEMENT_FEATURE_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.InlineStatementImpl <em>Inline Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.InlineStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getInlineStatement()
+ * @generated
+ */
+ int INLINE_STATEMENT = 61;
+
+ /**
+ * The feature id for the '<em><b>Langage Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INLINE_STATEMENT__LANGAGE_NAME = STATEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Body</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INLINE_STATEMENT__BODY = STATEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Inline Statement</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INLINE_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.AnnotatedStatementImpl <em>Annotated Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.AnnotatedStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getAnnotatedStatement()
+ * @generated
+ */
+ int ANNOTATED_STATEMENT = 62;
+
+ /**
+ * The feature id for the '<em><b>Annotation</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ANNOTATED_STATEMENT__ANNOTATION = STATEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Statement</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ANNOTATED_STATEMENT__STATEMENT = STATEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Annotated Statement</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ANNOTATED_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.AnnotationImpl <em>Annotation</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.AnnotationImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getAnnotation()
+ * @generated
+ */
+ int ANNOTATION = 64;
+
+ /**
+ * The feature id for the '<em><b>Kind</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ANNOTATION__KIND = 0;
+
+ /**
+ * The feature id for the '<em><b>Args</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ANNOTATION__ARGS = 1;
+
+ /**
+ * The number of structural features of the '<em>Annotation</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ANNOTATION_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.BlockStatementImpl <em>Block Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.BlockStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getBlockStatement()
+ * @generated
+ */
+ int BLOCK_STATEMENT = 65;
+
+ /**
+ * The feature id for the '<em><b>Block</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BLOCK_STATEMENT__BLOCK = STATEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Block Statement</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BLOCK_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.EmptyStatementImpl <em>Empty Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.EmptyStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getEmptyStatement()
+ * @generated
+ */
+ int EMPTY_STATEMENT = 66;
+
+ /**
+ * The number of structural features of the '<em>Empty Statement</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMPTY_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.LocalNameDeclarationStatementImpl <em>Local Name Declaration Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.LocalNameDeclarationStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getLocalNameDeclarationStatement()
+ * @generated
+ */
+ int LOCAL_NAME_DECLARATION_STATEMENT = 67;
+
+ /**
+ * The feature id for the '<em><b>Var Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCAL_NAME_DECLARATION_STATEMENT__VAR_NAME = STATEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCAL_NAME_DECLARATION_STATEMENT__TYPE = STATEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Multiplicity Indicator</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCAL_NAME_DECLARATION_STATEMENT__MULTIPLICITY_INDICATOR = STATEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Init</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCAL_NAME_DECLARATION_STATEMENT__INIT = STATEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>Local Name Declaration Statement</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCAL_NAME_DECLARATION_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.IfStatementImpl <em>If Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.IfStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getIfStatement()
+ * @generated
+ */
+ int IF_STATEMENT = 68;
+
+ /**
+ * The feature id for the '<em><b>Sequential Clausses</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IF_STATEMENT__SEQUENTIAL_CLAUSSES = STATEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Final Clause</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IF_STATEMENT__FINAL_CLAUSE = STATEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>If Statement</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IF_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.SequentialClausesImpl <em>Sequential Clauses</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.SequentialClausesImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSequentialClauses()
+ * @generated
+ */
+ int SEQUENTIAL_CLAUSES = 69;
+
+ /**
+ * The feature id for the '<em><b>Conccurent Clauses</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENTIAL_CLAUSES__CONCCURENT_CLAUSES = 0;
+
+ /**
+ * The number of structural features of the '<em>Sequential Clauses</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENTIAL_CLAUSES_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.ConcurrentClausesImpl <em>Concurrent Clauses</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ConcurrentClausesImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getConcurrentClauses()
+ * @generated
+ */
+ int CONCURRENT_CLAUSES = 70;
+
+ /**
+ * The feature id for the '<em><b>Non Final Clause</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONCURRENT_CLAUSES__NON_FINAL_CLAUSE = 0;
+
+ /**
+ * The number of structural features of the '<em>Concurrent Clauses</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONCURRENT_CLAUSES_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.NonFinalClauseImpl <em>Non Final Clause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.NonFinalClauseImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getNonFinalClause()
+ * @generated
+ */
+ int NON_FINAL_CLAUSE = 71;
+
+ /**
+ * The feature id for the '<em><b>Condition</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NON_FINAL_CLAUSE__CONDITION = 0;
+
+ /**
+ * The feature id for the '<em><b>Block</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NON_FINAL_CLAUSE__BLOCK = 1;
+
+ /**
+ * The number of structural features of the '<em>Non Final Clause</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NON_FINAL_CLAUSE_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.FinalClauseImpl <em>Final Clause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.FinalClauseImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getFinalClause()
+ * @generated
+ */
+ int FINAL_CLAUSE = 72;
+
+ /**
+ * The feature id for the '<em><b>Block</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FINAL_CLAUSE__BLOCK = 0;
+
+ /**
+ * The number of structural features of the '<em>Final Clause</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FINAL_CLAUSE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.SwitchStatementImpl <em>Switch Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.SwitchStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSwitchStatement()
+ * @generated
+ */
+ int SWITCH_STATEMENT = 73;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SWITCH_STATEMENT__EXPRESSION = STATEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Switch Clause</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SWITCH_STATEMENT__SWITCH_CLAUSE = STATEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Default Clause</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SWITCH_STATEMENT__DEFAULT_CLAUSE = STATEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Switch Statement</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SWITCH_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.SwitchClauseImpl <em>Switch Clause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.SwitchClauseImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSwitchClause()
+ * @generated
+ */
+ int SWITCH_CLAUSE = 74;
+
+ /**
+ * The feature id for the '<em><b>Switch Case</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SWITCH_CLAUSE__SWITCH_CASE = 0;
+
+ /**
+ * The feature id for the '<em><b>Statement Sequence</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SWITCH_CLAUSE__STATEMENT_SEQUENCE = 1;
+
+ /**
+ * The number of structural features of the '<em>Switch Clause</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SWITCH_CLAUSE_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.SwitchCaseImpl <em>Switch Case</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.SwitchCaseImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSwitchCase()
+ * @generated
+ */
+ int SWITCH_CASE = 75;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SWITCH_CASE__EXPRESSION = 0;
+
+ /**
+ * The number of structural features of the '<em>Switch Case</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SWITCH_CASE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.SwitchDefaultClauseImpl <em>Switch Default Clause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.SwitchDefaultClauseImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSwitchDefaultClause()
+ * @generated
+ */
+ int SWITCH_DEFAULT_CLAUSE = 76;
+
+ /**
+ * The feature id for the '<em><b>Statement Sequence</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SWITCH_DEFAULT_CLAUSE__STATEMENT_SEQUENCE = 0;
+
+ /**
+ * The number of structural features of the '<em>Switch Default Clause</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SWITCH_DEFAULT_CLAUSE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.NonEmptyStatementSequenceImpl <em>Non Empty Statement Sequence</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.NonEmptyStatementSequenceImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getNonEmptyStatementSequence()
+ * @generated
+ */
+ int NON_EMPTY_STATEMENT_SEQUENCE = 77;
+
+ /**
+ * The feature id for the '<em><b>Statement</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NON_EMPTY_STATEMENT_SEQUENCE__STATEMENT = 0;
+
+ /**
+ * The number of structural features of the '<em>Non Empty Statement Sequence</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NON_EMPTY_STATEMENT_SEQUENCE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.WhileStatementImpl <em>While Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.WhileStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getWhileStatement()
+ * @generated
+ */
+ int WHILE_STATEMENT = 78;
+
+ /**
+ * The feature id for the '<em><b>Condition</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WHILE_STATEMENT__CONDITION = STATEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Block</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WHILE_STATEMENT__BLOCK = STATEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>While Statement</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WHILE_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.DoStatementImpl <em>Do Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.DoStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getDoStatement()
+ * @generated
+ */
+ int DO_STATEMENT = 79;
+
+ /**
+ * The feature id for the '<em><b>Block</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DO_STATEMENT__BLOCK = STATEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Condition</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DO_STATEMENT__CONDITION = STATEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Do Statement</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DO_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.ForStatementImpl <em>For Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ForStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getForStatement()
+ * @generated
+ */
+ int FOR_STATEMENT = 80;
+
+ /**
+ * The feature id for the '<em><b>Control</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOR_STATEMENT__CONTROL = STATEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Block</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOR_STATEMENT__BLOCK = STATEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>For Statement</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOR_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.ForControlImpl <em>For Control</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ForControlImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getForControl()
+ * @generated
+ */
+ int FOR_CONTROL = 81;
+
+ /**
+ * The feature id for the '<em><b>Loop Variable Definition</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOR_CONTROL__LOOP_VARIABLE_DEFINITION = 0;
+
+ /**
+ * The number of structural features of the '<em>For Control</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOR_CONTROL_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.LoopVariableDefinitionImpl <em>Loop Variable Definition</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.LoopVariableDefinitionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getLoopVariableDefinition()
+ * @generated
+ */
+ int LOOP_VARIABLE_DEFINITION = 82;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOOP_VARIABLE_DEFINITION__NAME = 0;
+
+ /**
+ * The feature id for the '<em><b>Expression1</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOOP_VARIABLE_DEFINITION__EXPRESSION1 = 1;
+
+ /**
+ * The feature id for the '<em><b>Expression2</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOOP_VARIABLE_DEFINITION__EXPRESSION2 = 2;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOOP_VARIABLE_DEFINITION__TYPE = 3;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOOP_VARIABLE_DEFINITION__EXPRESSION = 4;
+
+ /**
+ * The number of structural features of the '<em>Loop Variable Definition</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOOP_VARIABLE_DEFINITION_FEATURE_COUNT = 5;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.BreakStatementImpl <em>Break Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.BreakStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getBreakStatement()
+ * @generated
+ */
+ int BREAK_STATEMENT = 83;
+
+ /**
+ * The number of structural features of the '<em>Break Statement</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BREAK_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.ReturnStatementImpl <em>Return Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ReturnStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getReturnStatement()
+ * @generated
+ */
+ int RETURN_STATEMENT = 84;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RETURN_STATEMENT__EXPRESSION = STATEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Return Statement</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RETURN_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.AcceptStatementImpl <em>Accept Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.AcceptStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getAcceptStatement()
+ * @generated
+ */
+ int ACCEPT_STATEMENT = 85;
+
+ /**
+ * The feature id for the '<em><b>Clause</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACCEPT_STATEMENT__CLAUSE = STATEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Simple Accept</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACCEPT_STATEMENT__SIMPLE_ACCEPT = STATEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Compound Accept</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACCEPT_STATEMENT__COMPOUND_ACCEPT = STATEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Accept Statement</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACCEPT_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.SimpleAcceptStatementCompletionImpl <em>Simple Accept Statement Completion</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.SimpleAcceptStatementCompletionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSimpleAcceptStatementCompletion()
+ * @generated
+ */
+ int SIMPLE_ACCEPT_STATEMENT_COMPLETION = 86;
+
+ /**
+ * The number of structural features of the '<em>Simple Accept Statement Completion</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIMPLE_ACCEPT_STATEMENT_COMPLETION_FEATURE_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.CompoundAcceptStatementCompletionImpl <em>Compound Accept Statement Completion</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.CompoundAcceptStatementCompletionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getCompoundAcceptStatementCompletion()
+ * @generated
+ */
+ int COMPOUND_ACCEPT_STATEMENT_COMPLETION = 87;
+
+ /**
+ * The feature id for the '<em><b>Block</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOUND_ACCEPT_STATEMENT_COMPLETION__BLOCK = 0;
+
+ /**
+ * The feature id for the '<em><b>Accept Block</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOUND_ACCEPT_STATEMENT_COMPLETION__ACCEPT_BLOCK = 1;
+
+ /**
+ * The number of structural features of the '<em>Compound Accept Statement Completion</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOUND_ACCEPT_STATEMENT_COMPLETION_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.AcceptBlockImpl <em>Accept Block</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.AcceptBlockImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getAcceptBlock()
+ * @generated
+ */
+ int ACCEPT_BLOCK = 88;
+
+ /**
+ * The feature id for the '<em><b>Clause</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACCEPT_BLOCK__CLAUSE = 0;
+
+ /**
+ * The feature id for the '<em><b>Block</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACCEPT_BLOCK__BLOCK = 1;
+
+ /**
+ * The number of structural features of the '<em>Accept Block</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACCEPT_BLOCK_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.AcceptClauseImpl <em>Accept Clause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.AcceptClauseImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getAcceptClause()
+ * @generated
+ */
+ int ACCEPT_CLAUSE = 89;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACCEPT_CLAUSE__NAME = 0;
+
+ /**
+ * The feature id for the '<em><b>Qualified Name List</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACCEPT_CLAUSE__QUALIFIED_NAME_LIST = 1;
+
+ /**
+ * The number of structural features of the '<em>Accept Clause</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACCEPT_CLAUSE_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.ClassifyStatementImpl <em>Classify Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ClassifyStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getClassifyStatement()
+ * @generated
+ */
+ int CLASSIFY_STATEMENT = 90;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASSIFY_STATEMENT__EXPRESSION = STATEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Clause</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASSIFY_STATEMENT__CLAUSE = STATEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Classify Statement</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASSIFY_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.ClassificationClauseImpl <em>Classification Clause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ClassificationClauseImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getClassificationClause()
+ * @generated
+ */
+ int CLASSIFICATION_CLAUSE = 91;
+
+ /**
+ * The feature id for the '<em><b>Classify From Clause</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASSIFICATION_CLAUSE__CLASSIFY_FROM_CLAUSE = 0;
+
+ /**
+ * The feature id for the '<em><b>Classify To Clause</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASSIFICATION_CLAUSE__CLASSIFY_TO_CLAUSE = 1;
+
+ /**
+ * The feature id for the '<em><b>Reclassy All Clause</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASSIFICATION_CLAUSE__RECLASSY_ALL_CLAUSE = 2;
+
+ /**
+ * The number of structural features of the '<em>Classification Clause</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASSIFICATION_CLAUSE_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.ClassificationFromClauseImpl <em>Classification From Clause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ClassificationFromClauseImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getClassificationFromClause()
+ * @generated
+ */
+ int CLASSIFICATION_FROM_CLAUSE = 92;
+
+ /**
+ * The feature id for the '<em><b>Qualified Name List</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASSIFICATION_FROM_CLAUSE__QUALIFIED_NAME_LIST = 0;
+
+ /**
+ * The number of structural features of the '<em>Classification From Clause</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASSIFICATION_FROM_CLAUSE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.ClassificationToClauseImpl <em>Classification To Clause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ClassificationToClauseImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getClassificationToClause()
+ * @generated
+ */
+ int CLASSIFICATION_TO_CLAUSE = 93;
+
+ /**
+ * The feature id for the '<em><b>Qualified Name List</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASSIFICATION_TO_CLAUSE__QUALIFIED_NAME_LIST = 0;
+
+ /**
+ * The number of structural features of the '<em>Classification To Clause</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASSIFICATION_TO_CLAUSE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.ReclassifyAllClauseImpl <em>Reclassify All Clause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ReclassifyAllClauseImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getReclassifyAllClause()
+ * @generated
+ */
+ int RECLASSIFY_ALL_CLAUSE = 94;
+
+ /**
+ * The number of structural features of the '<em>Reclassify All Clause</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECLASSIFY_ALL_CLAUSE_FEATURE_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.QualifiedNameListImpl <em>Qualified Name List</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.QualifiedNameListImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getQualifiedNameList()
+ * @generated
+ */
+ int QUALIFIED_NAME_LIST = 95;
+
+ /**
+ * The feature id for the '<em><b>Qualified Name</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int QUALIFIED_NAME_LIST__QUALIFIED_NAME = 0;
+
+ /**
+ * The number of structural features of the '<em>Qualified Name List</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int QUALIFIED_NAME_LIST_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.InvocationOrAssignementOrDeclarationStatementImpl <em>Invocation Or Assignement Or Declaration Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.InvocationOrAssignementOrDeclarationStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getInvocationOrAssignementOrDeclarationStatement()
+ * @generated
+ */
+ int INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT = 96;
+
+ /**
+ * The feature id for the '<em><b>Type Part OR assigned Part OR invocation Part</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__TYPE_PART_OR_ASSIGNED_PART_OR_INVOCATION_PART = STATEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Variable Declaration Completion</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__VARIABLE_DECLARATION_COMPLETION = STATEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Assignment Completion</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__ASSIGNMENT_COMPLETION = STATEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Invocation Or Assignement Or Declaration Statement</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.SuperInvocationStatementImpl <em>Super Invocation Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.SuperInvocationStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSuperInvocationStatement()
+ * @generated
+ */
+ int SUPER_INVOCATION_STATEMENT = 97;
+
+ /**
+ * The feature id for the '<em><b>super</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SUPER_INVOCATION_STATEMENT__SUPER = STATEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Super Invocation Statement</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SUPER_INVOCATION_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.ThisInvocationStatementImpl <em>This Invocation Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ThisInvocationStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getThisInvocationStatement()
+ * @generated
+ */
+ int THIS_INVOCATION_STATEMENT = 98;
+
+ /**
+ * The feature id for the '<em><b>this</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int THIS_INVOCATION_STATEMENT__THIS = STATEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Assignment Completion</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int THIS_INVOCATION_STATEMENT__ASSIGNMENT_COMPLETION = STATEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>This Invocation Statement</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int THIS_INVOCATION_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.InstanceCreationInvocationStatementImpl <em>Instance Creation Invocation Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.InstanceCreationInvocationStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getInstanceCreationInvocationStatement()
+ * @generated
+ */
+ int INSTANCE_CREATION_INVOCATION_STATEMENT = 99;
+
+ /**
+ * The feature id for the '<em><b>new</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_CREATION_INVOCATION_STATEMENT__NEW = STATEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Instance Creation Invocation Statement</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_CREATION_INVOCATION_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.VariableDeclarationCompletionImpl <em>Variable Declaration Completion</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.VariableDeclarationCompletionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getVariableDeclarationCompletion()
+ * @generated
+ */
+ int VARIABLE_DECLARATION_COMPLETION = 100;
+
+ /**
+ * The feature id for the '<em><b>Multiplicity Indicator</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_DECLARATION_COMPLETION__MULTIPLICITY_INDICATOR = 0;
+
+ /**
+ * The feature id for the '<em><b>Variable Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_DECLARATION_COMPLETION__VARIABLE_NAME = 1;
+
+ /**
+ * The feature id for the '<em><b>Init Value</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_DECLARATION_COMPLETION__INIT_VALUE = 2;
+
+ /**
+ * The number of structural features of the '<em>Variable Declaration Completion</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_DECLARATION_COMPLETION_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.impl.AssignmentCompletionImpl <em>Assignment Completion</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.AssignmentCompletionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getAssignmentCompletion()
+ * @generated
+ */
+ int ASSIGNMENT_COMPLETION = 101;
+
+ /**
+ * The feature id for the '<em><b>Op</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ASSIGNMENT_COMPLETION__OP = 0;
+
+ /**
+ * The feature id for the '<em><b>Right Hand Side</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ASSIGNMENT_COMPLETION__RIGHT_HAND_SIDE = 1;
+
+ /**
+ * The number of structural features of the '<em>Assignment Completion</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ASSIGNMENT_COMPLETION_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.BooleanValue <em>Boolean Value</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.BooleanValue
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getBooleanValue()
+ * @generated
+ */
+ int BOOLEAN_VALUE = 102;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.LinkOperationKind <em>Link Operation Kind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.LinkOperationKind
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getLinkOperationKind()
+ * @generated
+ */
+ int LINK_OPERATION_KIND = 103;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.SelectOrRejectOperator <em>Select Or Reject Operator</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.SelectOrRejectOperator
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSelectOrRejectOperator()
+ * @generated
+ */
+ int SELECT_OR_REJECT_OPERATOR = 104;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.CollectOrIterateOperator <em>Collect Or Iterate Operator</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.CollectOrIterateOperator
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getCollectOrIterateOperator()
+ * @generated
+ */
+ int COLLECT_OR_ITERATE_OPERATOR = 105;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.ForAllOrExistsOrOneOperator <em>For All Or Exists Or One Operator</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.ForAllOrExistsOrOneOperator
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getForAllOrExistsOrOneOperator()
+ * @generated
+ */
+ int FOR_ALL_OR_EXISTS_OR_ONE_OPERATOR = 106;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.AnnotationKind <em>Annotation Kind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.AnnotationKind
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getAnnotationKind()
+ * @generated
+ */
+ int ANNOTATION_KIND = 107;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.alf.alf.AssignmentOperator <em>Assignment Operator</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.AssignmentOperator
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getAssignmentOperator()
+ * @generated
+ */
+ int ASSIGNMENT_OPERATOR = 108;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.Test <em>Test</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Test</em>'.
+ * @see org.eclipse.papyrus.alf.alf.Test
+ * @generated
+ */
+ EClass getTest();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.alf.alf.Test#getExpression <em>Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.Test#getExpression()
+ * @see #getTest()
+ * @generated
+ */
+ EReference getTest_Expression();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.alf.alf.Test#getAssignExpression <em>Assign Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Assign Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.Test#getAssignExpression()
+ * @see #getTest()
+ * @generated
+ */
+ EReference getTest_AssignExpression();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.alf.alf.Test#getStatements <em>Statements</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Statements</em>'.
+ * @see org.eclipse.papyrus.alf.alf.Test#getStatements()
+ * @see #getTest()
+ * @generated
+ */
+ EReference getTest_Statements();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.Test#getBlock <em>Block</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Block</em>'.
+ * @see org.eclipse.papyrus.alf.alf.Test#getBlock()
+ * @see #getTest()
+ * @generated
+ */
+ EReference getTest_Block();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.LITERAL <em>LITERAL</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>LITERAL</em>'.
+ * @see org.eclipse.papyrus.alf.alf.LITERAL
+ * @generated
+ */
+ EClass getLITERAL();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.BOOLEAN_LITERAL <em>BOOLEAN LITERAL</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>BOOLEAN LITERAL</em>'.
+ * @see org.eclipse.papyrus.alf.alf.BOOLEAN_LITERAL
+ * @generated
+ */
+ EClass getBOOLEAN_LITERAL();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.BOOLEAN_LITERAL#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.papyrus.alf.alf.BOOLEAN_LITERAL#getValue()
+ * @see #getBOOLEAN_LITERAL()
+ * @generated
+ */
+ EAttribute getBOOLEAN_LITERAL_Value();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.NUMBER_LITERAL <em>NUMBER LITERAL</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>NUMBER LITERAL</em>'.
+ * @see org.eclipse.papyrus.alf.alf.NUMBER_LITERAL
+ * @generated
+ */
+ EClass getNUMBER_LITERAL();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.NUMBER_LITERAL#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.papyrus.alf.alf.NUMBER_LITERAL#getValue()
+ * @see #getNUMBER_LITERAL()
+ * @generated
+ */
+ EAttribute getNUMBER_LITERAL_Value();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.INTEGER_LITERAL <em>INTEGER LITERAL</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>INTEGER LITERAL</em>'.
+ * @see org.eclipse.papyrus.alf.alf.INTEGER_LITERAL
+ * @generated
+ */
+ EClass getINTEGER_LITERAL();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.UNLIMITED_LITERAL <em>UNLIMITED LITERAL</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>UNLIMITED LITERAL</em>'.
+ * @see org.eclipse.papyrus.alf.alf.UNLIMITED_LITERAL
+ * @generated
+ */
+ EClass getUNLIMITED_LITERAL();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.STRING_LITERAL <em>STRING LITERAL</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>STRING LITERAL</em>'.
+ * @see org.eclipse.papyrus.alf.alf.STRING_LITERAL
+ * @generated
+ */
+ EClass getSTRING_LITERAL();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.STRING_LITERAL#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.papyrus.alf.alf.STRING_LITERAL#getValue()
+ * @see #getSTRING_LITERAL()
+ * @generated
+ */
+ EAttribute getSTRING_LITERAL_Value();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.NameExpression <em>Name Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Name Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.NameExpression
+ * @generated
+ */
+ EClass getNameExpression();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.NameExpression#getPrefixOp <em>Prefix Op</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Prefix Op</em>'.
+ * @see org.eclipse.papyrus.alf.alf.NameExpression#getPrefixOp()
+ * @see #getNameExpression()
+ * @generated
+ */
+ EAttribute getNameExpression_PrefixOp();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.NameExpression#getPath <em>Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Path</em>'.
+ * @see org.eclipse.papyrus.alf.alf.NameExpression#getPath()
+ * @see #getNameExpression()
+ * @generated
+ */
+ EReference getNameExpression_Path();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.NameExpression#getId <em>Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Id</em>'.
+ * @see org.eclipse.papyrus.alf.alf.NameExpression#getId()
+ * @see #getNameExpression()
+ * @generated
+ */
+ EAttribute getNameExpression_Id();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.NameExpression#getInvocationCompletion <em>Invocation Completion</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Invocation Completion</em>'.
+ * @see org.eclipse.papyrus.alf.alf.NameExpression#getInvocationCompletion()
+ * @see #getNameExpression()
+ * @generated
+ */
+ EReference getNameExpression_InvocationCompletion();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.NameExpression#getSequenceConstructionCompletion <em>Sequence Construction Completion</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Sequence Construction Completion</em>'.
+ * @see org.eclipse.papyrus.alf.alf.NameExpression#getSequenceConstructionCompletion()
+ * @see #getNameExpression()
+ * @generated
+ */
+ EReference getNameExpression_SequenceConstructionCompletion();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.NameExpression#getPostfixOp <em>Postfix Op</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Postfix Op</em>'.
+ * @see org.eclipse.papyrus.alf.alf.NameExpression#getPostfixOp()
+ * @see #getNameExpression()
+ * @generated
+ */
+ EAttribute getNameExpression_PostfixOp();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.NameExpression#getSuffix <em>Suffix</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Suffix</em>'.
+ * @see org.eclipse.papyrus.alf.alf.NameExpression#getSuffix()
+ * @see #getNameExpression()
+ * @generated
+ */
+ EReference getNameExpression_Suffix();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.QualifiedNamePath <em>Qualified Name Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Qualified Name Path</em>'.
+ * @see org.eclipse.papyrus.alf.alf.QualifiedNamePath
+ * @generated
+ */
+ EClass getQualifiedNamePath();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.alf.alf.QualifiedNamePath#getNamespace <em>Namespace</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Namespace</em>'.
+ * @see org.eclipse.papyrus.alf.alf.QualifiedNamePath#getNamespace()
+ * @see #getQualifiedNamePath()
+ * @generated
+ */
+ EReference getQualifiedNamePath_Namespace();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.UnqualifiedName <em>Unqualified Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Unqualified Name</em>'.
+ * @see org.eclipse.papyrus.alf.alf.UnqualifiedName
+ * @generated
+ */
+ EClass getUnqualifiedName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.UnqualifiedName#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.papyrus.alf.alf.UnqualifiedName#getName()
+ * @see #getUnqualifiedName()
+ * @generated
+ */
+ EAttribute getUnqualifiedName_Name();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.UnqualifiedName#getTemplateBinding <em>Template Binding</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Template Binding</em>'.
+ * @see org.eclipse.papyrus.alf.alf.UnqualifiedName#getTemplateBinding()
+ * @see #getUnqualifiedName()
+ * @generated
+ */
+ EReference getUnqualifiedName_TemplateBinding();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.TemplateBinding <em>Template Binding</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Template Binding</em>'.
+ * @see org.eclipse.papyrus.alf.alf.TemplateBinding
+ * @generated
+ */
+ EClass getTemplateBinding();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.alf.alf.TemplateBinding#getBindings <em>Bindings</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Bindings</em>'.
+ * @see org.eclipse.papyrus.alf.alf.TemplateBinding#getBindings()
+ * @see #getTemplateBinding()
+ * @generated
+ */
+ EReference getTemplateBinding_Bindings();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.NamedTemplateBinding <em>Named Template Binding</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Named Template Binding</em>'.
+ * @see org.eclipse.papyrus.alf.alf.NamedTemplateBinding
+ * @generated
+ */
+ EClass getNamedTemplateBinding();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.NamedTemplateBinding#getFormal <em>Formal</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Formal</em>'.
+ * @see org.eclipse.papyrus.alf.alf.NamedTemplateBinding#getFormal()
+ * @see #getNamedTemplateBinding()
+ * @generated
+ */
+ EAttribute getNamedTemplateBinding_Formal();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.NamedTemplateBinding#getActual <em>Actual</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Actual</em>'.
+ * @see org.eclipse.papyrus.alf.alf.NamedTemplateBinding#getActual()
+ * @see #getNamedTemplateBinding()
+ * @generated
+ */
+ EReference getNamedTemplateBinding_Actual();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.QualifiedNameWithBinding <em>Qualified Name With Binding</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Qualified Name With Binding</em>'.
+ * @see org.eclipse.papyrus.alf.alf.QualifiedNameWithBinding
+ * @generated
+ */
+ EClass getQualifiedNameWithBinding();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.QualifiedNameWithBinding#getId <em>Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Id</em>'.
+ * @see org.eclipse.papyrus.alf.alf.QualifiedNameWithBinding#getId()
+ * @see #getQualifiedNameWithBinding()
+ * @generated
+ */
+ EAttribute getQualifiedNameWithBinding_Id();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.QualifiedNameWithBinding#getBinding <em>Binding</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Binding</em>'.
+ * @see org.eclipse.papyrus.alf.alf.QualifiedNameWithBinding#getBinding()
+ * @see #getQualifiedNameWithBinding()
+ * @generated
+ */
+ EReference getQualifiedNameWithBinding_Binding();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.QualifiedNameWithBinding#getRemaining <em>Remaining</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Remaining</em>'.
+ * @see org.eclipse.papyrus.alf.alf.QualifiedNameWithBinding#getRemaining()
+ * @see #getQualifiedNameWithBinding()
+ * @generated
+ */
+ EReference getQualifiedNameWithBinding_Remaining();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.Tuple <em>Tuple</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Tuple</em>'.
+ * @see org.eclipse.papyrus.alf.alf.Tuple
+ * @generated
+ */
+ EClass getTuple();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.alf.alf.Tuple#getTupleElements <em>Tuple Elements</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Tuple Elements</em>'.
+ * @see org.eclipse.papyrus.alf.alf.Tuple#getTupleElements()
+ * @see #getTuple()
+ * @generated
+ */
+ EReference getTuple_TupleElements();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.TupleElement <em>Tuple Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Tuple Element</em>'.
+ * @see org.eclipse.papyrus.alf.alf.TupleElement
+ * @generated
+ */
+ EClass getTupleElement();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.TupleElement#getArgument <em>Argument</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Argument</em>'.
+ * @see org.eclipse.papyrus.alf.alf.TupleElement#getArgument()
+ * @see #getTupleElement()
+ * @generated
+ */
+ EReference getTupleElement_Argument();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.Expression <em>Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.Expression
+ * @generated
+ */
+ EClass getExpression();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.ConditionalTestExpression <em>Conditional Test Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Conditional Test Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ConditionalTestExpression
+ * @generated
+ */
+ EClass getConditionalTestExpression();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.ConditionalTestExpression#getExp <em>Exp</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Exp</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ConditionalTestExpression#getExp()
+ * @see #getConditionalTestExpression()
+ * @generated
+ */
+ EReference getConditionalTestExpression_Exp();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.ConditionalTestExpression#getWhenTrue <em>When True</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>When True</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ConditionalTestExpression#getWhenTrue()
+ * @see #getConditionalTestExpression()
+ * @generated
+ */
+ EReference getConditionalTestExpression_WhenTrue();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.ConditionalTestExpression#getWhenFalse <em>When False</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>When False</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ConditionalTestExpression#getWhenFalse()
+ * @see #getConditionalTestExpression()
+ * @generated
+ */
+ EReference getConditionalTestExpression_WhenFalse();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.ConditionalOrExpression <em>Conditional Or Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Conditional Or Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ConditionalOrExpression
+ * @generated
+ */
+ EClass getConditionalOrExpression();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.alf.alf.ConditionalOrExpression#getExp <em>Exp</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Exp</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ConditionalOrExpression#getExp()
+ * @see #getConditionalOrExpression()
+ * @generated
+ */
+ EReference getConditionalOrExpression_Exp();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.ConditionalAndExpression <em>Conditional And Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Conditional And Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ConditionalAndExpression
+ * @generated
+ */
+ EClass getConditionalAndExpression();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.alf.alf.ConditionalAndExpression#getExp <em>Exp</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Exp</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ConditionalAndExpression#getExp()
+ * @see #getConditionalAndExpression()
+ * @generated
+ */
+ EReference getConditionalAndExpression_Exp();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.InclusiveOrExpression <em>Inclusive Or Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Inclusive Or Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.InclusiveOrExpression
+ * @generated
+ */
+ EClass getInclusiveOrExpression();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.alf.alf.InclusiveOrExpression#getExp <em>Exp</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Exp</em>'.
+ * @see org.eclipse.papyrus.alf.alf.InclusiveOrExpression#getExp()
+ * @see #getInclusiveOrExpression()
+ * @generated
+ */
+ EReference getInclusiveOrExpression_Exp();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.ExclusiveOrExpression <em>Exclusive Or Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Exclusive Or Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ExclusiveOrExpression
+ * @generated
+ */
+ EClass getExclusiveOrExpression();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.alf.alf.ExclusiveOrExpression#getExp <em>Exp</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Exp</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ExclusiveOrExpression#getExp()
+ * @see #getExclusiveOrExpression()
+ * @generated
+ */
+ EReference getExclusiveOrExpression_Exp();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.AndExpression <em>And Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>And Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.AndExpression
+ * @generated
+ */
+ EClass getAndExpression();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.alf.alf.AndExpression#getExp <em>Exp</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Exp</em>'.
+ * @see org.eclipse.papyrus.alf.alf.AndExpression#getExp()
+ * @see #getAndExpression()
+ * @generated
+ */
+ EReference getAndExpression_Exp();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.EqualityExpression <em>Equality Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Equality Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.EqualityExpression
+ * @generated
+ */
+ EClass getEqualityExpression();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.alf.alf.EqualityExpression#getExp <em>Exp</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Exp</em>'.
+ * @see org.eclipse.papyrus.alf.alf.EqualityExpression#getExp()
+ * @see #getEqualityExpression()
+ * @generated
+ */
+ EReference getEqualityExpression_Exp();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.alf.alf.EqualityExpression#getOp <em>Op</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Op</em>'.
+ * @see org.eclipse.papyrus.alf.alf.EqualityExpression#getOp()
+ * @see #getEqualityExpression()
+ * @generated
+ */
+ EAttribute getEqualityExpression_Op();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.ClassificationExpression <em>Classification Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Classification Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ClassificationExpression
+ * @generated
+ */
+ EClass getClassificationExpression();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.ClassificationExpression#getExp <em>Exp</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Exp</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ClassificationExpression#getExp()
+ * @see #getClassificationExpression()
+ * @generated
+ */
+ EReference getClassificationExpression_Exp();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.ClassificationExpression#getOp <em>Op</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Op</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ClassificationExpression#getOp()
+ * @see #getClassificationExpression()
+ * @generated
+ */
+ EAttribute getClassificationExpression_Op();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.ClassificationExpression#getTypeName <em>Type Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Type Name</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ClassificationExpression#getTypeName()
+ * @see #getClassificationExpression()
+ * @generated
+ */
+ EReference getClassificationExpression_TypeName();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.RelationalExpression <em>Relational Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Relational Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.RelationalExpression
+ * @generated
+ */
+ EClass getRelationalExpression();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.RelationalExpression#getLeft <em>Left</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Left</em>'.
+ * @see org.eclipse.papyrus.alf.alf.RelationalExpression#getLeft()
+ * @see #getRelationalExpression()
+ * @generated
+ */
+ EReference getRelationalExpression_Left();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.RelationalExpression#getOp <em>Op</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Op</em>'.
+ * @see org.eclipse.papyrus.alf.alf.RelationalExpression#getOp()
+ * @see #getRelationalExpression()
+ * @generated
+ */
+ EAttribute getRelationalExpression_Op();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.RelationalExpression#getRight <em>Right</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Right</em>'.
+ * @see org.eclipse.papyrus.alf.alf.RelationalExpression#getRight()
+ * @see #getRelationalExpression()
+ * @generated
+ */
+ EReference getRelationalExpression_Right();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.ShiftExpression <em>Shift Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Shift Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ShiftExpression
+ * @generated
+ */
+ EClass getShiftExpression();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.alf.alf.ShiftExpression#getExp <em>Exp</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Exp</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ShiftExpression#getExp()
+ * @see #getShiftExpression()
+ * @generated
+ */
+ EReference getShiftExpression_Exp();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.ShiftExpression#getOp <em>Op</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Op</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ShiftExpression#getOp()
+ * @see #getShiftExpression()
+ * @generated
+ */
+ EAttribute getShiftExpression_Op();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.AdditiveExpression <em>Additive Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Additive Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.AdditiveExpression
+ * @generated
+ */
+ EClass getAdditiveExpression();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.alf.alf.AdditiveExpression#getExp <em>Exp</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Exp</em>'.
+ * @see org.eclipse.papyrus.alf.alf.AdditiveExpression#getExp()
+ * @see #getAdditiveExpression()
+ * @generated
+ */
+ EReference getAdditiveExpression_Exp();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.alf.alf.AdditiveExpression#getOp <em>Op</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Op</em>'.
+ * @see org.eclipse.papyrus.alf.alf.AdditiveExpression#getOp()
+ * @see #getAdditiveExpression()
+ * @generated
+ */
+ EAttribute getAdditiveExpression_Op();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.MultiplicativeExpression <em>Multiplicative Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Multiplicative Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.MultiplicativeExpression
+ * @generated
+ */
+ EClass getMultiplicativeExpression();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.alf.alf.MultiplicativeExpression#getExp <em>Exp</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Exp</em>'.
+ * @see org.eclipse.papyrus.alf.alf.MultiplicativeExpression#getExp()
+ * @see #getMultiplicativeExpression()
+ * @generated
+ */
+ EReference getMultiplicativeExpression_Exp();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.alf.alf.MultiplicativeExpression#getOp <em>Op</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Op</em>'.
+ * @see org.eclipse.papyrus.alf.alf.MultiplicativeExpression#getOp()
+ * @see #getMultiplicativeExpression()
+ * @generated
+ */
+ EAttribute getMultiplicativeExpression_Op();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.UnaryExpression <em>Unary Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Unary Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.UnaryExpression
+ * @generated
+ */
+ EClass getUnaryExpression();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.UnaryExpression#getOp <em>Op</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Op</em>'.
+ * @see org.eclipse.papyrus.alf.alf.UnaryExpression#getOp()
+ * @see #getUnaryExpression()
+ * @generated
+ */
+ EAttribute getUnaryExpression_Op();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.UnaryExpression#getExp <em>Exp</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Exp</em>'.
+ * @see org.eclipse.papyrus.alf.alf.UnaryExpression#getExp()
+ * @see #getUnaryExpression()
+ * @generated
+ */
+ EReference getUnaryExpression_Exp();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.PrimaryExpression <em>Primary Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Primary Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.PrimaryExpression
+ * @generated
+ */
+ EClass getPrimaryExpression();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.PrimaryExpression#getPrefix <em>Prefix</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Prefix</em>'.
+ * @see org.eclipse.papyrus.alf.alf.PrimaryExpression#getPrefix()
+ * @see #getPrimaryExpression()
+ * @generated
+ */
+ EReference getPrimaryExpression_Prefix();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.SuffixExpression <em>Suffix Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Suffix Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SuffixExpression
+ * @generated
+ */
+ EClass getSuffixExpression();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.OperationCallExpression <em>Operation Call Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Operation Call Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.OperationCallExpression
+ * @generated
+ */
+ EClass getOperationCallExpression();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.OperationCallExpression#getOperationName <em>Operation Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Operation Name</em>'.
+ * @see org.eclipse.papyrus.alf.alf.OperationCallExpression#getOperationName()
+ * @see #getOperationCallExpression()
+ * @generated
+ */
+ EAttribute getOperationCallExpression_OperationName();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.OperationCallExpression#getTuple <em>Tuple</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Tuple</em>'.
+ * @see org.eclipse.papyrus.alf.alf.OperationCallExpression#getTuple()
+ * @see #getOperationCallExpression()
+ * @generated
+ */
+ EReference getOperationCallExpression_Tuple();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.OperationCallExpression#getSuffix <em>Suffix</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Suffix</em>'.
+ * @see org.eclipse.papyrus.alf.alf.OperationCallExpression#getSuffix()
+ * @see #getOperationCallExpression()
+ * @generated
+ */
+ EReference getOperationCallExpression_Suffix();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.PropertyCallExpression <em>Property Call Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Property Call Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.PropertyCallExpression
+ * @generated
+ */
+ EClass getPropertyCallExpression();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.PropertyCallExpression#getPropertyName <em>Property Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Property Name</em>'.
+ * @see org.eclipse.papyrus.alf.alf.PropertyCallExpression#getPropertyName()
+ * @see #getPropertyCallExpression()
+ * @generated
+ */
+ EAttribute getPropertyCallExpression_PropertyName();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.PropertyCallExpression#getIndex <em>Index</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Index</em>'.
+ * @see org.eclipse.papyrus.alf.alf.PropertyCallExpression#getIndex()
+ * @see #getPropertyCallExpression()
+ * @generated
+ */
+ EReference getPropertyCallExpression_Index();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.PropertyCallExpression#getSuffix <em>Suffix</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Suffix</em>'.
+ * @see org.eclipse.papyrus.alf.alf.PropertyCallExpression#getSuffix()
+ * @see #getPropertyCallExpression()
+ * @generated
+ */
+ EReference getPropertyCallExpression_Suffix();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.LinkOperationExpression <em>Link Operation Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Link Operation Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.LinkOperationExpression
+ * @generated
+ */
+ EClass getLinkOperationExpression();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.LinkOperationExpression#getKind <em>Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Kind</em>'.
+ * @see org.eclipse.papyrus.alf.alf.LinkOperationExpression#getKind()
+ * @see #getLinkOperationExpression()
+ * @generated
+ */
+ EAttribute getLinkOperationExpression_Kind();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.LinkOperationExpression#getTuple <em>Tuple</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Tuple</em>'.
+ * @see org.eclipse.papyrus.alf.alf.LinkOperationExpression#getTuple()
+ * @see #getLinkOperationExpression()
+ * @generated
+ */
+ EReference getLinkOperationExpression_Tuple();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.LinkOperationTuple <em>Link Operation Tuple</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Link Operation Tuple</em>'.
+ * @see org.eclipse.papyrus.alf.alf.LinkOperationTuple
+ * @generated
+ */
+ EClass getLinkOperationTuple();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.alf.alf.LinkOperationTuple#getLinkOperationTupleElement <em>Link Operation Tuple Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Link Operation Tuple Element</em>'.
+ * @see org.eclipse.papyrus.alf.alf.LinkOperationTuple#getLinkOperationTupleElement()
+ * @see #getLinkOperationTuple()
+ * @generated
+ */
+ EReference getLinkOperationTuple_LinkOperationTupleElement();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.LinkOperationTupleElement <em>Link Operation Tuple Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Link Operation Tuple Element</em>'.
+ * @see org.eclipse.papyrus.alf.alf.LinkOperationTupleElement
+ * @generated
+ */
+ EClass getLinkOperationTupleElement();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.LinkOperationTupleElement#getRole <em>Role</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Role</em>'.
+ * @see org.eclipse.papyrus.alf.alf.LinkOperationTupleElement#getRole()
+ * @see #getLinkOperationTupleElement()
+ * @generated
+ */
+ EAttribute getLinkOperationTupleElement_Role();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.LinkOperationTupleElement#getRoleIndex <em>Role Index</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Role Index</em>'.
+ * @see org.eclipse.papyrus.alf.alf.LinkOperationTupleElement#getRoleIndex()
+ * @see #getLinkOperationTupleElement()
+ * @generated
+ */
+ EReference getLinkOperationTupleElement_RoleIndex();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.LinkOperationTupleElement#getObject <em>Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Object</em>'.
+ * @see org.eclipse.papyrus.alf.alf.LinkOperationTupleElement#getObject()
+ * @see #getLinkOperationTupleElement()
+ * @generated
+ */
+ EReference getLinkOperationTupleElement_Object();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.SequenceOperationExpression <em>Sequence Operation Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Sequence Operation Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SequenceOperationExpression
+ * @generated
+ */
+ EClass getSequenceOperationExpression();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.SequenceOperationExpression#getOperationName <em>Operation Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Operation Name</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SequenceOperationExpression#getOperationName()
+ * @see #getSequenceOperationExpression()
+ * @generated
+ */
+ EReference getSequenceOperationExpression_OperationName();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.SequenceOperationExpression#getTuple <em>Tuple</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Tuple</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SequenceOperationExpression#getTuple()
+ * @see #getSequenceOperationExpression()
+ * @generated
+ */
+ EReference getSequenceOperationExpression_Tuple();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.SequenceOperationExpression#getSuffix <em>Suffix</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Suffix</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SequenceOperationExpression#getSuffix()
+ * @see #getSequenceOperationExpression()
+ * @generated
+ */
+ EReference getSequenceOperationExpression_Suffix();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.SequenceReductionExpression <em>Sequence Reduction Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Sequence Reduction Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SequenceReductionExpression
+ * @generated
+ */
+ EClass getSequenceReductionExpression();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.SequenceReductionExpression#isIsOrdered <em>Is Ordered</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Is Ordered</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SequenceReductionExpression#isIsOrdered()
+ * @see #getSequenceReductionExpression()
+ * @generated
+ */
+ EAttribute getSequenceReductionExpression_IsOrdered();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.SequenceReductionExpression#getBehavior <em>Behavior</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Behavior</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SequenceReductionExpression#getBehavior()
+ * @see #getSequenceReductionExpression()
+ * @generated
+ */
+ EReference getSequenceReductionExpression_Behavior();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.SequenceReductionExpression#getSuffix <em>Suffix</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Suffix</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SequenceReductionExpression#getSuffix()
+ * @see #getSequenceReductionExpression()
+ * @generated
+ */
+ EReference getSequenceReductionExpression_Suffix();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.SequenceExpansionExpression <em>Sequence Expansion Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Sequence Expansion Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SequenceExpansionExpression
+ * @generated
+ */
+ EClass getSequenceExpansionExpression();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.SequenceExpansionExpression#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SequenceExpansionExpression#getName()
+ * @see #getSequenceExpansionExpression()
+ * @generated
+ */
+ EAttribute getSequenceExpansionExpression_Name();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.SequenceExpansionExpression#getExpr <em>Expr</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Expr</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SequenceExpansionExpression#getExpr()
+ * @see #getSequenceExpansionExpression()
+ * @generated
+ */
+ EReference getSequenceExpansionExpression_Expr();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.SequenceExpansionExpression#getSuffix <em>Suffix</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Suffix</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SequenceExpansionExpression#getSuffix()
+ * @see #getSequenceExpansionExpression()
+ * @generated
+ */
+ EReference getSequenceExpansionExpression_Suffix();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.SelectOrRejectOperation <em>Select Or Reject Operation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Select Or Reject Operation</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SelectOrRejectOperation
+ * @generated
+ */
+ EClass getSelectOrRejectOperation();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.SelectOrRejectOperation#getOp <em>Op</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Op</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SelectOrRejectOperation#getOp()
+ * @see #getSelectOrRejectOperation()
+ * @generated
+ */
+ EAttribute getSelectOrRejectOperation_Op();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.CollectOrIterateOperation <em>Collect Or Iterate Operation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Collect Or Iterate Operation</em>'.
+ * @see org.eclipse.papyrus.alf.alf.CollectOrIterateOperation
+ * @generated
+ */
+ EClass getCollectOrIterateOperation();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.CollectOrIterateOperation#getOp <em>Op</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Op</em>'.
+ * @see org.eclipse.papyrus.alf.alf.CollectOrIterateOperation#getOp()
+ * @see #getCollectOrIterateOperation()
+ * @generated
+ */
+ EAttribute getCollectOrIterateOperation_Op();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.ForAllOrExistsOrOneOperation <em>For All Or Exists Or One Operation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>For All Or Exists Or One Operation</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ForAllOrExistsOrOneOperation
+ * @generated
+ */
+ EClass getForAllOrExistsOrOneOperation();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.ForAllOrExistsOrOneOperation#getOp <em>Op</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Op</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ForAllOrExistsOrOneOperation#getOp()
+ * @see #getForAllOrExistsOrOneOperation()
+ * @generated
+ */
+ EAttribute getForAllOrExistsOrOneOperation_Op();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.IsUniqueOperation <em>Is Unique Operation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Is Unique Operation</em>'.
+ * @see org.eclipse.papyrus.alf.alf.IsUniqueOperation
+ * @generated
+ */
+ EClass getIsUniqueOperation();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.ValueSpecification <em>Value Specification</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Value Specification</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ValueSpecification
+ * @generated
+ */
+ EClass getValueSpecification();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.NonLiteralValueSpecification <em>Non Literal Value Specification</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Non Literal Value Specification</em>'.
+ * @see org.eclipse.papyrus.alf.alf.NonLiteralValueSpecification
+ * @generated
+ */
+ EClass getNonLiteralValueSpecification();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.ParenthesizedExpression <em>Parenthesized Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Parenthesized Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ParenthesizedExpression
+ * @generated
+ */
+ EClass getParenthesizedExpression();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.ParenthesizedExpression#getExpOrTypeCast <em>Exp Or Type Cast</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Exp Or Type Cast</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ParenthesizedExpression#getExpOrTypeCast()
+ * @see #getParenthesizedExpression()
+ * @generated
+ */
+ EReference getParenthesizedExpression_ExpOrTypeCast();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.ParenthesizedExpression#getCasted <em>Casted</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Casted</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ParenthesizedExpression#getCasted()
+ * @see #getParenthesizedExpression()
+ * @generated
+ */
+ EReference getParenthesizedExpression_Casted();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.ParenthesizedExpression#getSuffix <em>Suffix</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Suffix</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ParenthesizedExpression#getSuffix()
+ * @see #getParenthesizedExpression()
+ * @generated
+ */
+ EReference getParenthesizedExpression_Suffix();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.NullExpression <em>Null Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Null Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.NullExpression
+ * @generated
+ */
+ EClass getNullExpression();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.ThisExpression <em>This Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>This Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ThisExpression
+ * @generated
+ */
+ EClass getThisExpression();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.ThisExpression#getSuffix <em>Suffix</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Suffix</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ThisExpression#getSuffix()
+ * @see #getThisExpression()
+ * @generated
+ */
+ EReference getThisExpression_Suffix();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.SuperInvocationExpression <em>Super Invocation Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Super Invocation Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SuperInvocationExpression
+ * @generated
+ */
+ EClass getSuperInvocationExpression();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.SuperInvocationExpression#getTuple <em>Tuple</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Tuple</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SuperInvocationExpression#getTuple()
+ * @see #getSuperInvocationExpression()
+ * @generated
+ */
+ EReference getSuperInvocationExpression_Tuple();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.SuperInvocationExpression#getOperationName <em>Operation Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Operation Name</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SuperInvocationExpression#getOperationName()
+ * @see #getSuperInvocationExpression()
+ * @generated
+ */
+ EReference getSuperInvocationExpression_OperationName();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.InstanceCreationExpression <em>Instance Creation Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Instance Creation Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.InstanceCreationExpression
+ * @generated
+ */
+ EClass getInstanceCreationExpression();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.InstanceCreationExpression#getConstructor <em>Constructor</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Constructor</em>'.
+ * @see org.eclipse.papyrus.alf.alf.InstanceCreationExpression#getConstructor()
+ * @see #getInstanceCreationExpression()
+ * @generated
+ */
+ EReference getInstanceCreationExpression_Constructor();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.InstanceCreationExpression#getTuple <em>Tuple</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Tuple</em>'.
+ * @see org.eclipse.papyrus.alf.alf.InstanceCreationExpression#getTuple()
+ * @see #getInstanceCreationExpression()
+ * @generated
+ */
+ EReference getInstanceCreationExpression_Tuple();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.InstanceCreationExpression#getSuffix <em>Suffix</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Suffix</em>'.
+ * @see org.eclipse.papyrus.alf.alf.InstanceCreationExpression#getSuffix()
+ * @see #getInstanceCreationExpression()
+ * @generated
+ */
+ EReference getInstanceCreationExpression_Suffix();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.InstanceCreationTuple <em>Instance Creation Tuple</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Instance Creation Tuple</em>'.
+ * @see org.eclipse.papyrus.alf.alf.InstanceCreationTuple
+ * @generated
+ */
+ EClass getInstanceCreationTuple();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.alf.alf.InstanceCreationTuple#getInstanceCreationTupleElement <em>Instance Creation Tuple Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Instance Creation Tuple Element</em>'.
+ * @see org.eclipse.papyrus.alf.alf.InstanceCreationTuple#getInstanceCreationTupleElement()
+ * @see #getInstanceCreationTuple()
+ * @generated
+ */
+ EReference getInstanceCreationTuple_InstanceCreationTupleElement();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.InstanceCreationTupleElement <em>Instance Creation Tuple Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Instance Creation Tuple Element</em>'.
+ * @see org.eclipse.papyrus.alf.alf.InstanceCreationTupleElement
+ * @generated
+ */
+ EClass getInstanceCreationTupleElement();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.InstanceCreationTupleElement#getRole <em>Role</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Role</em>'.
+ * @see org.eclipse.papyrus.alf.alf.InstanceCreationTupleElement#getRole()
+ * @see #getInstanceCreationTupleElement()
+ * @generated
+ */
+ EAttribute getInstanceCreationTupleElement_Role();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.InstanceCreationTupleElement#getObject <em>Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Object</em>'.
+ * @see org.eclipse.papyrus.alf.alf.InstanceCreationTupleElement#getObject()
+ * @see #getInstanceCreationTupleElement()
+ * @generated
+ */
+ EReference getInstanceCreationTupleElement_Object();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.SequenceConstructionOrAccessCompletion <em>Sequence Construction Or Access Completion</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Sequence Construction Or Access Completion</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SequenceConstructionOrAccessCompletion
+ * @generated
+ */
+ EClass getSequenceConstructionOrAccessCompletion();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.SequenceConstructionOrAccessCompletion#isMultiplicityIndicator <em>Multiplicity Indicator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Multiplicity Indicator</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SequenceConstructionOrAccessCompletion#isMultiplicityIndicator()
+ * @see #getSequenceConstructionOrAccessCompletion()
+ * @generated
+ */
+ EAttribute getSequenceConstructionOrAccessCompletion_MultiplicityIndicator();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.SequenceConstructionOrAccessCompletion#getAccessCompletion <em>Access Completion</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Access Completion</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SequenceConstructionOrAccessCompletion#getAccessCompletion()
+ * @see #getSequenceConstructionOrAccessCompletion()
+ * @generated
+ */
+ EReference getSequenceConstructionOrAccessCompletion_AccessCompletion();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.SequenceConstructionOrAccessCompletion#getSequenceCompletion <em>Sequence Completion</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Sequence Completion</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SequenceConstructionOrAccessCompletion#getSequenceCompletion()
+ * @see #getSequenceConstructionOrAccessCompletion()
+ * @generated
+ */
+ EReference getSequenceConstructionOrAccessCompletion_SequenceCompletion();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.SequenceConstructionOrAccessCompletion#getExpression <em>Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SequenceConstructionOrAccessCompletion#getExpression()
+ * @see #getSequenceConstructionOrAccessCompletion()
+ * @generated
+ */
+ EReference getSequenceConstructionOrAccessCompletion_Expression();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.AccessCompletion <em>Access Completion</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Access Completion</em>'.
+ * @see org.eclipse.papyrus.alf.alf.AccessCompletion
+ * @generated
+ */
+ EClass getAccessCompletion();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.AccessCompletion#getAccessIndex <em>Access Index</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Access Index</em>'.
+ * @see org.eclipse.papyrus.alf.alf.AccessCompletion#getAccessIndex()
+ * @see #getAccessCompletion()
+ * @generated
+ */
+ EReference getAccessCompletion_AccessIndex();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.PartialSequenceConstructionCompletion <em>Partial Sequence Construction Completion</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Partial Sequence Construction Completion</em>'.
+ * @see org.eclipse.papyrus.alf.alf.PartialSequenceConstructionCompletion
+ * @generated
+ */
+ EClass getPartialSequenceConstructionCompletion();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.PartialSequenceConstructionCompletion#getExpression <em>Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.PartialSequenceConstructionCompletion#getExpression()
+ * @see #getPartialSequenceConstructionCompletion()
+ * @generated
+ */
+ EReference getPartialSequenceConstructionCompletion_Expression();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.SequenceConstructionExpression <em>Sequence Construction Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Sequence Construction Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SequenceConstructionExpression
+ * @generated
+ */
+ EClass getSequenceConstructionExpression();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.alf.alf.SequenceConstructionExpression#getSequenceElement <em>Sequence Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Sequence Element</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SequenceConstructionExpression#getSequenceElement()
+ * @see #getSequenceConstructionExpression()
+ * @generated
+ */
+ EReference getSequenceConstructionExpression_SequenceElement();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.SequenceConstructionExpression#getRangeUpper <em>Range Upper</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Range Upper</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SequenceConstructionExpression#getRangeUpper()
+ * @see #getSequenceConstructionExpression()
+ * @generated
+ */
+ EReference getSequenceConstructionExpression_RangeUpper();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.SequenceElement <em>Sequence Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Sequence Element</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SequenceElement
+ * @generated
+ */
+ EClass getSequenceElement();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.ClassExtentExpression <em>Class Extent Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Class Extent Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ClassExtentExpression
+ * @generated
+ */
+ EClass getClassExtentExpression();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.Block <em>Block</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Block</em>'.
+ * @see org.eclipse.papyrus.alf.alf.Block
+ * @generated
+ */
+ EClass getBlock();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.Block#getSequence <em>Sequence</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Sequence</em>'.
+ * @see org.eclipse.papyrus.alf.alf.Block#getSequence()
+ * @see #getBlock()
+ * @generated
+ */
+ EReference getBlock_Sequence();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.StatementSequence <em>Statement Sequence</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Statement Sequence</em>'.
+ * @see org.eclipse.papyrus.alf.alf.StatementSequence
+ * @generated
+ */
+ EClass getStatementSequence();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.alf.alf.StatementSequence#getStatements <em>Statements</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Statements</em>'.
+ * @see org.eclipse.papyrus.alf.alf.StatementSequence#getStatements()
+ * @see #getStatementSequence()
+ * @generated
+ */
+ EReference getStatementSequence_Statements();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.DocumentedStatement <em>Documented Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Documented Statement</em>'.
+ * @see org.eclipse.papyrus.alf.alf.DocumentedStatement
+ * @generated
+ */
+ EClass getDocumentedStatement();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.DocumentedStatement#getComment <em>Comment</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Comment</em>'.
+ * @see org.eclipse.papyrus.alf.alf.DocumentedStatement#getComment()
+ * @see #getDocumentedStatement()
+ * @generated
+ */
+ EAttribute getDocumentedStatement_Comment();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.DocumentedStatement#getStatement <em>Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Statement</em>'.
+ * @see org.eclipse.papyrus.alf.alf.DocumentedStatement#getStatement()
+ * @see #getDocumentedStatement()
+ * @generated
+ */
+ EReference getDocumentedStatement_Statement();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.InlineStatement <em>Inline Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Inline Statement</em>'.
+ * @see org.eclipse.papyrus.alf.alf.InlineStatement
+ * @generated
+ */
+ EClass getInlineStatement();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.InlineStatement#getLangageName <em>Langage Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Langage Name</em>'.
+ * @see org.eclipse.papyrus.alf.alf.InlineStatement#getLangageName()
+ * @see #getInlineStatement()
+ * @generated
+ */
+ EAttribute getInlineStatement_LangageName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.InlineStatement#getBody <em>Body</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Body</em>'.
+ * @see org.eclipse.papyrus.alf.alf.InlineStatement#getBody()
+ * @see #getInlineStatement()
+ * @generated
+ */
+ EAttribute getInlineStatement_Body();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.AnnotatedStatement <em>Annotated Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Annotated Statement</em>'.
+ * @see org.eclipse.papyrus.alf.alf.AnnotatedStatement
+ * @generated
+ */
+ EClass getAnnotatedStatement();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.AnnotatedStatement#getAnnotation <em>Annotation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Annotation</em>'.
+ * @see org.eclipse.papyrus.alf.alf.AnnotatedStatement#getAnnotation()
+ * @see #getAnnotatedStatement()
+ * @generated
+ */
+ EReference getAnnotatedStatement_Annotation();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.AnnotatedStatement#getStatement <em>Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Statement</em>'.
+ * @see org.eclipse.papyrus.alf.alf.AnnotatedStatement#getStatement()
+ * @see #getAnnotatedStatement()
+ * @generated
+ */
+ EReference getAnnotatedStatement_Statement();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.Statement <em>Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Statement</em>'.
+ * @see org.eclipse.papyrus.alf.alf.Statement
+ * @generated
+ */
+ EClass getStatement();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.Annotation <em>Annotation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Annotation</em>'.
+ * @see org.eclipse.papyrus.alf.alf.Annotation
+ * @generated
+ */
+ EClass getAnnotation();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.Annotation#getKind <em>Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Kind</em>'.
+ * @see org.eclipse.papyrus.alf.alf.Annotation#getKind()
+ * @see #getAnnotation()
+ * @generated
+ */
+ EAttribute getAnnotation_Kind();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.alf.alf.Annotation#getArgs <em>Args</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Args</em>'.
+ * @see org.eclipse.papyrus.alf.alf.Annotation#getArgs()
+ * @see #getAnnotation()
+ * @generated
+ */
+ EAttribute getAnnotation_Args();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.BlockStatement <em>Block Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Block Statement</em>'.
+ * @see org.eclipse.papyrus.alf.alf.BlockStatement
+ * @generated
+ */
+ EClass getBlockStatement();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.BlockStatement#getBlock <em>Block</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Block</em>'.
+ * @see org.eclipse.papyrus.alf.alf.BlockStatement#getBlock()
+ * @see #getBlockStatement()
+ * @generated
+ */
+ EReference getBlockStatement_Block();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.EmptyStatement <em>Empty Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Empty Statement</em>'.
+ * @see org.eclipse.papyrus.alf.alf.EmptyStatement
+ * @generated
+ */
+ EClass getEmptyStatement();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.LocalNameDeclarationStatement <em>Local Name Declaration Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Local Name Declaration Statement</em>'.
+ * @see org.eclipse.papyrus.alf.alf.LocalNameDeclarationStatement
+ * @generated
+ */
+ EClass getLocalNameDeclarationStatement();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.LocalNameDeclarationStatement#getVarName <em>Var Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Var Name</em>'.
+ * @see org.eclipse.papyrus.alf.alf.LocalNameDeclarationStatement#getVarName()
+ * @see #getLocalNameDeclarationStatement()
+ * @generated
+ */
+ EAttribute getLocalNameDeclarationStatement_VarName();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.LocalNameDeclarationStatement#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Type</em>'.
+ * @see org.eclipse.papyrus.alf.alf.LocalNameDeclarationStatement#getType()
+ * @see #getLocalNameDeclarationStatement()
+ * @generated
+ */
+ EReference getLocalNameDeclarationStatement_Type();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.LocalNameDeclarationStatement#isMultiplicityIndicator <em>Multiplicity Indicator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Multiplicity Indicator</em>'.
+ * @see org.eclipse.papyrus.alf.alf.LocalNameDeclarationStatement#isMultiplicityIndicator()
+ * @see #getLocalNameDeclarationStatement()
+ * @generated
+ */
+ EAttribute getLocalNameDeclarationStatement_MultiplicityIndicator();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.LocalNameDeclarationStatement#getInit <em>Init</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Init</em>'.
+ * @see org.eclipse.papyrus.alf.alf.LocalNameDeclarationStatement#getInit()
+ * @see #getLocalNameDeclarationStatement()
+ * @generated
+ */
+ EReference getLocalNameDeclarationStatement_Init();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.IfStatement <em>If Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>If Statement</em>'.
+ * @see org.eclipse.papyrus.alf.alf.IfStatement
+ * @generated
+ */
+ EClass getIfStatement();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.IfStatement#getSequentialClausses <em>Sequential Clausses</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Sequential Clausses</em>'.
+ * @see org.eclipse.papyrus.alf.alf.IfStatement#getSequentialClausses()
+ * @see #getIfStatement()
+ * @generated
+ */
+ EReference getIfStatement_SequentialClausses();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.IfStatement#getFinalClause <em>Final Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Final Clause</em>'.
+ * @see org.eclipse.papyrus.alf.alf.IfStatement#getFinalClause()
+ * @see #getIfStatement()
+ * @generated
+ */
+ EReference getIfStatement_FinalClause();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.SequentialClauses <em>Sequential Clauses</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Sequential Clauses</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SequentialClauses
+ * @generated
+ */
+ EClass getSequentialClauses();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.alf.alf.SequentialClauses#getConccurentClauses <em>Conccurent Clauses</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Conccurent Clauses</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SequentialClauses#getConccurentClauses()
+ * @see #getSequentialClauses()
+ * @generated
+ */
+ EReference getSequentialClauses_ConccurentClauses();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.ConcurrentClauses <em>Concurrent Clauses</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Concurrent Clauses</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ConcurrentClauses
+ * @generated
+ */
+ EClass getConcurrentClauses();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.alf.alf.ConcurrentClauses#getNonFinalClause <em>Non Final Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Non Final Clause</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ConcurrentClauses#getNonFinalClause()
+ * @see #getConcurrentClauses()
+ * @generated
+ */
+ EReference getConcurrentClauses_NonFinalClause();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.NonFinalClause <em>Non Final Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Non Final Clause</em>'.
+ * @see org.eclipse.papyrus.alf.alf.NonFinalClause
+ * @generated
+ */
+ EClass getNonFinalClause();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.NonFinalClause#getCondition <em>Condition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Condition</em>'.
+ * @see org.eclipse.papyrus.alf.alf.NonFinalClause#getCondition()
+ * @see #getNonFinalClause()
+ * @generated
+ */
+ EReference getNonFinalClause_Condition();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.NonFinalClause#getBlock <em>Block</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Block</em>'.
+ * @see org.eclipse.papyrus.alf.alf.NonFinalClause#getBlock()
+ * @see #getNonFinalClause()
+ * @generated
+ */
+ EReference getNonFinalClause_Block();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.FinalClause <em>Final Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Final Clause</em>'.
+ * @see org.eclipse.papyrus.alf.alf.FinalClause
+ * @generated
+ */
+ EClass getFinalClause();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.FinalClause#getBlock <em>Block</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Block</em>'.
+ * @see org.eclipse.papyrus.alf.alf.FinalClause#getBlock()
+ * @see #getFinalClause()
+ * @generated
+ */
+ EReference getFinalClause_Block();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.SwitchStatement <em>Switch Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Switch Statement</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SwitchStatement
+ * @generated
+ */
+ EClass getSwitchStatement();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.SwitchStatement#getExpression <em>Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SwitchStatement#getExpression()
+ * @see #getSwitchStatement()
+ * @generated
+ */
+ EReference getSwitchStatement_Expression();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.alf.alf.SwitchStatement#getSwitchClause <em>Switch Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Switch Clause</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SwitchStatement#getSwitchClause()
+ * @see #getSwitchStatement()
+ * @generated
+ */
+ EReference getSwitchStatement_SwitchClause();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.SwitchStatement#getDefaultClause <em>Default Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Default Clause</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SwitchStatement#getDefaultClause()
+ * @see #getSwitchStatement()
+ * @generated
+ */
+ EReference getSwitchStatement_DefaultClause();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.SwitchClause <em>Switch Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Switch Clause</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SwitchClause
+ * @generated
+ */
+ EClass getSwitchClause();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.alf.alf.SwitchClause#getSwitchCase <em>Switch Case</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Switch Case</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SwitchClause#getSwitchCase()
+ * @see #getSwitchClause()
+ * @generated
+ */
+ EReference getSwitchClause_SwitchCase();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.SwitchClause#getStatementSequence <em>Statement Sequence</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Statement Sequence</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SwitchClause#getStatementSequence()
+ * @see #getSwitchClause()
+ * @generated
+ */
+ EReference getSwitchClause_StatementSequence();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.SwitchCase <em>Switch Case</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Switch Case</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SwitchCase
+ * @generated
+ */
+ EClass getSwitchCase();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.SwitchCase#getExpression <em>Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SwitchCase#getExpression()
+ * @see #getSwitchCase()
+ * @generated
+ */
+ EReference getSwitchCase_Expression();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.SwitchDefaultClause <em>Switch Default Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Switch Default Clause</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SwitchDefaultClause
+ * @generated
+ */
+ EClass getSwitchDefaultClause();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.SwitchDefaultClause#getStatementSequence <em>Statement Sequence</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Statement Sequence</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SwitchDefaultClause#getStatementSequence()
+ * @see #getSwitchDefaultClause()
+ * @generated
+ */
+ EReference getSwitchDefaultClause_StatementSequence();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.NonEmptyStatementSequence <em>Non Empty Statement Sequence</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Non Empty Statement Sequence</em>'.
+ * @see org.eclipse.papyrus.alf.alf.NonEmptyStatementSequence
+ * @generated
+ */
+ EClass getNonEmptyStatementSequence();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.alf.alf.NonEmptyStatementSequence#getStatement <em>Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Statement</em>'.
+ * @see org.eclipse.papyrus.alf.alf.NonEmptyStatementSequence#getStatement()
+ * @see #getNonEmptyStatementSequence()
+ * @generated
+ */
+ EReference getNonEmptyStatementSequence_Statement();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.WhileStatement <em>While Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>While Statement</em>'.
+ * @see org.eclipse.papyrus.alf.alf.WhileStatement
+ * @generated
+ */
+ EClass getWhileStatement();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.WhileStatement#getCondition <em>Condition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Condition</em>'.
+ * @see org.eclipse.papyrus.alf.alf.WhileStatement#getCondition()
+ * @see #getWhileStatement()
+ * @generated
+ */
+ EReference getWhileStatement_Condition();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.WhileStatement#getBlock <em>Block</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Block</em>'.
+ * @see org.eclipse.papyrus.alf.alf.WhileStatement#getBlock()
+ * @see #getWhileStatement()
+ * @generated
+ */
+ EReference getWhileStatement_Block();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.DoStatement <em>Do Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Do Statement</em>'.
+ * @see org.eclipse.papyrus.alf.alf.DoStatement
+ * @generated
+ */
+ EClass getDoStatement();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.DoStatement#getBlock <em>Block</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Block</em>'.
+ * @see org.eclipse.papyrus.alf.alf.DoStatement#getBlock()
+ * @see #getDoStatement()
+ * @generated
+ */
+ EReference getDoStatement_Block();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.DoStatement#getCondition <em>Condition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Condition</em>'.
+ * @see org.eclipse.papyrus.alf.alf.DoStatement#getCondition()
+ * @see #getDoStatement()
+ * @generated
+ */
+ EReference getDoStatement_Condition();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.ForStatement <em>For Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>For Statement</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ForStatement
+ * @generated
+ */
+ EClass getForStatement();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.ForStatement#getControl <em>Control</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Control</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ForStatement#getControl()
+ * @see #getForStatement()
+ * @generated
+ */
+ EReference getForStatement_Control();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.ForStatement#getBlock <em>Block</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Block</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ForStatement#getBlock()
+ * @see #getForStatement()
+ * @generated
+ */
+ EReference getForStatement_Block();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.ForControl <em>For Control</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>For Control</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ForControl
+ * @generated
+ */
+ EClass getForControl();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.alf.alf.ForControl#getLoopVariableDefinition <em>Loop Variable Definition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Loop Variable Definition</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ForControl#getLoopVariableDefinition()
+ * @see #getForControl()
+ * @generated
+ */
+ EReference getForControl_LoopVariableDefinition();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.LoopVariableDefinition <em>Loop Variable Definition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Loop Variable Definition</em>'.
+ * @see org.eclipse.papyrus.alf.alf.LoopVariableDefinition
+ * @generated
+ */
+ EClass getLoopVariableDefinition();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.LoopVariableDefinition#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.papyrus.alf.alf.LoopVariableDefinition#getName()
+ * @see #getLoopVariableDefinition()
+ * @generated
+ */
+ EAttribute getLoopVariableDefinition_Name();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.LoopVariableDefinition#getExpression1 <em>Expression1</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Expression1</em>'.
+ * @see org.eclipse.papyrus.alf.alf.LoopVariableDefinition#getExpression1()
+ * @see #getLoopVariableDefinition()
+ * @generated
+ */
+ EReference getLoopVariableDefinition_Expression1();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.LoopVariableDefinition#getExpression2 <em>Expression2</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Expression2</em>'.
+ * @see org.eclipse.papyrus.alf.alf.LoopVariableDefinition#getExpression2()
+ * @see #getLoopVariableDefinition()
+ * @generated
+ */
+ EReference getLoopVariableDefinition_Expression2();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.LoopVariableDefinition#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Type</em>'.
+ * @see org.eclipse.papyrus.alf.alf.LoopVariableDefinition#getType()
+ * @see #getLoopVariableDefinition()
+ * @generated
+ */
+ EReference getLoopVariableDefinition_Type();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.LoopVariableDefinition#getExpression <em>Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.LoopVariableDefinition#getExpression()
+ * @see #getLoopVariableDefinition()
+ * @generated
+ */
+ EReference getLoopVariableDefinition_Expression();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.BreakStatement <em>Break Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Break Statement</em>'.
+ * @see org.eclipse.papyrus.alf.alf.BreakStatement
+ * @generated
+ */
+ EClass getBreakStatement();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.ReturnStatement <em>Return Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Return Statement</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ReturnStatement
+ * @generated
+ */
+ EClass getReturnStatement();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.ReturnStatement#getExpression <em>Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ReturnStatement#getExpression()
+ * @see #getReturnStatement()
+ * @generated
+ */
+ EReference getReturnStatement_Expression();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.AcceptStatement <em>Accept Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Accept Statement</em>'.
+ * @see org.eclipse.papyrus.alf.alf.AcceptStatement
+ * @generated
+ */
+ EClass getAcceptStatement();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.AcceptStatement#getClause <em>Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Clause</em>'.
+ * @see org.eclipse.papyrus.alf.alf.AcceptStatement#getClause()
+ * @see #getAcceptStatement()
+ * @generated
+ */
+ EReference getAcceptStatement_Clause();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.AcceptStatement#getSimpleAccept <em>Simple Accept</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Simple Accept</em>'.
+ * @see org.eclipse.papyrus.alf.alf.AcceptStatement#getSimpleAccept()
+ * @see #getAcceptStatement()
+ * @generated
+ */
+ EReference getAcceptStatement_SimpleAccept();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.AcceptStatement#getCompoundAccept <em>Compound Accept</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Compound Accept</em>'.
+ * @see org.eclipse.papyrus.alf.alf.AcceptStatement#getCompoundAccept()
+ * @see #getAcceptStatement()
+ * @generated
+ */
+ EReference getAcceptStatement_CompoundAccept();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.SimpleAcceptStatementCompletion <em>Simple Accept Statement Completion</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Simple Accept Statement Completion</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SimpleAcceptStatementCompletion
+ * @generated
+ */
+ EClass getSimpleAcceptStatementCompletion();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.CompoundAcceptStatementCompletion <em>Compound Accept Statement Completion</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Compound Accept Statement Completion</em>'.
+ * @see org.eclipse.papyrus.alf.alf.CompoundAcceptStatementCompletion
+ * @generated
+ */
+ EClass getCompoundAcceptStatementCompletion();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.CompoundAcceptStatementCompletion#getBlock <em>Block</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Block</em>'.
+ * @see org.eclipse.papyrus.alf.alf.CompoundAcceptStatementCompletion#getBlock()
+ * @see #getCompoundAcceptStatementCompletion()
+ * @generated
+ */
+ EReference getCompoundAcceptStatementCompletion_Block();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.alf.alf.CompoundAcceptStatementCompletion#getAcceptBlock <em>Accept Block</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Accept Block</em>'.
+ * @see org.eclipse.papyrus.alf.alf.CompoundAcceptStatementCompletion#getAcceptBlock()
+ * @see #getCompoundAcceptStatementCompletion()
+ * @generated
+ */
+ EReference getCompoundAcceptStatementCompletion_AcceptBlock();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.AcceptBlock <em>Accept Block</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Accept Block</em>'.
+ * @see org.eclipse.papyrus.alf.alf.AcceptBlock
+ * @generated
+ */
+ EClass getAcceptBlock();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.AcceptBlock#getClause <em>Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Clause</em>'.
+ * @see org.eclipse.papyrus.alf.alf.AcceptBlock#getClause()
+ * @see #getAcceptBlock()
+ * @generated
+ */
+ EReference getAcceptBlock_Clause();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.AcceptBlock#getBlock <em>Block</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Block</em>'.
+ * @see org.eclipse.papyrus.alf.alf.AcceptBlock#getBlock()
+ * @see #getAcceptBlock()
+ * @generated
+ */
+ EReference getAcceptBlock_Block();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.AcceptClause <em>Accept Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Accept Clause</em>'.
+ * @see org.eclipse.papyrus.alf.alf.AcceptClause
+ * @generated
+ */
+ EClass getAcceptClause();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.AcceptClause#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.papyrus.alf.alf.AcceptClause#getName()
+ * @see #getAcceptClause()
+ * @generated
+ */
+ EAttribute getAcceptClause_Name();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.AcceptClause#getQualifiedNameList <em>Qualified Name List</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Qualified Name List</em>'.
+ * @see org.eclipse.papyrus.alf.alf.AcceptClause#getQualifiedNameList()
+ * @see #getAcceptClause()
+ * @generated
+ */
+ EReference getAcceptClause_QualifiedNameList();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.ClassifyStatement <em>Classify Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Classify Statement</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ClassifyStatement
+ * @generated
+ */
+ EClass getClassifyStatement();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.ClassifyStatement#getExpression <em>Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Expression</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ClassifyStatement#getExpression()
+ * @see #getClassifyStatement()
+ * @generated
+ */
+ EReference getClassifyStatement_Expression();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.ClassifyStatement#getClause <em>Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Clause</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ClassifyStatement#getClause()
+ * @see #getClassifyStatement()
+ * @generated
+ */
+ EReference getClassifyStatement_Clause();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.ClassificationClause <em>Classification Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Classification Clause</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ClassificationClause
+ * @generated
+ */
+ EClass getClassificationClause();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.ClassificationClause#getClassifyFromClause <em>Classify From Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Classify From Clause</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ClassificationClause#getClassifyFromClause()
+ * @see #getClassificationClause()
+ * @generated
+ */
+ EReference getClassificationClause_ClassifyFromClause();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.ClassificationClause#getClassifyToClause <em>Classify To Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Classify To Clause</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ClassificationClause#getClassifyToClause()
+ * @see #getClassificationClause()
+ * @generated
+ */
+ EReference getClassificationClause_ClassifyToClause();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.ClassificationClause#getReclassyAllClause <em>Reclassy All Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Reclassy All Clause</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ClassificationClause#getReclassyAllClause()
+ * @see #getClassificationClause()
+ * @generated
+ */
+ EReference getClassificationClause_ReclassyAllClause();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.ClassificationFromClause <em>Classification From Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Classification From Clause</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ClassificationFromClause
+ * @generated
+ */
+ EClass getClassificationFromClause();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.ClassificationFromClause#getQualifiedNameList <em>Qualified Name List</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Qualified Name List</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ClassificationFromClause#getQualifiedNameList()
+ * @see #getClassificationFromClause()
+ * @generated
+ */
+ EReference getClassificationFromClause_QualifiedNameList();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.ClassificationToClause <em>Classification To Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Classification To Clause</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ClassificationToClause
+ * @generated
+ */
+ EClass getClassificationToClause();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.ClassificationToClause#getQualifiedNameList <em>Qualified Name List</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Qualified Name List</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ClassificationToClause#getQualifiedNameList()
+ * @see #getClassificationToClause()
+ * @generated
+ */
+ EReference getClassificationToClause_QualifiedNameList();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.ReclassifyAllClause <em>Reclassify All Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Reclassify All Clause</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ReclassifyAllClause
+ * @generated
+ */
+ EClass getReclassifyAllClause();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.QualifiedNameList <em>Qualified Name List</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Qualified Name List</em>'.
+ * @see org.eclipse.papyrus.alf.alf.QualifiedNameList
+ * @generated
+ */
+ EClass getQualifiedNameList();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.alf.alf.QualifiedNameList#getQualifiedName <em>Qualified Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Qualified Name</em>'.
+ * @see org.eclipse.papyrus.alf.alf.QualifiedNameList#getQualifiedName()
+ * @see #getQualifiedNameList()
+ * @generated
+ */
+ EReference getQualifiedNameList_QualifiedName();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.InvocationOrAssignementOrDeclarationStatement <em>Invocation Or Assignement Or Declaration Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Invocation Or Assignement Or Declaration Statement</em>'.
+ * @see org.eclipse.papyrus.alf.alf.InvocationOrAssignementOrDeclarationStatement
+ * @generated
+ */
+ EClass getInvocationOrAssignementOrDeclarationStatement();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.InvocationOrAssignementOrDeclarationStatement#getTypePart_OR_assignedPart_OR_invocationPart <em>Type Part OR assigned Part OR invocation Part</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Type Part OR assigned Part OR invocation Part</em>'.
+ * @see org.eclipse.papyrus.alf.alf.InvocationOrAssignementOrDeclarationStatement#getTypePart_OR_assignedPart_OR_invocationPart()
+ * @see #getInvocationOrAssignementOrDeclarationStatement()
+ * @generated
+ */
+ EReference getInvocationOrAssignementOrDeclarationStatement_TypePart_OR_assignedPart_OR_invocationPart();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.InvocationOrAssignementOrDeclarationStatement#getVariableDeclarationCompletion <em>Variable Declaration Completion</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Variable Declaration Completion</em>'.
+ * @see org.eclipse.papyrus.alf.alf.InvocationOrAssignementOrDeclarationStatement#getVariableDeclarationCompletion()
+ * @see #getInvocationOrAssignementOrDeclarationStatement()
+ * @generated
+ */
+ EReference getInvocationOrAssignementOrDeclarationStatement_VariableDeclarationCompletion();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.InvocationOrAssignementOrDeclarationStatement#getAssignmentCompletion <em>Assignment Completion</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Assignment Completion</em>'.
+ * @see org.eclipse.papyrus.alf.alf.InvocationOrAssignementOrDeclarationStatement#getAssignmentCompletion()
+ * @see #getInvocationOrAssignementOrDeclarationStatement()
+ * @generated
+ */
+ EReference getInvocationOrAssignementOrDeclarationStatement_AssignmentCompletion();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.SuperInvocationStatement <em>Super Invocation Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Super Invocation Statement</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SuperInvocationStatement
+ * @generated
+ */
+ EClass getSuperInvocationStatement();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.SuperInvocationStatement#get_super <em>super</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>super</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SuperInvocationStatement#get_super()
+ * @see #getSuperInvocationStatement()
+ * @generated
+ */
+ EReference getSuperInvocationStatement__super();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.ThisInvocationStatement <em>This Invocation Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>This Invocation Statement</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ThisInvocationStatement
+ * @generated
+ */
+ EClass getThisInvocationStatement();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.ThisInvocationStatement#get_this <em>this</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>this</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ThisInvocationStatement#get_this()
+ * @see #getThisInvocationStatement()
+ * @generated
+ */
+ EReference getThisInvocationStatement__this();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.ThisInvocationStatement#getAssignmentCompletion <em>Assignment Completion</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Assignment Completion</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ThisInvocationStatement#getAssignmentCompletion()
+ * @see #getThisInvocationStatement()
+ * @generated
+ */
+ EReference getThisInvocationStatement_AssignmentCompletion();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.InstanceCreationInvocationStatement <em>Instance Creation Invocation Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Instance Creation Invocation Statement</em>'.
+ * @see org.eclipse.papyrus.alf.alf.InstanceCreationInvocationStatement
+ * @generated
+ */
+ EClass getInstanceCreationInvocationStatement();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.InstanceCreationInvocationStatement#get_new <em>new</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>new</em>'.
+ * @see org.eclipse.papyrus.alf.alf.InstanceCreationInvocationStatement#get_new()
+ * @see #getInstanceCreationInvocationStatement()
+ * @generated
+ */
+ EReference getInstanceCreationInvocationStatement__new();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.VariableDeclarationCompletion <em>Variable Declaration Completion</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Variable Declaration Completion</em>'.
+ * @see org.eclipse.papyrus.alf.alf.VariableDeclarationCompletion
+ * @generated
+ */
+ EClass getVariableDeclarationCompletion();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.VariableDeclarationCompletion#isMultiplicityIndicator <em>Multiplicity Indicator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Multiplicity Indicator</em>'.
+ * @see org.eclipse.papyrus.alf.alf.VariableDeclarationCompletion#isMultiplicityIndicator()
+ * @see #getVariableDeclarationCompletion()
+ * @generated
+ */
+ EAttribute getVariableDeclarationCompletion_MultiplicityIndicator();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.VariableDeclarationCompletion#getVariableName <em>Variable Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Variable Name</em>'.
+ * @see org.eclipse.papyrus.alf.alf.VariableDeclarationCompletion#getVariableName()
+ * @see #getVariableDeclarationCompletion()
+ * @generated
+ */
+ EAttribute getVariableDeclarationCompletion_VariableName();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.VariableDeclarationCompletion#getInitValue <em>Init Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Init Value</em>'.
+ * @see org.eclipse.papyrus.alf.alf.VariableDeclarationCompletion#getInitValue()
+ * @see #getVariableDeclarationCompletion()
+ * @generated
+ */
+ EReference getVariableDeclarationCompletion_InitValue();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.alf.alf.AssignmentCompletion <em>Assignment Completion</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Assignment Completion</em>'.
+ * @see org.eclipse.papyrus.alf.alf.AssignmentCompletion
+ * @generated
+ */
+ EClass getAssignmentCompletion();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.alf.alf.AssignmentCompletion#getOp <em>Op</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Op</em>'.
+ * @see org.eclipse.papyrus.alf.alf.AssignmentCompletion#getOp()
+ * @see #getAssignmentCompletion()
+ * @generated
+ */
+ EAttribute getAssignmentCompletion_Op();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.alf.alf.AssignmentCompletion#getRightHandSide <em>Right Hand Side</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Right Hand Side</em>'.
+ * @see org.eclipse.papyrus.alf.alf.AssignmentCompletion#getRightHandSide()
+ * @see #getAssignmentCompletion()
+ * @generated
+ */
+ EReference getAssignmentCompletion_RightHandSide();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.papyrus.alf.alf.BooleanValue <em>Boolean Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Boolean Value</em>'.
+ * @see org.eclipse.papyrus.alf.alf.BooleanValue
+ * @generated
+ */
+ EEnum getBooleanValue();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.papyrus.alf.alf.LinkOperationKind <em>Link Operation Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Link Operation Kind</em>'.
+ * @see org.eclipse.papyrus.alf.alf.LinkOperationKind
+ * @generated
+ */
+ EEnum getLinkOperationKind();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.papyrus.alf.alf.SelectOrRejectOperator <em>Select Or Reject Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Select Or Reject Operator</em>'.
+ * @see org.eclipse.papyrus.alf.alf.SelectOrRejectOperator
+ * @generated
+ */
+ EEnum getSelectOrRejectOperator();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.papyrus.alf.alf.CollectOrIterateOperator <em>Collect Or Iterate Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Collect Or Iterate Operator</em>'.
+ * @see org.eclipse.papyrus.alf.alf.CollectOrIterateOperator
+ * @generated
+ */
+ EEnum getCollectOrIterateOperator();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.papyrus.alf.alf.ForAllOrExistsOrOneOperator <em>For All Or Exists Or One Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>For All Or Exists Or One Operator</em>'.
+ * @see org.eclipse.papyrus.alf.alf.ForAllOrExistsOrOneOperator
+ * @generated
+ */
+ EEnum getForAllOrExistsOrOneOperator();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.papyrus.alf.alf.AnnotationKind <em>Annotation Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Annotation Kind</em>'.
+ * @see org.eclipse.papyrus.alf.alf.AnnotationKind
+ * @generated
+ */
+ EEnum getAnnotationKind();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.papyrus.alf.alf.AssignmentOperator <em>Assignment Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Assignment Operator</em>'.
+ * @see org.eclipse.papyrus.alf.alf.AssignmentOperator
+ * @generated
+ */
+ EEnum getAssignmentOperator();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ AlfFactory getAlfFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals
+ {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.TestImpl <em>Test</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.TestImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getTest()
+ * @generated
+ */
+ EClass TEST = eINSTANCE.getTest();
+
+ /**
+ * The meta object literal for the '<em><b>Expression</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TEST__EXPRESSION = eINSTANCE.getTest_Expression();
+
+ /**
+ * The meta object literal for the '<em><b>Assign Expression</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TEST__ASSIGN_EXPRESSION = eINSTANCE.getTest_AssignExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Statements</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TEST__STATEMENTS = eINSTANCE.getTest_Statements();
+
+ /**
+ * The meta object literal for the '<em><b>Block</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TEST__BLOCK = eINSTANCE.getTest_Block();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.LITERALImpl <em>LITERAL</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.LITERALImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getLITERAL()
+ * @generated
+ */
+ EClass LITERAL = eINSTANCE.getLITERAL();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.BOOLEAN_LITERALImpl <em>BOOLEAN LITERAL</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.BOOLEAN_LITERALImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getBOOLEAN_LITERAL()
+ * @generated
+ */
+ EClass BOOLEAN_LITERAL = eINSTANCE.getBOOLEAN_LITERAL();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute BOOLEAN_LITERAL__VALUE = eINSTANCE.getBOOLEAN_LITERAL_Value();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.NUMBER_LITERALImpl <em>NUMBER LITERAL</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.NUMBER_LITERALImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getNUMBER_LITERAL()
+ * @generated
+ */
+ EClass NUMBER_LITERAL = eINSTANCE.getNUMBER_LITERAL();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute NUMBER_LITERAL__VALUE = eINSTANCE.getNUMBER_LITERAL_Value();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.INTEGER_LITERALImpl <em>INTEGER LITERAL</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.INTEGER_LITERALImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getINTEGER_LITERAL()
+ * @generated
+ */
+ EClass INTEGER_LITERAL = eINSTANCE.getINTEGER_LITERAL();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.UNLIMITED_LITERALImpl <em>UNLIMITED LITERAL</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.UNLIMITED_LITERALImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getUNLIMITED_LITERAL()
+ * @generated
+ */
+ EClass UNLIMITED_LITERAL = eINSTANCE.getUNLIMITED_LITERAL();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.STRING_LITERALImpl <em>STRING LITERAL</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.STRING_LITERALImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSTRING_LITERAL()
+ * @generated
+ */
+ EClass STRING_LITERAL = eINSTANCE.getSTRING_LITERAL();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STRING_LITERAL__VALUE = eINSTANCE.getSTRING_LITERAL_Value();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.NameExpressionImpl <em>Name Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.NameExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getNameExpression()
+ * @generated
+ */
+ EClass NAME_EXPRESSION = eINSTANCE.getNameExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Prefix Op</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute NAME_EXPRESSION__PREFIX_OP = eINSTANCE.getNameExpression_PrefixOp();
+
+ /**
+ * The meta object literal for the '<em><b>Path</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference NAME_EXPRESSION__PATH = eINSTANCE.getNameExpression_Path();
+
+ /**
+ * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute NAME_EXPRESSION__ID = eINSTANCE.getNameExpression_Id();
+
+ /**
+ * The meta object literal for the '<em><b>Invocation Completion</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference NAME_EXPRESSION__INVOCATION_COMPLETION = eINSTANCE.getNameExpression_InvocationCompletion();
+
+ /**
+ * The meta object literal for the '<em><b>Sequence Construction Completion</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference NAME_EXPRESSION__SEQUENCE_CONSTRUCTION_COMPLETION = eINSTANCE.getNameExpression_SequenceConstructionCompletion();
+
+ /**
+ * The meta object literal for the '<em><b>Postfix Op</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute NAME_EXPRESSION__POSTFIX_OP = eINSTANCE.getNameExpression_PostfixOp();
+
+ /**
+ * The meta object literal for the '<em><b>Suffix</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference NAME_EXPRESSION__SUFFIX = eINSTANCE.getNameExpression_Suffix();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.QualifiedNamePathImpl <em>Qualified Name Path</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.QualifiedNamePathImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getQualifiedNamePath()
+ * @generated
+ */
+ EClass QUALIFIED_NAME_PATH = eINSTANCE.getQualifiedNamePath();
+
+ /**
+ * The meta object literal for the '<em><b>Namespace</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference QUALIFIED_NAME_PATH__NAMESPACE = eINSTANCE.getQualifiedNamePath_Namespace();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.UnqualifiedNameImpl <em>Unqualified Name</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.UnqualifiedNameImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getUnqualifiedName()
+ * @generated
+ */
+ EClass UNQUALIFIED_NAME = eINSTANCE.getUnqualifiedName();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute UNQUALIFIED_NAME__NAME = eINSTANCE.getUnqualifiedName_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Template Binding</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference UNQUALIFIED_NAME__TEMPLATE_BINDING = eINSTANCE.getUnqualifiedName_TemplateBinding();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.TemplateBindingImpl <em>Template Binding</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.TemplateBindingImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getTemplateBinding()
+ * @generated
+ */
+ EClass TEMPLATE_BINDING = eINSTANCE.getTemplateBinding();
+
+ /**
+ * The meta object literal for the '<em><b>Bindings</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TEMPLATE_BINDING__BINDINGS = eINSTANCE.getTemplateBinding_Bindings();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.NamedTemplateBindingImpl <em>Named Template Binding</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.NamedTemplateBindingImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getNamedTemplateBinding()
+ * @generated
+ */
+ EClass NAMED_TEMPLATE_BINDING = eINSTANCE.getNamedTemplateBinding();
+
+ /**
+ * The meta object literal for the '<em><b>Formal</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute NAMED_TEMPLATE_BINDING__FORMAL = eINSTANCE.getNamedTemplateBinding_Formal();
+
+ /**
+ * The meta object literal for the '<em><b>Actual</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference NAMED_TEMPLATE_BINDING__ACTUAL = eINSTANCE.getNamedTemplateBinding_Actual();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.QualifiedNameWithBindingImpl <em>Qualified Name With Binding</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.QualifiedNameWithBindingImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getQualifiedNameWithBinding()
+ * @generated
+ */
+ EClass QUALIFIED_NAME_WITH_BINDING = eINSTANCE.getQualifiedNameWithBinding();
+
+ /**
+ * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute QUALIFIED_NAME_WITH_BINDING__ID = eINSTANCE.getQualifiedNameWithBinding_Id();
+
+ /**
+ * The meta object literal for the '<em><b>Binding</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference QUALIFIED_NAME_WITH_BINDING__BINDING = eINSTANCE.getQualifiedNameWithBinding_Binding();
+
+ /**
+ * The meta object literal for the '<em><b>Remaining</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference QUALIFIED_NAME_WITH_BINDING__REMAINING = eINSTANCE.getQualifiedNameWithBinding_Remaining();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.TupleImpl <em>Tuple</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.TupleImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getTuple()
+ * @generated
+ */
+ EClass TUPLE = eINSTANCE.getTuple();
+
+ /**
+ * The meta object literal for the '<em><b>Tuple Elements</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TUPLE__TUPLE_ELEMENTS = eINSTANCE.getTuple_TupleElements();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.TupleElementImpl <em>Tuple Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.TupleElementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getTupleElement()
+ * @generated
+ */
+ EClass TUPLE_ELEMENT = eINSTANCE.getTupleElement();
+
+ /**
+ * The meta object literal for the '<em><b>Argument</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TUPLE_ELEMENT__ARGUMENT = eINSTANCE.getTupleElement_Argument();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.ExpressionImpl <em>Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getExpression()
+ * @generated
+ */
+ EClass EXPRESSION = eINSTANCE.getExpression();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.ConditionalTestExpressionImpl <em>Conditional Test Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ConditionalTestExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getConditionalTestExpression()
+ * @generated
+ */
+ EClass CONDITIONAL_TEST_EXPRESSION = eINSTANCE.getConditionalTestExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Exp</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONDITIONAL_TEST_EXPRESSION__EXP = eINSTANCE.getConditionalTestExpression_Exp();
+
+ /**
+ * The meta object literal for the '<em><b>When True</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONDITIONAL_TEST_EXPRESSION__WHEN_TRUE = eINSTANCE.getConditionalTestExpression_WhenTrue();
+
+ /**
+ * The meta object literal for the '<em><b>When False</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONDITIONAL_TEST_EXPRESSION__WHEN_FALSE = eINSTANCE.getConditionalTestExpression_WhenFalse();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.ConditionalOrExpressionImpl <em>Conditional Or Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ConditionalOrExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getConditionalOrExpression()
+ * @generated
+ */
+ EClass CONDITIONAL_OR_EXPRESSION = eINSTANCE.getConditionalOrExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Exp</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONDITIONAL_OR_EXPRESSION__EXP = eINSTANCE.getConditionalOrExpression_Exp();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.ConditionalAndExpressionImpl <em>Conditional And Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ConditionalAndExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getConditionalAndExpression()
+ * @generated
+ */
+ EClass CONDITIONAL_AND_EXPRESSION = eINSTANCE.getConditionalAndExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Exp</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONDITIONAL_AND_EXPRESSION__EXP = eINSTANCE.getConditionalAndExpression_Exp();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.InclusiveOrExpressionImpl <em>Inclusive Or Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.InclusiveOrExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getInclusiveOrExpression()
+ * @generated
+ */
+ EClass INCLUSIVE_OR_EXPRESSION = eINSTANCE.getInclusiveOrExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Exp</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INCLUSIVE_OR_EXPRESSION__EXP = eINSTANCE.getInclusiveOrExpression_Exp();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.ExclusiveOrExpressionImpl <em>Exclusive Or Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ExclusiveOrExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getExclusiveOrExpression()
+ * @generated
+ */
+ EClass EXCLUSIVE_OR_EXPRESSION = eINSTANCE.getExclusiveOrExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Exp</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference EXCLUSIVE_OR_EXPRESSION__EXP = eINSTANCE.getExclusiveOrExpression_Exp();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.AndExpressionImpl <em>And Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.AndExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getAndExpression()
+ * @generated
+ */
+ EClass AND_EXPRESSION = eINSTANCE.getAndExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Exp</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference AND_EXPRESSION__EXP = eINSTANCE.getAndExpression_Exp();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.EqualityExpressionImpl <em>Equality Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.EqualityExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getEqualityExpression()
+ * @generated
+ */
+ EClass EQUALITY_EXPRESSION = eINSTANCE.getEqualityExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Exp</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference EQUALITY_EXPRESSION__EXP = eINSTANCE.getEqualityExpression_Exp();
+
+ /**
+ * The meta object literal for the '<em><b>Op</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EQUALITY_EXPRESSION__OP = eINSTANCE.getEqualityExpression_Op();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.ClassificationExpressionImpl <em>Classification Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ClassificationExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getClassificationExpression()
+ * @generated
+ */
+ EClass CLASSIFICATION_EXPRESSION = eINSTANCE.getClassificationExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Exp</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CLASSIFICATION_EXPRESSION__EXP = eINSTANCE.getClassificationExpression_Exp();
+
+ /**
+ * The meta object literal for the '<em><b>Op</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CLASSIFICATION_EXPRESSION__OP = eINSTANCE.getClassificationExpression_Op();
+
+ /**
+ * The meta object literal for the '<em><b>Type Name</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CLASSIFICATION_EXPRESSION__TYPE_NAME = eINSTANCE.getClassificationExpression_TypeName();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.RelationalExpressionImpl <em>Relational Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.RelationalExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getRelationalExpression()
+ * @generated
+ */
+ EClass RELATIONAL_EXPRESSION = eINSTANCE.getRelationalExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Left</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference RELATIONAL_EXPRESSION__LEFT = eINSTANCE.getRelationalExpression_Left();
+
+ /**
+ * The meta object literal for the '<em><b>Op</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute RELATIONAL_EXPRESSION__OP = eINSTANCE.getRelationalExpression_Op();
+
+ /**
+ * The meta object literal for the '<em><b>Right</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference RELATIONAL_EXPRESSION__RIGHT = eINSTANCE.getRelationalExpression_Right();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.ShiftExpressionImpl <em>Shift Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ShiftExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getShiftExpression()
+ * @generated
+ */
+ EClass SHIFT_EXPRESSION = eINSTANCE.getShiftExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Exp</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SHIFT_EXPRESSION__EXP = eINSTANCE.getShiftExpression_Exp();
+
+ /**
+ * The meta object literal for the '<em><b>Op</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SHIFT_EXPRESSION__OP = eINSTANCE.getShiftExpression_Op();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.AdditiveExpressionImpl <em>Additive Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.AdditiveExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getAdditiveExpression()
+ * @generated
+ */
+ EClass ADDITIVE_EXPRESSION = eINSTANCE.getAdditiveExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Exp</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ADDITIVE_EXPRESSION__EXP = eINSTANCE.getAdditiveExpression_Exp();
+
+ /**
+ * The meta object literal for the '<em><b>Op</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ADDITIVE_EXPRESSION__OP = eINSTANCE.getAdditiveExpression_Op();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.MultiplicativeExpressionImpl <em>Multiplicative Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.MultiplicativeExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getMultiplicativeExpression()
+ * @generated
+ */
+ EClass MULTIPLICATIVE_EXPRESSION = eINSTANCE.getMultiplicativeExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Exp</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MULTIPLICATIVE_EXPRESSION__EXP = eINSTANCE.getMultiplicativeExpression_Exp();
+
+ /**
+ * The meta object literal for the '<em><b>Op</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MULTIPLICATIVE_EXPRESSION__OP = eINSTANCE.getMultiplicativeExpression_Op();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.UnaryExpressionImpl <em>Unary Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.UnaryExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getUnaryExpression()
+ * @generated
+ */
+ EClass UNARY_EXPRESSION = eINSTANCE.getUnaryExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Op</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute UNARY_EXPRESSION__OP = eINSTANCE.getUnaryExpression_Op();
+
+ /**
+ * The meta object literal for the '<em><b>Exp</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference UNARY_EXPRESSION__EXP = eINSTANCE.getUnaryExpression_Exp();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.PrimaryExpressionImpl <em>Primary Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.PrimaryExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getPrimaryExpression()
+ * @generated
+ */
+ EClass PRIMARY_EXPRESSION = eINSTANCE.getPrimaryExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Prefix</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PRIMARY_EXPRESSION__PREFIX = eINSTANCE.getPrimaryExpression_Prefix();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.SuffixExpressionImpl <em>Suffix Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.SuffixExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSuffixExpression()
+ * @generated
+ */
+ EClass SUFFIX_EXPRESSION = eINSTANCE.getSuffixExpression();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.OperationCallExpressionImpl <em>Operation Call Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.OperationCallExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getOperationCallExpression()
+ * @generated
+ */
+ EClass OPERATION_CALL_EXPRESSION = eINSTANCE.getOperationCallExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Operation Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute OPERATION_CALL_EXPRESSION__OPERATION_NAME = eINSTANCE.getOperationCallExpression_OperationName();
+
+ /**
+ * The meta object literal for the '<em><b>Tuple</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference OPERATION_CALL_EXPRESSION__TUPLE = eINSTANCE.getOperationCallExpression_Tuple();
+
+ /**
+ * The meta object literal for the '<em><b>Suffix</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference OPERATION_CALL_EXPRESSION__SUFFIX = eINSTANCE.getOperationCallExpression_Suffix();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.PropertyCallExpressionImpl <em>Property Call Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.PropertyCallExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getPropertyCallExpression()
+ * @generated
+ */
+ EClass PROPERTY_CALL_EXPRESSION = eINSTANCE.getPropertyCallExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Property Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PROPERTY_CALL_EXPRESSION__PROPERTY_NAME = eINSTANCE.getPropertyCallExpression_PropertyName();
+
+ /**
+ * The meta object literal for the '<em><b>Index</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PROPERTY_CALL_EXPRESSION__INDEX = eINSTANCE.getPropertyCallExpression_Index();
+
+ /**
+ * The meta object literal for the '<em><b>Suffix</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PROPERTY_CALL_EXPRESSION__SUFFIX = eINSTANCE.getPropertyCallExpression_Suffix();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.LinkOperationExpressionImpl <em>Link Operation Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.LinkOperationExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getLinkOperationExpression()
+ * @generated
+ */
+ EClass LINK_OPERATION_EXPRESSION = eINSTANCE.getLinkOperationExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Kind</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LINK_OPERATION_EXPRESSION__KIND = eINSTANCE.getLinkOperationExpression_Kind();
+
+ /**
+ * The meta object literal for the '<em><b>Tuple</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LINK_OPERATION_EXPRESSION__TUPLE = eINSTANCE.getLinkOperationExpression_Tuple();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.LinkOperationTupleImpl <em>Link Operation Tuple</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.LinkOperationTupleImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getLinkOperationTuple()
+ * @generated
+ */
+ EClass LINK_OPERATION_TUPLE = eINSTANCE.getLinkOperationTuple();
+
+ /**
+ * The meta object literal for the '<em><b>Link Operation Tuple Element</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LINK_OPERATION_TUPLE__LINK_OPERATION_TUPLE_ELEMENT = eINSTANCE.getLinkOperationTuple_LinkOperationTupleElement();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.LinkOperationTupleElementImpl <em>Link Operation Tuple Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.LinkOperationTupleElementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getLinkOperationTupleElement()
+ * @generated
+ */
+ EClass LINK_OPERATION_TUPLE_ELEMENT = eINSTANCE.getLinkOperationTupleElement();
+
+ /**
+ * The meta object literal for the '<em><b>Role</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LINK_OPERATION_TUPLE_ELEMENT__ROLE = eINSTANCE.getLinkOperationTupleElement_Role();
+
+ /**
+ * The meta object literal for the '<em><b>Role Index</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LINK_OPERATION_TUPLE_ELEMENT__ROLE_INDEX = eINSTANCE.getLinkOperationTupleElement_RoleIndex();
+
+ /**
+ * The meta object literal for the '<em><b>Object</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LINK_OPERATION_TUPLE_ELEMENT__OBJECT = eINSTANCE.getLinkOperationTupleElement_Object();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.SequenceOperationExpressionImpl <em>Sequence Operation Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.SequenceOperationExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSequenceOperationExpression()
+ * @generated
+ */
+ EClass SEQUENCE_OPERATION_EXPRESSION = eINSTANCE.getSequenceOperationExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Operation Name</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SEQUENCE_OPERATION_EXPRESSION__OPERATION_NAME = eINSTANCE.getSequenceOperationExpression_OperationName();
+
+ /**
+ * The meta object literal for the '<em><b>Tuple</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SEQUENCE_OPERATION_EXPRESSION__TUPLE = eINSTANCE.getSequenceOperationExpression_Tuple();
+
+ /**
+ * The meta object literal for the '<em><b>Suffix</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SEQUENCE_OPERATION_EXPRESSION__SUFFIX = eINSTANCE.getSequenceOperationExpression_Suffix();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.SequenceReductionExpressionImpl <em>Sequence Reduction Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.SequenceReductionExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSequenceReductionExpression()
+ * @generated
+ */
+ EClass SEQUENCE_REDUCTION_EXPRESSION = eINSTANCE.getSequenceReductionExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Is Ordered</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SEQUENCE_REDUCTION_EXPRESSION__IS_ORDERED = eINSTANCE.getSequenceReductionExpression_IsOrdered();
+
+ /**
+ * The meta object literal for the '<em><b>Behavior</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SEQUENCE_REDUCTION_EXPRESSION__BEHAVIOR = eINSTANCE.getSequenceReductionExpression_Behavior();
+
+ /**
+ * The meta object literal for the '<em><b>Suffix</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SEQUENCE_REDUCTION_EXPRESSION__SUFFIX = eINSTANCE.getSequenceReductionExpression_Suffix();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.SequenceExpansionExpressionImpl <em>Sequence Expansion Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.SequenceExpansionExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSequenceExpansionExpression()
+ * @generated
+ */
+ EClass SEQUENCE_EXPANSION_EXPRESSION = eINSTANCE.getSequenceExpansionExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SEQUENCE_EXPANSION_EXPRESSION__NAME = eINSTANCE.getSequenceExpansionExpression_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Expr</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SEQUENCE_EXPANSION_EXPRESSION__EXPR = eINSTANCE.getSequenceExpansionExpression_Expr();
+
+ /**
+ * The meta object literal for the '<em><b>Suffix</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SEQUENCE_EXPANSION_EXPRESSION__SUFFIX = eINSTANCE.getSequenceExpansionExpression_Suffix();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.SelectOrRejectOperationImpl <em>Select Or Reject Operation</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.SelectOrRejectOperationImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSelectOrRejectOperation()
+ * @generated
+ */
+ EClass SELECT_OR_REJECT_OPERATION = eINSTANCE.getSelectOrRejectOperation();
+
+ /**
+ * The meta object literal for the '<em><b>Op</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SELECT_OR_REJECT_OPERATION__OP = eINSTANCE.getSelectOrRejectOperation_Op();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.CollectOrIterateOperationImpl <em>Collect Or Iterate Operation</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.CollectOrIterateOperationImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getCollectOrIterateOperation()
+ * @generated
+ */
+ EClass COLLECT_OR_ITERATE_OPERATION = eINSTANCE.getCollectOrIterateOperation();
+
+ /**
+ * The meta object literal for the '<em><b>Op</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute COLLECT_OR_ITERATE_OPERATION__OP = eINSTANCE.getCollectOrIterateOperation_Op();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.ForAllOrExistsOrOneOperationImpl <em>For All Or Exists Or One Operation</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ForAllOrExistsOrOneOperationImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getForAllOrExistsOrOneOperation()
+ * @generated
+ */
+ EClass FOR_ALL_OR_EXISTS_OR_ONE_OPERATION = eINSTANCE.getForAllOrExistsOrOneOperation();
+
+ /**
+ * The meta object literal for the '<em><b>Op</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FOR_ALL_OR_EXISTS_OR_ONE_OPERATION__OP = eINSTANCE.getForAllOrExistsOrOneOperation_Op();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.IsUniqueOperationImpl <em>Is Unique Operation</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.IsUniqueOperationImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getIsUniqueOperation()
+ * @generated
+ */
+ EClass IS_UNIQUE_OPERATION = eINSTANCE.getIsUniqueOperation();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.ValueSpecificationImpl <em>Value Specification</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ValueSpecificationImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getValueSpecification()
+ * @generated
+ */
+ EClass VALUE_SPECIFICATION = eINSTANCE.getValueSpecification();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.NonLiteralValueSpecificationImpl <em>Non Literal Value Specification</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.NonLiteralValueSpecificationImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getNonLiteralValueSpecification()
+ * @generated
+ */
+ EClass NON_LITERAL_VALUE_SPECIFICATION = eINSTANCE.getNonLiteralValueSpecification();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.ParenthesizedExpressionImpl <em>Parenthesized Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ParenthesizedExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getParenthesizedExpression()
+ * @generated
+ */
+ EClass PARENTHESIZED_EXPRESSION = eINSTANCE.getParenthesizedExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Exp Or Type Cast</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PARENTHESIZED_EXPRESSION__EXP_OR_TYPE_CAST = eINSTANCE.getParenthesizedExpression_ExpOrTypeCast();
+
+ /**
+ * The meta object literal for the '<em><b>Casted</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PARENTHESIZED_EXPRESSION__CASTED = eINSTANCE.getParenthesizedExpression_Casted();
+
+ /**
+ * The meta object literal for the '<em><b>Suffix</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PARENTHESIZED_EXPRESSION__SUFFIX = eINSTANCE.getParenthesizedExpression_Suffix();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.NullExpressionImpl <em>Null Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.NullExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getNullExpression()
+ * @generated
+ */
+ EClass NULL_EXPRESSION = eINSTANCE.getNullExpression();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.ThisExpressionImpl <em>This Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ThisExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getThisExpression()
+ * @generated
+ */
+ EClass THIS_EXPRESSION = eINSTANCE.getThisExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Suffix</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference THIS_EXPRESSION__SUFFIX = eINSTANCE.getThisExpression_Suffix();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.SuperInvocationExpressionImpl <em>Super Invocation Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.SuperInvocationExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSuperInvocationExpression()
+ * @generated
+ */
+ EClass SUPER_INVOCATION_EXPRESSION = eINSTANCE.getSuperInvocationExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Tuple</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SUPER_INVOCATION_EXPRESSION__TUPLE = eINSTANCE.getSuperInvocationExpression_Tuple();
+
+ /**
+ * The meta object literal for the '<em><b>Operation Name</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SUPER_INVOCATION_EXPRESSION__OPERATION_NAME = eINSTANCE.getSuperInvocationExpression_OperationName();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.InstanceCreationExpressionImpl <em>Instance Creation Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.InstanceCreationExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getInstanceCreationExpression()
+ * @generated
+ */
+ EClass INSTANCE_CREATION_EXPRESSION = eINSTANCE.getInstanceCreationExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Constructor</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INSTANCE_CREATION_EXPRESSION__CONSTRUCTOR = eINSTANCE.getInstanceCreationExpression_Constructor();
+
+ /**
+ * The meta object literal for the '<em><b>Tuple</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INSTANCE_CREATION_EXPRESSION__TUPLE = eINSTANCE.getInstanceCreationExpression_Tuple();
+
+ /**
+ * The meta object literal for the '<em><b>Suffix</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INSTANCE_CREATION_EXPRESSION__SUFFIX = eINSTANCE.getInstanceCreationExpression_Suffix();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.InstanceCreationTupleImpl <em>Instance Creation Tuple</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.InstanceCreationTupleImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getInstanceCreationTuple()
+ * @generated
+ */
+ EClass INSTANCE_CREATION_TUPLE = eINSTANCE.getInstanceCreationTuple();
+
+ /**
+ * The meta object literal for the '<em><b>Instance Creation Tuple Element</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INSTANCE_CREATION_TUPLE__INSTANCE_CREATION_TUPLE_ELEMENT = eINSTANCE.getInstanceCreationTuple_InstanceCreationTupleElement();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.InstanceCreationTupleElementImpl <em>Instance Creation Tuple Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.InstanceCreationTupleElementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getInstanceCreationTupleElement()
+ * @generated
+ */
+ EClass INSTANCE_CREATION_TUPLE_ELEMENT = eINSTANCE.getInstanceCreationTupleElement();
+
+ /**
+ * The meta object literal for the '<em><b>Role</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute INSTANCE_CREATION_TUPLE_ELEMENT__ROLE = eINSTANCE.getInstanceCreationTupleElement_Role();
+
+ /**
+ * The meta object literal for the '<em><b>Object</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INSTANCE_CREATION_TUPLE_ELEMENT__OBJECT = eINSTANCE.getInstanceCreationTupleElement_Object();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.SequenceConstructionOrAccessCompletionImpl <em>Sequence Construction Or Access Completion</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.SequenceConstructionOrAccessCompletionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSequenceConstructionOrAccessCompletion()
+ * @generated
+ */
+ EClass SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION = eINSTANCE.getSequenceConstructionOrAccessCompletion();
+
+ /**
+ * The meta object literal for the '<em><b>Multiplicity Indicator</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__MULTIPLICITY_INDICATOR = eINSTANCE.getSequenceConstructionOrAccessCompletion_MultiplicityIndicator();
+
+ /**
+ * The meta object literal for the '<em><b>Access Completion</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__ACCESS_COMPLETION = eINSTANCE.getSequenceConstructionOrAccessCompletion_AccessCompletion();
+
+ /**
+ * The meta object literal for the '<em><b>Sequence Completion</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__SEQUENCE_COMPLETION = eINSTANCE.getSequenceConstructionOrAccessCompletion_SequenceCompletion();
+
+ /**
+ * The meta object literal for the '<em><b>Expression</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__EXPRESSION = eINSTANCE.getSequenceConstructionOrAccessCompletion_Expression();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.AccessCompletionImpl <em>Access Completion</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.AccessCompletionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getAccessCompletion()
+ * @generated
+ */
+ EClass ACCESS_COMPLETION = eINSTANCE.getAccessCompletion();
+
+ /**
+ * The meta object literal for the '<em><b>Access Index</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ACCESS_COMPLETION__ACCESS_INDEX = eINSTANCE.getAccessCompletion_AccessIndex();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.PartialSequenceConstructionCompletionImpl <em>Partial Sequence Construction Completion</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.PartialSequenceConstructionCompletionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getPartialSequenceConstructionCompletion()
+ * @generated
+ */
+ EClass PARTIAL_SEQUENCE_CONSTRUCTION_COMPLETION = eINSTANCE.getPartialSequenceConstructionCompletion();
+
+ /**
+ * The meta object literal for the '<em><b>Expression</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PARTIAL_SEQUENCE_CONSTRUCTION_COMPLETION__EXPRESSION = eINSTANCE.getPartialSequenceConstructionCompletion_Expression();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.SequenceConstructionExpressionImpl <em>Sequence Construction Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.SequenceConstructionExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSequenceConstructionExpression()
+ * @generated
+ */
+ EClass SEQUENCE_CONSTRUCTION_EXPRESSION = eINSTANCE.getSequenceConstructionExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Sequence Element</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SEQUENCE_CONSTRUCTION_EXPRESSION__SEQUENCE_ELEMENT = eINSTANCE.getSequenceConstructionExpression_SequenceElement();
+
+ /**
+ * The meta object literal for the '<em><b>Range Upper</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SEQUENCE_CONSTRUCTION_EXPRESSION__RANGE_UPPER = eINSTANCE.getSequenceConstructionExpression_RangeUpper();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.SequenceElementImpl <em>Sequence Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.SequenceElementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSequenceElement()
+ * @generated
+ */
+ EClass SEQUENCE_ELEMENT = eINSTANCE.getSequenceElement();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.ClassExtentExpressionImpl <em>Class Extent Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ClassExtentExpressionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getClassExtentExpression()
+ * @generated
+ */
+ EClass CLASS_EXTENT_EXPRESSION = eINSTANCE.getClassExtentExpression();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.BlockImpl <em>Block</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.BlockImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getBlock()
+ * @generated
+ */
+ EClass BLOCK = eINSTANCE.getBlock();
+
+ /**
+ * The meta object literal for the '<em><b>Sequence</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference BLOCK__SEQUENCE = eINSTANCE.getBlock_Sequence();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.StatementSequenceImpl <em>Statement Sequence</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.StatementSequenceImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getStatementSequence()
+ * @generated
+ */
+ EClass STATEMENT_SEQUENCE = eINSTANCE.getStatementSequence();
+
+ /**
+ * The meta object literal for the '<em><b>Statements</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference STATEMENT_SEQUENCE__STATEMENTS = eINSTANCE.getStatementSequence_Statements();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.DocumentedStatementImpl <em>Documented Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.DocumentedStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getDocumentedStatement()
+ * @generated
+ */
+ EClass DOCUMENTED_STATEMENT = eINSTANCE.getDocumentedStatement();
+
+ /**
+ * The meta object literal for the '<em><b>Comment</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DOCUMENTED_STATEMENT__COMMENT = eINSTANCE.getDocumentedStatement_Comment();
+
+ /**
+ * The meta object literal for the '<em><b>Statement</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DOCUMENTED_STATEMENT__STATEMENT = eINSTANCE.getDocumentedStatement_Statement();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.InlineStatementImpl <em>Inline Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.InlineStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getInlineStatement()
+ * @generated
+ */
+ EClass INLINE_STATEMENT = eINSTANCE.getInlineStatement();
+
+ /**
+ * The meta object literal for the '<em><b>Langage Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute INLINE_STATEMENT__LANGAGE_NAME = eINSTANCE.getInlineStatement_LangageName();
+
+ /**
+ * The meta object literal for the '<em><b>Body</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute INLINE_STATEMENT__BODY = eINSTANCE.getInlineStatement_Body();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.AnnotatedStatementImpl <em>Annotated Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.AnnotatedStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getAnnotatedStatement()
+ * @generated
+ */
+ EClass ANNOTATED_STATEMENT = eINSTANCE.getAnnotatedStatement();
+
+ /**
+ * The meta object literal for the '<em><b>Annotation</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ANNOTATED_STATEMENT__ANNOTATION = eINSTANCE.getAnnotatedStatement_Annotation();
+
+ /**
+ * The meta object literal for the '<em><b>Statement</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ANNOTATED_STATEMENT__STATEMENT = eINSTANCE.getAnnotatedStatement_Statement();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.StatementImpl <em>Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.StatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getStatement()
+ * @generated
+ */
+ EClass STATEMENT = eINSTANCE.getStatement();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.AnnotationImpl <em>Annotation</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.AnnotationImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getAnnotation()
+ * @generated
+ */
+ EClass ANNOTATION = eINSTANCE.getAnnotation();
+
+ /**
+ * The meta object literal for the '<em><b>Kind</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ANNOTATION__KIND = eINSTANCE.getAnnotation_Kind();
+
+ /**
+ * The meta object literal for the '<em><b>Args</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ANNOTATION__ARGS = eINSTANCE.getAnnotation_Args();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.BlockStatementImpl <em>Block Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.BlockStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getBlockStatement()
+ * @generated
+ */
+ EClass BLOCK_STATEMENT = eINSTANCE.getBlockStatement();
+
+ /**
+ * The meta object literal for the '<em><b>Block</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference BLOCK_STATEMENT__BLOCK = eINSTANCE.getBlockStatement_Block();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.EmptyStatementImpl <em>Empty Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.EmptyStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getEmptyStatement()
+ * @generated
+ */
+ EClass EMPTY_STATEMENT = eINSTANCE.getEmptyStatement();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.LocalNameDeclarationStatementImpl <em>Local Name Declaration Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.LocalNameDeclarationStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getLocalNameDeclarationStatement()
+ * @generated
+ */
+ EClass LOCAL_NAME_DECLARATION_STATEMENT = eINSTANCE.getLocalNameDeclarationStatement();
+
+ /**
+ * The meta object literal for the '<em><b>Var Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LOCAL_NAME_DECLARATION_STATEMENT__VAR_NAME = eINSTANCE.getLocalNameDeclarationStatement_VarName();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LOCAL_NAME_DECLARATION_STATEMENT__TYPE = eINSTANCE.getLocalNameDeclarationStatement_Type();
+
+ /**
+ * The meta object literal for the '<em><b>Multiplicity Indicator</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LOCAL_NAME_DECLARATION_STATEMENT__MULTIPLICITY_INDICATOR = eINSTANCE.getLocalNameDeclarationStatement_MultiplicityIndicator();
+
+ /**
+ * The meta object literal for the '<em><b>Init</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LOCAL_NAME_DECLARATION_STATEMENT__INIT = eINSTANCE.getLocalNameDeclarationStatement_Init();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.IfStatementImpl <em>If Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.IfStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getIfStatement()
+ * @generated
+ */
+ EClass IF_STATEMENT = eINSTANCE.getIfStatement();
+
+ /**
+ * The meta object literal for the '<em><b>Sequential Clausses</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference IF_STATEMENT__SEQUENTIAL_CLAUSSES = eINSTANCE.getIfStatement_SequentialClausses();
+
+ /**
+ * The meta object literal for the '<em><b>Final Clause</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference IF_STATEMENT__FINAL_CLAUSE = eINSTANCE.getIfStatement_FinalClause();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.SequentialClausesImpl <em>Sequential Clauses</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.SequentialClausesImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSequentialClauses()
+ * @generated
+ */
+ EClass SEQUENTIAL_CLAUSES = eINSTANCE.getSequentialClauses();
+
+ /**
+ * The meta object literal for the '<em><b>Conccurent Clauses</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SEQUENTIAL_CLAUSES__CONCCURENT_CLAUSES = eINSTANCE.getSequentialClauses_ConccurentClauses();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.ConcurrentClausesImpl <em>Concurrent Clauses</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ConcurrentClausesImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getConcurrentClauses()
+ * @generated
+ */
+ EClass CONCURRENT_CLAUSES = eINSTANCE.getConcurrentClauses();
+
+ /**
+ * The meta object literal for the '<em><b>Non Final Clause</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONCURRENT_CLAUSES__NON_FINAL_CLAUSE = eINSTANCE.getConcurrentClauses_NonFinalClause();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.NonFinalClauseImpl <em>Non Final Clause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.NonFinalClauseImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getNonFinalClause()
+ * @generated
+ */
+ EClass NON_FINAL_CLAUSE = eINSTANCE.getNonFinalClause();
+
+ /**
+ * The meta object literal for the '<em><b>Condition</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference NON_FINAL_CLAUSE__CONDITION = eINSTANCE.getNonFinalClause_Condition();
+
+ /**
+ * The meta object literal for the '<em><b>Block</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference NON_FINAL_CLAUSE__BLOCK = eINSTANCE.getNonFinalClause_Block();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.FinalClauseImpl <em>Final Clause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.FinalClauseImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getFinalClause()
+ * @generated
+ */
+ EClass FINAL_CLAUSE = eINSTANCE.getFinalClause();
+
+ /**
+ * The meta object literal for the '<em><b>Block</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FINAL_CLAUSE__BLOCK = eINSTANCE.getFinalClause_Block();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.SwitchStatementImpl <em>Switch Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.SwitchStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSwitchStatement()
+ * @generated
+ */
+ EClass SWITCH_STATEMENT = eINSTANCE.getSwitchStatement();
+
+ /**
+ * The meta object literal for the '<em><b>Expression</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SWITCH_STATEMENT__EXPRESSION = eINSTANCE.getSwitchStatement_Expression();
+
+ /**
+ * The meta object literal for the '<em><b>Switch Clause</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SWITCH_STATEMENT__SWITCH_CLAUSE = eINSTANCE.getSwitchStatement_SwitchClause();
+
+ /**
+ * The meta object literal for the '<em><b>Default Clause</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SWITCH_STATEMENT__DEFAULT_CLAUSE = eINSTANCE.getSwitchStatement_DefaultClause();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.SwitchClauseImpl <em>Switch Clause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.SwitchClauseImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSwitchClause()
+ * @generated
+ */
+ EClass SWITCH_CLAUSE = eINSTANCE.getSwitchClause();
+
+ /**
+ * The meta object literal for the '<em><b>Switch Case</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SWITCH_CLAUSE__SWITCH_CASE = eINSTANCE.getSwitchClause_SwitchCase();
+
+ /**
+ * The meta object literal for the '<em><b>Statement Sequence</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SWITCH_CLAUSE__STATEMENT_SEQUENCE = eINSTANCE.getSwitchClause_StatementSequence();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.SwitchCaseImpl <em>Switch Case</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.SwitchCaseImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSwitchCase()
+ * @generated
+ */
+ EClass SWITCH_CASE = eINSTANCE.getSwitchCase();
+
+ /**
+ * The meta object literal for the '<em><b>Expression</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SWITCH_CASE__EXPRESSION = eINSTANCE.getSwitchCase_Expression();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.SwitchDefaultClauseImpl <em>Switch Default Clause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.SwitchDefaultClauseImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSwitchDefaultClause()
+ * @generated
+ */
+ EClass SWITCH_DEFAULT_CLAUSE = eINSTANCE.getSwitchDefaultClause();
+
+ /**
+ * The meta object literal for the '<em><b>Statement Sequence</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SWITCH_DEFAULT_CLAUSE__STATEMENT_SEQUENCE = eINSTANCE.getSwitchDefaultClause_StatementSequence();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.NonEmptyStatementSequenceImpl <em>Non Empty Statement Sequence</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.NonEmptyStatementSequenceImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getNonEmptyStatementSequence()
+ * @generated
+ */
+ EClass NON_EMPTY_STATEMENT_SEQUENCE = eINSTANCE.getNonEmptyStatementSequence();
+
+ /**
+ * The meta object literal for the '<em><b>Statement</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference NON_EMPTY_STATEMENT_SEQUENCE__STATEMENT = eINSTANCE.getNonEmptyStatementSequence_Statement();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.WhileStatementImpl <em>While Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.WhileStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getWhileStatement()
+ * @generated
+ */
+ EClass WHILE_STATEMENT = eINSTANCE.getWhileStatement();
+
+ /**
+ * The meta object literal for the '<em><b>Condition</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference WHILE_STATEMENT__CONDITION = eINSTANCE.getWhileStatement_Condition();
+
+ /**
+ * The meta object literal for the '<em><b>Block</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference WHILE_STATEMENT__BLOCK = eINSTANCE.getWhileStatement_Block();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.DoStatementImpl <em>Do Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.DoStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getDoStatement()
+ * @generated
+ */
+ EClass DO_STATEMENT = eINSTANCE.getDoStatement();
+
+ /**
+ * The meta object literal for the '<em><b>Block</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DO_STATEMENT__BLOCK = eINSTANCE.getDoStatement_Block();
+
+ /**
+ * The meta object literal for the '<em><b>Condition</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DO_STATEMENT__CONDITION = eINSTANCE.getDoStatement_Condition();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.ForStatementImpl <em>For Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ForStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getForStatement()
+ * @generated
+ */
+ EClass FOR_STATEMENT = eINSTANCE.getForStatement();
+
+ /**
+ * The meta object literal for the '<em><b>Control</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FOR_STATEMENT__CONTROL = eINSTANCE.getForStatement_Control();
+
+ /**
+ * The meta object literal for the '<em><b>Block</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FOR_STATEMENT__BLOCK = eINSTANCE.getForStatement_Block();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.ForControlImpl <em>For Control</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ForControlImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getForControl()
+ * @generated
+ */
+ EClass FOR_CONTROL = eINSTANCE.getForControl();
+
+ /**
+ * The meta object literal for the '<em><b>Loop Variable Definition</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FOR_CONTROL__LOOP_VARIABLE_DEFINITION = eINSTANCE.getForControl_LoopVariableDefinition();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.LoopVariableDefinitionImpl <em>Loop Variable Definition</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.LoopVariableDefinitionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getLoopVariableDefinition()
+ * @generated
+ */
+ EClass LOOP_VARIABLE_DEFINITION = eINSTANCE.getLoopVariableDefinition();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LOOP_VARIABLE_DEFINITION__NAME = eINSTANCE.getLoopVariableDefinition_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Expression1</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LOOP_VARIABLE_DEFINITION__EXPRESSION1 = eINSTANCE.getLoopVariableDefinition_Expression1();
+
+ /**
+ * The meta object literal for the '<em><b>Expression2</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LOOP_VARIABLE_DEFINITION__EXPRESSION2 = eINSTANCE.getLoopVariableDefinition_Expression2();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LOOP_VARIABLE_DEFINITION__TYPE = eINSTANCE.getLoopVariableDefinition_Type();
+
+ /**
+ * The meta object literal for the '<em><b>Expression</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LOOP_VARIABLE_DEFINITION__EXPRESSION = eINSTANCE.getLoopVariableDefinition_Expression();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.BreakStatementImpl <em>Break Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.BreakStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getBreakStatement()
+ * @generated
+ */
+ EClass BREAK_STATEMENT = eINSTANCE.getBreakStatement();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.ReturnStatementImpl <em>Return Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ReturnStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getReturnStatement()
+ * @generated
+ */
+ EClass RETURN_STATEMENT = eINSTANCE.getReturnStatement();
+
+ /**
+ * The meta object literal for the '<em><b>Expression</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference RETURN_STATEMENT__EXPRESSION = eINSTANCE.getReturnStatement_Expression();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.AcceptStatementImpl <em>Accept Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.AcceptStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getAcceptStatement()
+ * @generated
+ */
+ EClass ACCEPT_STATEMENT = eINSTANCE.getAcceptStatement();
+
+ /**
+ * The meta object literal for the '<em><b>Clause</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ACCEPT_STATEMENT__CLAUSE = eINSTANCE.getAcceptStatement_Clause();
+
+ /**
+ * The meta object literal for the '<em><b>Simple Accept</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ACCEPT_STATEMENT__SIMPLE_ACCEPT = eINSTANCE.getAcceptStatement_SimpleAccept();
+
+ /**
+ * The meta object literal for the '<em><b>Compound Accept</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ACCEPT_STATEMENT__COMPOUND_ACCEPT = eINSTANCE.getAcceptStatement_CompoundAccept();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.SimpleAcceptStatementCompletionImpl <em>Simple Accept Statement Completion</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.SimpleAcceptStatementCompletionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSimpleAcceptStatementCompletion()
+ * @generated
+ */
+ EClass SIMPLE_ACCEPT_STATEMENT_COMPLETION = eINSTANCE.getSimpleAcceptStatementCompletion();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.CompoundAcceptStatementCompletionImpl <em>Compound Accept Statement Completion</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.CompoundAcceptStatementCompletionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getCompoundAcceptStatementCompletion()
+ * @generated
+ */
+ EClass COMPOUND_ACCEPT_STATEMENT_COMPLETION = eINSTANCE.getCompoundAcceptStatementCompletion();
+
+ /**
+ * The meta object literal for the '<em><b>Block</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference COMPOUND_ACCEPT_STATEMENT_COMPLETION__BLOCK = eINSTANCE.getCompoundAcceptStatementCompletion_Block();
+
+ /**
+ * The meta object literal for the '<em><b>Accept Block</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference COMPOUND_ACCEPT_STATEMENT_COMPLETION__ACCEPT_BLOCK = eINSTANCE.getCompoundAcceptStatementCompletion_AcceptBlock();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.AcceptBlockImpl <em>Accept Block</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.AcceptBlockImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getAcceptBlock()
+ * @generated
+ */
+ EClass ACCEPT_BLOCK = eINSTANCE.getAcceptBlock();
+
+ /**
+ * The meta object literal for the '<em><b>Clause</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ACCEPT_BLOCK__CLAUSE = eINSTANCE.getAcceptBlock_Clause();
+
+ /**
+ * The meta object literal for the '<em><b>Block</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ACCEPT_BLOCK__BLOCK = eINSTANCE.getAcceptBlock_Block();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.AcceptClauseImpl <em>Accept Clause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.AcceptClauseImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getAcceptClause()
+ * @generated
+ */
+ EClass ACCEPT_CLAUSE = eINSTANCE.getAcceptClause();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ACCEPT_CLAUSE__NAME = eINSTANCE.getAcceptClause_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Qualified Name List</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ACCEPT_CLAUSE__QUALIFIED_NAME_LIST = eINSTANCE.getAcceptClause_QualifiedNameList();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.ClassifyStatementImpl <em>Classify Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ClassifyStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getClassifyStatement()
+ * @generated
+ */
+ EClass CLASSIFY_STATEMENT = eINSTANCE.getClassifyStatement();
+
+ /**
+ * The meta object literal for the '<em><b>Expression</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CLASSIFY_STATEMENT__EXPRESSION = eINSTANCE.getClassifyStatement_Expression();
+
+ /**
+ * The meta object literal for the '<em><b>Clause</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CLASSIFY_STATEMENT__CLAUSE = eINSTANCE.getClassifyStatement_Clause();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.ClassificationClauseImpl <em>Classification Clause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ClassificationClauseImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getClassificationClause()
+ * @generated
+ */
+ EClass CLASSIFICATION_CLAUSE = eINSTANCE.getClassificationClause();
+
+ /**
+ * The meta object literal for the '<em><b>Classify From Clause</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CLASSIFICATION_CLAUSE__CLASSIFY_FROM_CLAUSE = eINSTANCE.getClassificationClause_ClassifyFromClause();
+
+ /**
+ * The meta object literal for the '<em><b>Classify To Clause</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CLASSIFICATION_CLAUSE__CLASSIFY_TO_CLAUSE = eINSTANCE.getClassificationClause_ClassifyToClause();
+
+ /**
+ * The meta object literal for the '<em><b>Reclassy All Clause</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CLASSIFICATION_CLAUSE__RECLASSY_ALL_CLAUSE = eINSTANCE.getClassificationClause_ReclassyAllClause();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.ClassificationFromClauseImpl <em>Classification From Clause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ClassificationFromClauseImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getClassificationFromClause()
+ * @generated
+ */
+ EClass CLASSIFICATION_FROM_CLAUSE = eINSTANCE.getClassificationFromClause();
+
+ /**
+ * The meta object literal for the '<em><b>Qualified Name List</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CLASSIFICATION_FROM_CLAUSE__QUALIFIED_NAME_LIST = eINSTANCE.getClassificationFromClause_QualifiedNameList();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.ClassificationToClauseImpl <em>Classification To Clause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ClassificationToClauseImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getClassificationToClause()
+ * @generated
+ */
+ EClass CLASSIFICATION_TO_CLAUSE = eINSTANCE.getClassificationToClause();
+
+ /**
+ * The meta object literal for the '<em><b>Qualified Name List</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CLASSIFICATION_TO_CLAUSE__QUALIFIED_NAME_LIST = eINSTANCE.getClassificationToClause_QualifiedNameList();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.ReclassifyAllClauseImpl <em>Reclassify All Clause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ReclassifyAllClauseImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getReclassifyAllClause()
+ * @generated
+ */
+ EClass RECLASSIFY_ALL_CLAUSE = eINSTANCE.getReclassifyAllClause();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.QualifiedNameListImpl <em>Qualified Name List</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.QualifiedNameListImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getQualifiedNameList()
+ * @generated
+ */
+ EClass QUALIFIED_NAME_LIST = eINSTANCE.getQualifiedNameList();
+
+ /**
+ * The meta object literal for the '<em><b>Qualified Name</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference QUALIFIED_NAME_LIST__QUALIFIED_NAME = eINSTANCE.getQualifiedNameList_QualifiedName();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.InvocationOrAssignementOrDeclarationStatementImpl <em>Invocation Or Assignement Or Declaration Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.InvocationOrAssignementOrDeclarationStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getInvocationOrAssignementOrDeclarationStatement()
+ * @generated
+ */
+ EClass INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT = eINSTANCE.getInvocationOrAssignementOrDeclarationStatement();
+
+ /**
+ * The meta object literal for the '<em><b>Type Part OR assigned Part OR invocation Part</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__TYPE_PART_OR_ASSIGNED_PART_OR_INVOCATION_PART = eINSTANCE.getInvocationOrAssignementOrDeclarationStatement_TypePart_OR_assignedPart_OR_invocationPart();
+
+ /**
+ * The meta object literal for the '<em><b>Variable Declaration Completion</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__VARIABLE_DECLARATION_COMPLETION = eINSTANCE.getInvocationOrAssignementOrDeclarationStatement_VariableDeclarationCompletion();
+
+ /**
+ * The meta object literal for the '<em><b>Assignment Completion</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__ASSIGNMENT_COMPLETION = eINSTANCE.getInvocationOrAssignementOrDeclarationStatement_AssignmentCompletion();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.SuperInvocationStatementImpl <em>Super Invocation Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.SuperInvocationStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSuperInvocationStatement()
+ * @generated
+ */
+ EClass SUPER_INVOCATION_STATEMENT = eINSTANCE.getSuperInvocationStatement();
+
+ /**
+ * The meta object literal for the '<em><b>super</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SUPER_INVOCATION_STATEMENT__SUPER = eINSTANCE.getSuperInvocationStatement__super();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.ThisInvocationStatementImpl <em>This Invocation Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.ThisInvocationStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getThisInvocationStatement()
+ * @generated
+ */
+ EClass THIS_INVOCATION_STATEMENT = eINSTANCE.getThisInvocationStatement();
+
+ /**
+ * The meta object literal for the '<em><b>this</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference THIS_INVOCATION_STATEMENT__THIS = eINSTANCE.getThisInvocationStatement__this();
+
+ /**
+ * The meta object literal for the '<em><b>Assignment Completion</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference THIS_INVOCATION_STATEMENT__ASSIGNMENT_COMPLETION = eINSTANCE.getThisInvocationStatement_AssignmentCompletion();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.InstanceCreationInvocationStatementImpl <em>Instance Creation Invocation Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.InstanceCreationInvocationStatementImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getInstanceCreationInvocationStatement()
+ * @generated
+ */
+ EClass INSTANCE_CREATION_INVOCATION_STATEMENT = eINSTANCE.getInstanceCreationInvocationStatement();
+
+ /**
+ * The meta object literal for the '<em><b>new</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INSTANCE_CREATION_INVOCATION_STATEMENT__NEW = eINSTANCE.getInstanceCreationInvocationStatement__new();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.VariableDeclarationCompletionImpl <em>Variable Declaration Completion</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.VariableDeclarationCompletionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getVariableDeclarationCompletion()
+ * @generated
+ */
+ EClass VARIABLE_DECLARATION_COMPLETION = eINSTANCE.getVariableDeclarationCompletion();
+
+ /**
+ * The meta object literal for the '<em><b>Multiplicity Indicator</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute VARIABLE_DECLARATION_COMPLETION__MULTIPLICITY_INDICATOR = eINSTANCE.getVariableDeclarationCompletion_MultiplicityIndicator();
+
+ /**
+ * The meta object literal for the '<em><b>Variable Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute VARIABLE_DECLARATION_COMPLETION__VARIABLE_NAME = eINSTANCE.getVariableDeclarationCompletion_VariableName();
+
+ /**
+ * The meta object literal for the '<em><b>Init Value</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference VARIABLE_DECLARATION_COMPLETION__INIT_VALUE = eINSTANCE.getVariableDeclarationCompletion_InitValue();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.impl.AssignmentCompletionImpl <em>Assignment Completion</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.impl.AssignmentCompletionImpl
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getAssignmentCompletion()
+ * @generated
+ */
+ EClass ASSIGNMENT_COMPLETION = eINSTANCE.getAssignmentCompletion();
+
+ /**
+ * The meta object literal for the '<em><b>Op</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ASSIGNMENT_COMPLETION__OP = eINSTANCE.getAssignmentCompletion_Op();
+
+ /**
+ * The meta object literal for the '<em><b>Right Hand Side</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ASSIGNMENT_COMPLETION__RIGHT_HAND_SIDE = eINSTANCE.getAssignmentCompletion_RightHandSide();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.BooleanValue <em>Boolean Value</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.BooleanValue
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getBooleanValue()
+ * @generated
+ */
+ EEnum BOOLEAN_VALUE = eINSTANCE.getBooleanValue();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.LinkOperationKind <em>Link Operation Kind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.LinkOperationKind
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getLinkOperationKind()
+ * @generated
+ */
+ EEnum LINK_OPERATION_KIND = eINSTANCE.getLinkOperationKind();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.SelectOrRejectOperator <em>Select Or Reject Operator</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.SelectOrRejectOperator
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getSelectOrRejectOperator()
+ * @generated
+ */
+ EEnum SELECT_OR_REJECT_OPERATOR = eINSTANCE.getSelectOrRejectOperator();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.CollectOrIterateOperator <em>Collect Or Iterate Operator</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.CollectOrIterateOperator
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getCollectOrIterateOperator()
+ * @generated
+ */
+ EEnum COLLECT_OR_ITERATE_OPERATOR = eINSTANCE.getCollectOrIterateOperator();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.ForAllOrExistsOrOneOperator <em>For All Or Exists Or One Operator</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.ForAllOrExistsOrOneOperator
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getForAllOrExistsOrOneOperator()
+ * @generated
+ */
+ EEnum FOR_ALL_OR_EXISTS_OR_ONE_OPERATOR = eINSTANCE.getForAllOrExistsOrOneOperator();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.AnnotationKind <em>Annotation Kind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.AnnotationKind
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getAnnotationKind()
+ * @generated
+ */
+ EEnum ANNOTATION_KIND = eINSTANCE.getAnnotationKind();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.alf.alf.AssignmentOperator <em>Assignment Operator</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.AssignmentOperator
+ * @see org.eclipse.papyrus.alf.alf.impl.AlfPackageImpl#getAssignmentOperator()
+ * @generated
+ */
+ EEnum ASSIGNMENT_OPERATOR = eINSTANCE.getAssignmentOperator();
+
+ }
+
+} //AlfPackage
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AndExpression.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AndExpression.java
new file mode 100644
index 00000000000..90b39548a61
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AndExpression.java
@@ -0,0 +1,47 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>And Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.AndExpression#getExp <em>Exp</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getAndExpression()
+ * @model
+ * @generated
+ */
+public interface AndExpression extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Exp</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.alf.alf.EqualityExpression}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Exp</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Exp</em>' containment reference list.
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getAndExpression_Exp()
+ * @model containment="true"
+ * @generated
+ */
+ EList<EqualityExpression> getExp();
+
+} // AndExpression
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AnnotatedStatement.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AnnotatedStatement.java
new file mode 100644
index 00000000000..b880cccda75
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AnnotatedStatement.java
@@ -0,0 +1,81 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Annotated Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.AnnotatedStatement#getAnnotation <em>Annotation</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.AnnotatedStatement#getStatement <em>Statement</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getAnnotatedStatement()
+ * @model
+ * @generated
+ */
+public interface AnnotatedStatement extends Statement
+{
+ /**
+ * Returns the value of the '<em><b>Annotation</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Annotation</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Annotation</em>' containment reference.
+ * @see #setAnnotation(Annotation)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getAnnotatedStatement_Annotation()
+ * @model containment="true"
+ * @generated
+ */
+ Annotation getAnnotation();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.AnnotatedStatement#getAnnotation <em>Annotation</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Annotation</em>' containment reference.
+ * @see #getAnnotation()
+ * @generated
+ */
+ void setAnnotation(Annotation value);
+
+ /**
+ * Returns the value of the '<em><b>Statement</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Statement</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Statement</em>' containment reference.
+ * @see #setStatement(Statement)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getAnnotatedStatement_Statement()
+ * @model containment="true"
+ * @generated
+ */
+ Statement getStatement();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.AnnotatedStatement#getStatement <em>Statement</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Statement</em>' containment reference.
+ * @see #getStatement()
+ * @generated
+ */
+ void setStatement(Statement value);
+
+} // AnnotatedStatement
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/Annotation.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/Annotation.java
new file mode 100644
index 00000000000..25ee8a4ca0d
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/Annotation.java
@@ -0,0 +1,77 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Annotation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.Annotation#getKind <em>Kind</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.Annotation#getArgs <em>Args</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getAnnotation()
+ * @model
+ * @generated
+ */
+public interface Annotation extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Kind</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.papyrus.alf.alf.AnnotationKind}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Kind</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Kind</em>' attribute.
+ * @see org.eclipse.papyrus.alf.alf.AnnotationKind
+ * @see #setKind(AnnotationKind)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getAnnotation_Kind()
+ * @model
+ * @generated
+ */
+ AnnotationKind getKind();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.Annotation#getKind <em>Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Kind</em>' attribute.
+ * @see org.eclipse.papyrus.alf.alf.AnnotationKind
+ * @see #getKind()
+ * @generated
+ */
+ void setKind(AnnotationKind value);
+
+ /**
+ * Returns the value of the '<em><b>Args</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Args</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Args</em>' attribute list.
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getAnnotation_Args()
+ * @model unique="false"
+ * @generated
+ */
+ EList<String> getArgs();
+
+} // Annotation
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AnnotationKind.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AnnotationKind.java
new file mode 100644
index 00000000000..07c91eeacee
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AnnotationKind.java
@@ -0,0 +1,281 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Annotation Kind</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getAnnotationKind()
+ * @model
+ * @generated
+ */
+public enum AnnotationKind implements Enumerator
+{
+ /**
+ * The '<em><b>ISOLATED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ISOLATED_VALUE
+ * @generated
+ * @ordered
+ */
+ ISOLATED(0, "ISOLATED", "isolated"),
+
+ /**
+ * The '<em><b>DETERMINED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DETERMINED_VALUE
+ * @generated
+ * @ordered
+ */
+ DETERMINED(1, "DETERMINED", "determined"),
+
+ /**
+ * The '<em><b>ASSURED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ASSURED_VALUE
+ * @generated
+ * @ordered
+ */
+ ASSURED(2, "ASSURED", "assured"),
+
+ /**
+ * The '<em><b>PARALLEL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PARALLEL_VALUE
+ * @generated
+ * @ordered
+ */
+ PARALLEL(3, "PARALLEL", "parallel");
+
+ /**
+ * The '<em><b>ISOLATED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ISOLATED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ISOLATED
+ * @model literal="isolated"
+ * @generated
+ * @ordered
+ */
+ public static final int ISOLATED_VALUE = 0;
+
+ /**
+ * The '<em><b>DETERMINED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DETERMINED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DETERMINED
+ * @model literal="determined"
+ * @generated
+ * @ordered
+ */
+ public static final int DETERMINED_VALUE = 1;
+
+ /**
+ * The '<em><b>ASSURED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ASSURED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ASSURED
+ * @model literal="assured"
+ * @generated
+ * @ordered
+ */
+ public static final int ASSURED_VALUE = 2;
+
+ /**
+ * The '<em><b>PARALLEL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>PARALLEL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PARALLEL
+ * @model literal="parallel"
+ * @generated
+ * @ordered
+ */
+ public static final int PARALLEL_VALUE = 3;
+
+ /**
+ * An array of all the '<em><b>Annotation Kind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final AnnotationKind[] VALUES_ARRAY =
+ new AnnotationKind[]
+ {
+ ISOLATED,
+ DETERMINED,
+ ASSURED,
+ PARALLEL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Annotation Kind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<AnnotationKind> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Annotation Kind</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static AnnotationKind get(String literal)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ AnnotationKind result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Annotation Kind</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static AnnotationKind getByName(String name)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ AnnotationKind result = VALUES_ARRAY[i];
+ if (result.getName().equals(name))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Annotation Kind</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static AnnotationKind get(int value)
+ {
+ switch (value)
+ {
+ case ISOLATED_VALUE: return ISOLATED;
+ case DETERMINED_VALUE: return DETERMINED;
+ case ASSURED_VALUE: return ASSURED;
+ case PARALLEL_VALUE: return PARALLEL;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private AnnotationKind(int value, String name, String literal)
+ {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral()
+ {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ return literal;
+ }
+
+} //AnnotationKind
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AssignmentCompletion.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AssignmentCompletion.java
new file mode 100644
index 00000000000..134f8e309be
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AssignmentCompletion.java
@@ -0,0 +1,85 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Assignment Completion</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.AssignmentCompletion#getOp <em>Op</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.AssignmentCompletion#getRightHandSide <em>Right Hand Side</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getAssignmentCompletion()
+ * @model
+ * @generated
+ */
+public interface AssignmentCompletion extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Op</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.papyrus.alf.alf.AssignmentOperator}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Op</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Op</em>' attribute.
+ * @see org.eclipse.papyrus.alf.alf.AssignmentOperator
+ * @see #setOp(AssignmentOperator)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getAssignmentCompletion_Op()
+ * @model
+ * @generated
+ */
+ AssignmentOperator getOp();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.AssignmentCompletion#getOp <em>Op</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Op</em>' attribute.
+ * @see org.eclipse.papyrus.alf.alf.AssignmentOperator
+ * @see #getOp()
+ * @generated
+ */
+ void setOp(AssignmentOperator value);
+
+ /**
+ * Returns the value of the '<em><b>Right Hand Side</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Right Hand Side</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Right Hand Side</em>' containment reference.
+ * @see #setRightHandSide(SequenceElement)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getAssignmentCompletion_RightHandSide()
+ * @model containment="true"
+ * @generated
+ */
+ SequenceElement getRightHandSide();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.AssignmentCompletion#getRightHandSide <em>Right Hand Side</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Right Hand Side</em>' containment reference.
+ * @see #getRightHandSide()
+ * @generated
+ */
+ void setRightHandSide(SequenceElement value);
+
+} // AssignmentCompletion
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AssignmentOperator.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AssignmentOperator.java
new file mode 100644
index 00000000000..25b7f39e085
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/AssignmentOperator.java
@@ -0,0 +1,497 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Assignment Operator</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getAssignmentOperator()
+ * @model
+ * @generated
+ */
+public enum AssignmentOperator implements Enumerator
+{
+ /**
+ * The '<em><b>ASSIGN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ASSIGN_VALUE
+ * @generated
+ * @ordered
+ */
+ ASSIGN(0, "ASSIGN", "="),
+
+ /**
+ * The '<em><b>PLUSASSIGN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PLUSASSIGN_VALUE
+ * @generated
+ * @ordered
+ */
+ PLUSASSIGN(1, "PLUSASSIGN", "+="),
+
+ /**
+ * The '<em><b>MINUSASSIGN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MINUSASSIGN_VALUE
+ * @generated
+ * @ordered
+ */
+ MINUSASSIGN(2, "MINUSASSIGN", "-="),
+
+ /**
+ * The '<em><b>MULTASSIGN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MULTASSIGN_VALUE
+ * @generated
+ * @ordered
+ */
+ MULTASSIGN(3, "MULTASSIGN", "*="),
+
+ /**
+ * The '<em><b>MODASSIGN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MODASSIGN_VALUE
+ * @generated
+ * @ordered
+ */
+ MODASSIGN(4, "MODASSIGN", "%="),
+
+ /**
+ * The '<em><b>DIVASSIGN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DIVASSIGN_VALUE
+ * @generated
+ * @ordered
+ */
+ DIVASSIGN(5, "DIVASSIGN", "/="),
+
+ /**
+ * The '<em><b>ANDASSIGN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ANDASSIGN_VALUE
+ * @generated
+ * @ordered
+ */
+ ANDASSIGN(6, "ANDASSIGN", "&="),
+
+ /**
+ * The '<em><b>ORASSIGN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ORASSIGN_VALUE
+ * @generated
+ * @ordered
+ */
+ ORASSIGN(7, "ORASSIGN", "|="),
+
+ /**
+ * The '<em><b>XORASSIGN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #XORASSIGN_VALUE
+ * @generated
+ * @ordered
+ */
+ XORASSIGN(8, "XORASSIGN", "^="),
+
+ /**
+ * The '<em><b>LSHIFTASSIGN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LSHIFTASSIGN_VALUE
+ * @generated
+ * @ordered
+ */
+ LSHIFTASSIGN(9, "LSHIFTASSIGN", "<<="),
+
+ /**
+ * The '<em><b>RSHIFTASSIGN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #RSHIFTASSIGN_VALUE
+ * @generated
+ * @ordered
+ */
+ RSHIFTASSIGN(10, "RSHIFTASSIGN", ">>="),
+
+ /**
+ * The '<em><b>URSHIFTASSIGN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #URSHIFTASSIGN_VALUE
+ * @generated
+ * @ordered
+ */
+ URSHIFTASSIGN(11, "URSHIFTASSIGN", ">>>=");
+
+ /**
+ * The '<em><b>ASSIGN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ASSIGN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ASSIGN
+ * @model literal="="
+ * @generated
+ * @ordered
+ */
+ public static final int ASSIGN_VALUE = 0;
+
+ /**
+ * The '<em><b>PLUSASSIGN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>PLUSASSIGN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PLUSASSIGN
+ * @model literal="+="
+ * @generated
+ * @ordered
+ */
+ public static final int PLUSASSIGN_VALUE = 1;
+
+ /**
+ * The '<em><b>MINUSASSIGN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MINUSASSIGN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MINUSASSIGN
+ * @model literal="-="
+ * @generated
+ * @ordered
+ */
+ public static final int MINUSASSIGN_VALUE = 2;
+
+ /**
+ * The '<em><b>MULTASSIGN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MULTASSIGN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MULTASSIGN
+ * @model literal="*="
+ * @generated
+ * @ordered
+ */
+ public static final int MULTASSIGN_VALUE = 3;
+
+ /**
+ * The '<em><b>MODASSIGN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MODASSIGN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MODASSIGN
+ * @model literal="%="
+ * @generated
+ * @ordered
+ */
+ public static final int MODASSIGN_VALUE = 4;
+
+ /**
+ * The '<em><b>DIVASSIGN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DIVASSIGN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DIVASSIGN
+ * @model literal="/="
+ * @generated
+ * @ordered
+ */
+ public static final int DIVASSIGN_VALUE = 5;
+
+ /**
+ * The '<em><b>ANDASSIGN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ANDASSIGN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ANDASSIGN
+ * @model literal="&="
+ * @generated
+ * @ordered
+ */
+ public static final int ANDASSIGN_VALUE = 6;
+
+ /**
+ * The '<em><b>ORASSIGN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ORASSIGN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ORASSIGN
+ * @model literal="|="
+ * @generated
+ * @ordered
+ */
+ public static final int ORASSIGN_VALUE = 7;
+
+ /**
+ * The '<em><b>XORASSIGN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>XORASSIGN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #XORASSIGN
+ * @model literal="^="
+ * @generated
+ * @ordered
+ */
+ public static final int XORASSIGN_VALUE = 8;
+
+ /**
+ * The '<em><b>LSHIFTASSIGN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LSHIFTASSIGN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LSHIFTASSIGN
+ * @model literal="<<="
+ * @generated
+ * @ordered
+ */
+ public static final int LSHIFTASSIGN_VALUE = 9;
+
+ /**
+ * The '<em><b>RSHIFTASSIGN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>RSHIFTASSIGN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #RSHIFTASSIGN
+ * @model literal=">>="
+ * @generated
+ * @ordered
+ */
+ public static final int RSHIFTASSIGN_VALUE = 10;
+
+ /**
+ * The '<em><b>URSHIFTASSIGN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>URSHIFTASSIGN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #URSHIFTASSIGN
+ * @model literal=">>>="
+ * @generated
+ * @ordered
+ */
+ public static final int URSHIFTASSIGN_VALUE = 11;
+
+ /**
+ * An array of all the '<em><b>Assignment Operator</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final AssignmentOperator[] VALUES_ARRAY =
+ new AssignmentOperator[]
+ {
+ ASSIGN,
+ PLUSASSIGN,
+ MINUSASSIGN,
+ MULTASSIGN,
+ MODASSIGN,
+ DIVASSIGN,
+ ANDASSIGN,
+ ORASSIGN,
+ XORASSIGN,
+ LSHIFTASSIGN,
+ RSHIFTASSIGN,
+ URSHIFTASSIGN,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Assignment Operator</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<AssignmentOperator> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Assignment Operator</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static AssignmentOperator get(String literal)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ AssignmentOperator result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Assignment Operator</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static AssignmentOperator getByName(String name)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ AssignmentOperator result = VALUES_ARRAY[i];
+ if (result.getName().equals(name))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Assignment Operator</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static AssignmentOperator get(int value)
+ {
+ switch (value)
+ {
+ case ASSIGN_VALUE: return ASSIGN;
+ case PLUSASSIGN_VALUE: return PLUSASSIGN;
+ case MINUSASSIGN_VALUE: return MINUSASSIGN;
+ case MULTASSIGN_VALUE: return MULTASSIGN;
+ case MODASSIGN_VALUE: return MODASSIGN;
+ case DIVASSIGN_VALUE: return DIVASSIGN;
+ case ANDASSIGN_VALUE: return ANDASSIGN;
+ case ORASSIGN_VALUE: return ORASSIGN;
+ case XORASSIGN_VALUE: return XORASSIGN;
+ case LSHIFTASSIGN_VALUE: return LSHIFTASSIGN;
+ case RSHIFTASSIGN_VALUE: return RSHIFTASSIGN;
+ case URSHIFTASSIGN_VALUE: return URSHIFTASSIGN;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private AssignmentOperator(int value, String name, String literal)
+ {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral()
+ {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ return literal;
+ }
+
+} //AssignmentOperator
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/BOOLEAN_LITERAL.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/BOOLEAN_LITERAL.java
new file mode 100644
index 00000000000..47909685db0
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/BOOLEAN_LITERAL.java
@@ -0,0 +1,57 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>BOOLEAN LITERAL</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.BOOLEAN_LITERAL#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getBOOLEAN_LITERAL()
+ * @model
+ * @generated
+ */
+public interface BOOLEAN_LITERAL extends LITERAL
+{
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.papyrus.alf.alf.BooleanValue}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see org.eclipse.papyrus.alf.alf.BooleanValue
+ * @see #setValue(BooleanValue)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getBOOLEAN_LITERAL_Value()
+ * @model
+ * @generated
+ */
+ BooleanValue getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.BOOLEAN_LITERAL#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see org.eclipse.papyrus.alf.alf.BooleanValue
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(BooleanValue value);
+
+} // BOOLEAN_LITERAL
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/Block.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/Block.java
new file mode 100644
index 00000000000..9f88c554111
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/Block.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Block</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.Block#getSequence <em>Sequence</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getBlock()
+ * @model
+ * @generated
+ */
+public interface Block extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Sequence</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Sequence</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Sequence</em>' containment reference.
+ * @see #setSequence(StatementSequence)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getBlock_Sequence()
+ * @model containment="true"
+ * @generated
+ */
+ StatementSequence getSequence();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.Block#getSequence <em>Sequence</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Sequence</em>' containment reference.
+ * @see #getSequence()
+ * @generated
+ */
+ void setSequence(StatementSequence value);
+
+} // Block
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/BlockStatement.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/BlockStatement.java
new file mode 100644
index 00000000000..b140888cb1e
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/BlockStatement.java
@@ -0,0 +1,54 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Block Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.BlockStatement#getBlock <em>Block</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getBlockStatement()
+ * @model
+ * @generated
+ */
+public interface BlockStatement extends Statement
+{
+ /**
+ * Returns the value of the '<em><b>Block</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Block</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Block</em>' containment reference.
+ * @see #setBlock(Block)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getBlockStatement_Block()
+ * @model containment="true"
+ * @generated
+ */
+ Block getBlock();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.BlockStatement#getBlock <em>Block</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Block</em>' containment reference.
+ * @see #getBlock()
+ * @generated
+ */
+ void setBlock(Block value);
+
+} // BlockStatement
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/BooleanValue.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/BooleanValue.java
new file mode 100644
index 00000000000..319371cd51d
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/BooleanValue.java
@@ -0,0 +1,227 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Boolean Value</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getBooleanValue()
+ * @model
+ * @generated
+ */
+public enum BooleanValue implements Enumerator
+{
+ /**
+ * The '<em><b>TRUE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TRUE_VALUE
+ * @generated
+ * @ordered
+ */
+ TRUE(0, "TRUE", "true"),
+
+ /**
+ * The '<em><b>FALSE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FALSE_VALUE
+ * @generated
+ * @ordered
+ */
+ FALSE(1, "FALSE", "false");
+
+ /**
+ * The '<em><b>TRUE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TRUE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TRUE
+ * @model literal="true"
+ * @generated
+ * @ordered
+ */
+ public static final int TRUE_VALUE = 0;
+
+ /**
+ * The '<em><b>FALSE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FALSE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FALSE
+ * @model literal="false"
+ * @generated
+ * @ordered
+ */
+ public static final int FALSE_VALUE = 1;
+
+ /**
+ * An array of all the '<em><b>Boolean Value</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final BooleanValue[] VALUES_ARRAY =
+ new BooleanValue[]
+ {
+ TRUE,
+ FALSE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Boolean Value</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<BooleanValue> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Boolean Value</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static BooleanValue get(String literal)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ BooleanValue result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Boolean Value</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static BooleanValue getByName(String name)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ BooleanValue result = VALUES_ARRAY[i];
+ if (result.getName().equals(name))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Boolean Value</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static BooleanValue get(int value)
+ {
+ switch (value)
+ {
+ case TRUE_VALUE: return TRUE;
+ case FALSE_VALUE: return FALSE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private BooleanValue(int value, String name, String literal)
+ {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral()
+ {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ return literal;
+ }
+
+} //BooleanValue
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/BreakStatement.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/BreakStatement.java
new file mode 100644
index 00000000000..11bb01058be
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/BreakStatement.java
@@ -0,0 +1,22 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Break Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getBreakStatement()
+ * @model
+ * @generated
+ */
+public interface BreakStatement extends Statement
+{
+} // BreakStatement
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ClassExtentExpression.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ClassExtentExpression.java
new file mode 100644
index 00000000000..42808740d75
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ClassExtentExpression.java
@@ -0,0 +1,22 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Class Extent Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getClassExtentExpression()
+ * @model
+ * @generated
+ */
+public interface ClassExtentExpression extends SuffixExpression
+{
+} // ClassExtentExpression
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ClassificationClause.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ClassificationClause.java
new file mode 100644
index 00000000000..cf80c02de4c
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ClassificationClause.java
@@ -0,0 +1,109 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Classification Clause</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.ClassificationClause#getClassifyFromClause <em>Classify From Clause</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.ClassificationClause#getClassifyToClause <em>Classify To Clause</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.ClassificationClause#getReclassyAllClause <em>Reclassy All Clause</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getClassificationClause()
+ * @model
+ * @generated
+ */
+public interface ClassificationClause extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Classify From Clause</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Classify From Clause</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Classify From Clause</em>' containment reference.
+ * @see #setClassifyFromClause(ClassificationFromClause)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getClassificationClause_ClassifyFromClause()
+ * @model containment="true"
+ * @generated
+ */
+ ClassificationFromClause getClassifyFromClause();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.ClassificationClause#getClassifyFromClause <em>Classify From Clause</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Classify From Clause</em>' containment reference.
+ * @see #getClassifyFromClause()
+ * @generated
+ */
+ void setClassifyFromClause(ClassificationFromClause value);
+
+ /**
+ * Returns the value of the '<em><b>Classify To Clause</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Classify To Clause</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Classify To Clause</em>' containment reference.
+ * @see #setClassifyToClause(ClassificationToClause)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getClassificationClause_ClassifyToClause()
+ * @model containment="true"
+ * @generated
+ */
+ ClassificationToClause getClassifyToClause();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.ClassificationClause#getClassifyToClause <em>Classify To Clause</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Classify To Clause</em>' containment reference.
+ * @see #getClassifyToClause()
+ * @generated
+ */
+ void setClassifyToClause(ClassificationToClause value);
+
+ /**
+ * Returns the value of the '<em><b>Reclassy All Clause</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Reclassy All Clause</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Reclassy All Clause</em>' containment reference.
+ * @see #setReclassyAllClause(ReclassifyAllClause)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getClassificationClause_ReclassyAllClause()
+ * @model containment="true"
+ * @generated
+ */
+ ReclassifyAllClause getReclassyAllClause();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.ClassificationClause#getReclassyAllClause <em>Reclassy All Clause</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Reclassy All Clause</em>' containment reference.
+ * @see #getReclassyAllClause()
+ * @generated
+ */
+ void setReclassyAllClause(ReclassifyAllClause value);
+
+} // ClassificationClause
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ClassificationExpression.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ClassificationExpression.java
new file mode 100644
index 00000000000..1f46c2b41f0
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ClassificationExpression.java
@@ -0,0 +1,109 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Classification Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.ClassificationExpression#getExp <em>Exp</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.ClassificationExpression#getOp <em>Op</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.ClassificationExpression#getTypeName <em>Type Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getClassificationExpression()
+ * @model
+ * @generated
+ */
+public interface ClassificationExpression extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Exp</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Exp</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Exp</em>' containment reference.
+ * @see #setExp(RelationalExpression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getClassificationExpression_Exp()
+ * @model containment="true"
+ * @generated
+ */
+ RelationalExpression getExp();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.ClassificationExpression#getExp <em>Exp</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Exp</em>' containment reference.
+ * @see #getExp()
+ * @generated
+ */
+ void setExp(RelationalExpression value);
+
+ /**
+ * Returns the value of the '<em><b>Op</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Op</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Op</em>' attribute.
+ * @see #setOp(String)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getClassificationExpression_Op()
+ * @model
+ * @generated
+ */
+ String getOp();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.ClassificationExpression#getOp <em>Op</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Op</em>' attribute.
+ * @see #getOp()
+ * @generated
+ */
+ void setOp(String value);
+
+ /**
+ * Returns the value of the '<em><b>Type Name</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type Name</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type Name</em>' containment reference.
+ * @see #setTypeName(NameExpression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getClassificationExpression_TypeName()
+ * @model containment="true"
+ * @generated
+ */
+ NameExpression getTypeName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.ClassificationExpression#getTypeName <em>Type Name</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type Name</em>' containment reference.
+ * @see #getTypeName()
+ * @generated
+ */
+ void setTypeName(NameExpression value);
+
+} // ClassificationExpression
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ClassificationFromClause.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ClassificationFromClause.java
new file mode 100644
index 00000000000..9e4d2b632c4
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ClassificationFromClause.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Classification From Clause</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.ClassificationFromClause#getQualifiedNameList <em>Qualified Name List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getClassificationFromClause()
+ * @model
+ * @generated
+ */
+public interface ClassificationFromClause extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Qualified Name List</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Qualified Name List</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Qualified Name List</em>' containment reference.
+ * @see #setQualifiedNameList(QualifiedNameList)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getClassificationFromClause_QualifiedNameList()
+ * @model containment="true"
+ * @generated
+ */
+ QualifiedNameList getQualifiedNameList();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.ClassificationFromClause#getQualifiedNameList <em>Qualified Name List</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Qualified Name List</em>' containment reference.
+ * @see #getQualifiedNameList()
+ * @generated
+ */
+ void setQualifiedNameList(QualifiedNameList value);
+
+} // ClassificationFromClause
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ClassificationToClause.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ClassificationToClause.java
new file mode 100644
index 00000000000..9f7cd546e42
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ClassificationToClause.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Classification To Clause</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.ClassificationToClause#getQualifiedNameList <em>Qualified Name List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getClassificationToClause()
+ * @model
+ * @generated
+ */
+public interface ClassificationToClause extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Qualified Name List</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Qualified Name List</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Qualified Name List</em>' containment reference.
+ * @see #setQualifiedNameList(QualifiedNameList)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getClassificationToClause_QualifiedNameList()
+ * @model containment="true"
+ * @generated
+ */
+ QualifiedNameList getQualifiedNameList();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.ClassificationToClause#getQualifiedNameList <em>Qualified Name List</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Qualified Name List</em>' containment reference.
+ * @see #getQualifiedNameList()
+ * @generated
+ */
+ void setQualifiedNameList(QualifiedNameList value);
+
+} // ClassificationToClause
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ClassifyStatement.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ClassifyStatement.java
new file mode 100644
index 00000000000..43b90b5c3b1
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ClassifyStatement.java
@@ -0,0 +1,81 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Classify Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.ClassifyStatement#getExpression <em>Expression</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.ClassifyStatement#getClause <em>Clause</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getClassifyStatement()
+ * @model
+ * @generated
+ */
+public interface ClassifyStatement extends Statement
+{
+ /**
+ * Returns the value of the '<em><b>Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Expression</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Expression</em>' containment reference.
+ * @see #setExpression(Expression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getClassifyStatement_Expression()
+ * @model containment="true"
+ * @generated
+ */
+ Expression getExpression();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.ClassifyStatement#getExpression <em>Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Expression</em>' containment reference.
+ * @see #getExpression()
+ * @generated
+ */
+ void setExpression(Expression value);
+
+ /**
+ * Returns the value of the '<em><b>Clause</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Clause</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Clause</em>' containment reference.
+ * @see #setClause(ClassificationClause)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getClassifyStatement_Clause()
+ * @model containment="true"
+ * @generated
+ */
+ ClassificationClause getClause();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.ClassifyStatement#getClause <em>Clause</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Clause</em>' containment reference.
+ * @see #getClause()
+ * @generated
+ */
+ void setClause(ClassificationClause value);
+
+} // ClassifyStatement
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/CollectOrIterateOperation.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/CollectOrIterateOperation.java
new file mode 100644
index 00000000000..38d69c66bbf
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/CollectOrIterateOperation.java
@@ -0,0 +1,57 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Collect Or Iterate Operation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.CollectOrIterateOperation#getOp <em>Op</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getCollectOrIterateOperation()
+ * @model
+ * @generated
+ */
+public interface CollectOrIterateOperation extends SequenceExpansionExpression
+{
+ /**
+ * Returns the value of the '<em><b>Op</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.papyrus.alf.alf.CollectOrIterateOperator}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Op</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Op</em>' attribute.
+ * @see org.eclipse.papyrus.alf.alf.CollectOrIterateOperator
+ * @see #setOp(CollectOrIterateOperator)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getCollectOrIterateOperation_Op()
+ * @model
+ * @generated
+ */
+ CollectOrIterateOperator getOp();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.CollectOrIterateOperation#getOp <em>Op</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Op</em>' attribute.
+ * @see org.eclipse.papyrus.alf.alf.CollectOrIterateOperator
+ * @see #getOp()
+ * @generated
+ */
+ void setOp(CollectOrIterateOperator value);
+
+} // CollectOrIterateOperation
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/CollectOrIterateOperator.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/CollectOrIterateOperator.java
new file mode 100644
index 00000000000..20575c32de6
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/CollectOrIterateOperator.java
@@ -0,0 +1,227 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Collect Or Iterate Operator</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getCollectOrIterateOperator()
+ * @model
+ * @generated
+ */
+public enum CollectOrIterateOperator implements Enumerator
+{
+ /**
+ * The '<em><b>COLLECT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #COLLECT_VALUE
+ * @generated
+ * @ordered
+ */
+ COLLECT(0, "COLLECT", "collect"),
+
+ /**
+ * The '<em><b>ITERATE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ITERATE_VALUE
+ * @generated
+ * @ordered
+ */
+ ITERATE(1, "ITERATE", "iterate");
+
+ /**
+ * The '<em><b>COLLECT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>COLLECT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #COLLECT
+ * @model literal="collect"
+ * @generated
+ * @ordered
+ */
+ public static final int COLLECT_VALUE = 0;
+
+ /**
+ * The '<em><b>ITERATE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ITERATE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ITERATE
+ * @model literal="iterate"
+ * @generated
+ * @ordered
+ */
+ public static final int ITERATE_VALUE = 1;
+
+ /**
+ * An array of all the '<em><b>Collect Or Iterate Operator</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final CollectOrIterateOperator[] VALUES_ARRAY =
+ new CollectOrIterateOperator[]
+ {
+ COLLECT,
+ ITERATE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Collect Or Iterate Operator</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<CollectOrIterateOperator> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Collect Or Iterate Operator</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static CollectOrIterateOperator get(String literal)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ CollectOrIterateOperator result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Collect Or Iterate Operator</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static CollectOrIterateOperator getByName(String name)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ CollectOrIterateOperator result = VALUES_ARRAY[i];
+ if (result.getName().equals(name))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Collect Or Iterate Operator</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static CollectOrIterateOperator get(int value)
+ {
+ switch (value)
+ {
+ case COLLECT_VALUE: return COLLECT;
+ case ITERATE_VALUE: return ITERATE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private CollectOrIterateOperator(int value, String name, String literal)
+ {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral()
+ {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ return literal;
+ }
+
+} //CollectOrIterateOperator
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/CompoundAcceptStatementCompletion.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/CompoundAcceptStatementCompletion.java
new file mode 100644
index 00000000000..8157d9fa7d7
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/CompoundAcceptStatementCompletion.java
@@ -0,0 +1,74 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Compound Accept Statement Completion</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.CompoundAcceptStatementCompletion#getBlock <em>Block</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.CompoundAcceptStatementCompletion#getAcceptBlock <em>Accept Block</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getCompoundAcceptStatementCompletion()
+ * @model
+ * @generated
+ */
+public interface CompoundAcceptStatementCompletion extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Block</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Block</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Block</em>' containment reference.
+ * @see #setBlock(Block)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getCompoundAcceptStatementCompletion_Block()
+ * @model containment="true"
+ * @generated
+ */
+ Block getBlock();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.CompoundAcceptStatementCompletion#getBlock <em>Block</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Block</em>' containment reference.
+ * @see #getBlock()
+ * @generated
+ */
+ void setBlock(Block value);
+
+ /**
+ * Returns the value of the '<em><b>Accept Block</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.alf.alf.AcceptBlock}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Accept Block</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Accept Block</em>' containment reference list.
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getCompoundAcceptStatementCompletion_AcceptBlock()
+ * @model containment="true"
+ * @generated
+ */
+ EList<AcceptBlock> getAcceptBlock();
+
+} // CompoundAcceptStatementCompletion
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ConcurrentClauses.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ConcurrentClauses.java
new file mode 100644
index 00000000000..85f7b0487ff
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ConcurrentClauses.java
@@ -0,0 +1,47 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Concurrent Clauses</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.ConcurrentClauses#getNonFinalClause <em>Non Final Clause</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getConcurrentClauses()
+ * @model
+ * @generated
+ */
+public interface ConcurrentClauses extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Non Final Clause</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.alf.alf.NonFinalClause}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Non Final Clause</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Non Final Clause</em>' containment reference list.
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getConcurrentClauses_NonFinalClause()
+ * @model containment="true"
+ * @generated
+ */
+ EList<NonFinalClause> getNonFinalClause();
+
+} // ConcurrentClauses
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ConditionalAndExpression.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ConditionalAndExpression.java
new file mode 100644
index 00000000000..1af22742976
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ConditionalAndExpression.java
@@ -0,0 +1,47 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Conditional And Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.ConditionalAndExpression#getExp <em>Exp</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getConditionalAndExpression()
+ * @model
+ * @generated
+ */
+public interface ConditionalAndExpression extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Exp</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.alf.alf.InclusiveOrExpression}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Exp</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Exp</em>' containment reference list.
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getConditionalAndExpression_Exp()
+ * @model containment="true"
+ * @generated
+ */
+ EList<InclusiveOrExpression> getExp();
+
+} // ConditionalAndExpression
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ConditionalOrExpression.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ConditionalOrExpression.java
new file mode 100644
index 00000000000..098018b2dbd
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ConditionalOrExpression.java
@@ -0,0 +1,47 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Conditional Or Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.ConditionalOrExpression#getExp <em>Exp</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getConditionalOrExpression()
+ * @model
+ * @generated
+ */
+public interface ConditionalOrExpression extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Exp</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.alf.alf.ConditionalAndExpression}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Exp</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Exp</em>' containment reference list.
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getConditionalOrExpression_Exp()
+ * @model containment="true"
+ * @generated
+ */
+ EList<ConditionalAndExpression> getExp();
+
+} // ConditionalOrExpression
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ConditionalTestExpression.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ConditionalTestExpression.java
new file mode 100644
index 00000000000..f30575e88bf
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ConditionalTestExpression.java
@@ -0,0 +1,108 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Conditional Test Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.ConditionalTestExpression#getExp <em>Exp</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.ConditionalTestExpression#getWhenTrue <em>When True</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.ConditionalTestExpression#getWhenFalse <em>When False</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getConditionalTestExpression()
+ * @model
+ * @generated
+ */
+public interface ConditionalTestExpression extends Expression
+{
+ /**
+ * Returns the value of the '<em><b>Exp</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Exp</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Exp</em>' containment reference.
+ * @see #setExp(ConditionalOrExpression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getConditionalTestExpression_Exp()
+ * @model containment="true"
+ * @generated
+ */
+ ConditionalOrExpression getExp();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.ConditionalTestExpression#getExp <em>Exp</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Exp</em>' containment reference.
+ * @see #getExp()
+ * @generated
+ */
+ void setExp(ConditionalOrExpression value);
+
+ /**
+ * Returns the value of the '<em><b>When True</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>When True</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>When True</em>' containment reference.
+ * @see #setWhenTrue(ConditionalTestExpression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getConditionalTestExpression_WhenTrue()
+ * @model containment="true"
+ * @generated
+ */
+ ConditionalTestExpression getWhenTrue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.ConditionalTestExpression#getWhenTrue <em>When True</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>When True</em>' containment reference.
+ * @see #getWhenTrue()
+ * @generated
+ */
+ void setWhenTrue(ConditionalTestExpression value);
+
+ /**
+ * Returns the value of the '<em><b>When False</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>When False</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>When False</em>' containment reference.
+ * @see #setWhenFalse(ConditionalTestExpression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getConditionalTestExpression_WhenFalse()
+ * @model containment="true"
+ * @generated
+ */
+ ConditionalTestExpression getWhenFalse();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.ConditionalTestExpression#getWhenFalse <em>When False</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>When False</em>' containment reference.
+ * @see #getWhenFalse()
+ * @generated
+ */
+ void setWhenFalse(ConditionalTestExpression value);
+
+} // ConditionalTestExpression
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/DoStatement.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/DoStatement.java
new file mode 100644
index 00000000000..b0b3e7e0e29
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/DoStatement.java
@@ -0,0 +1,81 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Do Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.DoStatement#getBlock <em>Block</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.DoStatement#getCondition <em>Condition</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getDoStatement()
+ * @model
+ * @generated
+ */
+public interface DoStatement extends Statement
+{
+ /**
+ * Returns the value of the '<em><b>Block</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Block</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Block</em>' containment reference.
+ * @see #setBlock(Block)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getDoStatement_Block()
+ * @model containment="true"
+ * @generated
+ */
+ Block getBlock();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.DoStatement#getBlock <em>Block</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Block</em>' containment reference.
+ * @see #getBlock()
+ * @generated
+ */
+ void setBlock(Block value);
+
+ /**
+ * Returns the value of the '<em><b>Condition</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Condition</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Condition</em>' containment reference.
+ * @see #setCondition(Expression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getDoStatement_Condition()
+ * @model containment="true"
+ * @generated
+ */
+ Expression getCondition();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.DoStatement#getCondition <em>Condition</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Condition</em>' containment reference.
+ * @see #getCondition()
+ * @generated
+ */
+ void setCondition(Expression value);
+
+} // DoStatement
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/DocumentedStatement.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/DocumentedStatement.java
new file mode 100644
index 00000000000..4ec75ed7b24
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/DocumentedStatement.java
@@ -0,0 +1,82 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Documented Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.DocumentedStatement#getComment <em>Comment</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.DocumentedStatement#getStatement <em>Statement</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getDocumentedStatement()
+ * @model
+ * @generated
+ */
+public interface DocumentedStatement extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Comment</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Comment</em>' attribute.
+ * @see #setComment(String)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getDocumentedStatement_Comment()
+ * @model
+ * @generated
+ */
+ String getComment();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.DocumentedStatement#getComment <em>Comment</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Comment</em>' attribute.
+ * @see #getComment()
+ * @generated
+ */
+ void setComment(String value);
+
+ /**
+ * Returns the value of the '<em><b>Statement</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Statement</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Statement</em>' containment reference.
+ * @see #setStatement(Statement)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getDocumentedStatement_Statement()
+ * @model containment="true"
+ * @generated
+ */
+ Statement getStatement();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.DocumentedStatement#getStatement <em>Statement</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Statement</em>' containment reference.
+ * @see #getStatement()
+ * @generated
+ */
+ void setStatement(Statement value);
+
+} // DocumentedStatement
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/EmptyStatement.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/EmptyStatement.java
new file mode 100644
index 00000000000..71f0813634b
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/EmptyStatement.java
@@ -0,0 +1,22 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Empty Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getEmptyStatement()
+ * @model
+ * @generated
+ */
+public interface EmptyStatement extends Statement
+{
+} // EmptyStatement
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/EqualityExpression.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/EqualityExpression.java
new file mode 100644
index 00000000000..5cdf94b4f00
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/EqualityExpression.java
@@ -0,0 +1,64 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Equality Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.EqualityExpression#getExp <em>Exp</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.EqualityExpression#getOp <em>Op</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getEqualityExpression()
+ * @model
+ * @generated
+ */
+public interface EqualityExpression extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Exp</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.alf.alf.ClassificationExpression}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Exp</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Exp</em>' containment reference list.
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getEqualityExpression_Exp()
+ * @model containment="true"
+ * @generated
+ */
+ EList<ClassificationExpression> getExp();
+
+ /**
+ * Returns the value of the '<em><b>Op</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Op</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Op</em>' attribute list.
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getEqualityExpression_Op()
+ * @model unique="false"
+ * @generated
+ */
+ EList<String> getOp();
+
+} // EqualityExpression
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ExclusiveOrExpression.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ExclusiveOrExpression.java
new file mode 100644
index 00000000000..e7f92a9349a
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ExclusiveOrExpression.java
@@ -0,0 +1,47 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Exclusive Or Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.ExclusiveOrExpression#getExp <em>Exp</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getExclusiveOrExpression()
+ * @model
+ * @generated
+ */
+public interface ExclusiveOrExpression extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Exp</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.alf.alf.AndExpression}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Exp</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Exp</em>' containment reference list.
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getExclusiveOrExpression_Exp()
+ * @model containment="true"
+ * @generated
+ */
+ EList<AndExpression> getExp();
+
+} // ExclusiveOrExpression
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/Expression.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/Expression.java
new file mode 100644
index 00000000000..17dfd1b0864
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/Expression.java
@@ -0,0 +1,22 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getExpression()
+ * @model
+ * @generated
+ */
+public interface Expression extends SequenceElement
+{
+} // Expression
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/FinalClause.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/FinalClause.java
new file mode 100644
index 00000000000..1a37de0ab0d
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/FinalClause.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Final Clause</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.FinalClause#getBlock <em>Block</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getFinalClause()
+ * @model
+ * @generated
+ */
+public interface FinalClause extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Block</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Block</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Block</em>' containment reference.
+ * @see #setBlock(Block)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getFinalClause_Block()
+ * @model containment="true"
+ * @generated
+ */
+ Block getBlock();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.FinalClause#getBlock <em>Block</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Block</em>' containment reference.
+ * @see #getBlock()
+ * @generated
+ */
+ void setBlock(Block value);
+
+} // FinalClause
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ForAllOrExistsOrOneOperation.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ForAllOrExistsOrOneOperation.java
new file mode 100644
index 00000000000..08bf4a03399
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ForAllOrExistsOrOneOperation.java
@@ -0,0 +1,57 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>For All Or Exists Or One Operation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.ForAllOrExistsOrOneOperation#getOp <em>Op</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getForAllOrExistsOrOneOperation()
+ * @model
+ * @generated
+ */
+public interface ForAllOrExistsOrOneOperation extends SequenceExpansionExpression
+{
+ /**
+ * Returns the value of the '<em><b>Op</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.papyrus.alf.alf.ForAllOrExistsOrOneOperator}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Op</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Op</em>' attribute.
+ * @see org.eclipse.papyrus.alf.alf.ForAllOrExistsOrOneOperator
+ * @see #setOp(ForAllOrExistsOrOneOperator)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getForAllOrExistsOrOneOperation_Op()
+ * @model
+ * @generated
+ */
+ ForAllOrExistsOrOneOperator getOp();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.ForAllOrExistsOrOneOperation#getOp <em>Op</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Op</em>' attribute.
+ * @see org.eclipse.papyrus.alf.alf.ForAllOrExistsOrOneOperator
+ * @see #getOp()
+ * @generated
+ */
+ void setOp(ForAllOrExistsOrOneOperator value);
+
+} // ForAllOrExistsOrOneOperation
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ForAllOrExistsOrOneOperator.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ForAllOrExistsOrOneOperator.java
new file mode 100644
index 00000000000..e828234f6bc
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ForAllOrExistsOrOneOperator.java
@@ -0,0 +1,254 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>For All Or Exists Or One Operator</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getForAllOrExistsOrOneOperator()
+ * @model
+ * @generated
+ */
+public enum ForAllOrExistsOrOneOperator implements Enumerator
+{
+ /**
+ * The '<em><b>FORALL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FORALL_VALUE
+ * @generated
+ * @ordered
+ */
+ FORALL(0, "FORALL", "forAll"),
+
+ /**
+ * The '<em><b>EXISTS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #EXISTS_VALUE
+ * @generated
+ * @ordered
+ */
+ EXISTS(1, "EXISTS", "exists"),
+
+ /**
+ * The '<em><b>ONE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ONE_VALUE
+ * @generated
+ * @ordered
+ */
+ ONE(2, "ONE", "one");
+
+ /**
+ * The '<em><b>FORALL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FORALL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FORALL
+ * @model literal="forAll"
+ * @generated
+ * @ordered
+ */
+ public static final int FORALL_VALUE = 0;
+
+ /**
+ * The '<em><b>EXISTS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>EXISTS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #EXISTS
+ * @model literal="exists"
+ * @generated
+ * @ordered
+ */
+ public static final int EXISTS_VALUE = 1;
+
+ /**
+ * The '<em><b>ONE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ONE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ONE
+ * @model literal="one"
+ * @generated
+ * @ordered
+ */
+ public static final int ONE_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>For All Or Exists Or One Operator</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final ForAllOrExistsOrOneOperator[] VALUES_ARRAY =
+ new ForAllOrExistsOrOneOperator[]
+ {
+ FORALL,
+ EXISTS,
+ ONE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>For All Or Exists Or One Operator</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<ForAllOrExistsOrOneOperator> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>For All Or Exists Or One Operator</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ForAllOrExistsOrOneOperator get(String literal)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ ForAllOrExistsOrOneOperator result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>For All Or Exists Or One Operator</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ForAllOrExistsOrOneOperator getByName(String name)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ ForAllOrExistsOrOneOperator result = VALUES_ARRAY[i];
+ if (result.getName().equals(name))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>For All Or Exists Or One Operator</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ForAllOrExistsOrOneOperator get(int value)
+ {
+ switch (value)
+ {
+ case FORALL_VALUE: return FORALL;
+ case EXISTS_VALUE: return EXISTS;
+ case ONE_VALUE: return ONE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private ForAllOrExistsOrOneOperator(int value, String name, String literal)
+ {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral()
+ {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ return literal;
+ }
+
+} //ForAllOrExistsOrOneOperator
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ForControl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ForControl.java
new file mode 100644
index 00000000000..f0dd375e8bc
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ForControl.java
@@ -0,0 +1,47 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>For Control</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.ForControl#getLoopVariableDefinition <em>Loop Variable Definition</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getForControl()
+ * @model
+ * @generated
+ */
+public interface ForControl extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Loop Variable Definition</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.alf.alf.LoopVariableDefinition}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Loop Variable Definition</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Loop Variable Definition</em>' containment reference list.
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getForControl_LoopVariableDefinition()
+ * @model containment="true"
+ * @generated
+ */
+ EList<LoopVariableDefinition> getLoopVariableDefinition();
+
+} // ForControl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ForStatement.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ForStatement.java
new file mode 100644
index 00000000000..5b3144af07a
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ForStatement.java
@@ -0,0 +1,81 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>For Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.ForStatement#getControl <em>Control</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.ForStatement#getBlock <em>Block</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getForStatement()
+ * @model
+ * @generated
+ */
+public interface ForStatement extends Statement
+{
+ /**
+ * Returns the value of the '<em><b>Control</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Control</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Control</em>' containment reference.
+ * @see #setControl(ForControl)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getForStatement_Control()
+ * @model containment="true"
+ * @generated
+ */
+ ForControl getControl();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.ForStatement#getControl <em>Control</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Control</em>' containment reference.
+ * @see #getControl()
+ * @generated
+ */
+ void setControl(ForControl value);
+
+ /**
+ * Returns the value of the '<em><b>Block</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Block</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Block</em>' containment reference.
+ * @see #setBlock(Block)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getForStatement_Block()
+ * @model containment="true"
+ * @generated
+ */
+ Block getBlock();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.ForStatement#getBlock <em>Block</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Block</em>' containment reference.
+ * @see #getBlock()
+ * @generated
+ */
+ void setBlock(Block value);
+
+} // ForStatement
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/INTEGER_LITERAL.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/INTEGER_LITERAL.java
new file mode 100644
index 00000000000..d11dfeb7691
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/INTEGER_LITERAL.java
@@ -0,0 +1,22 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>INTEGER LITERAL</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getINTEGER_LITERAL()
+ * @model
+ * @generated
+ */
+public interface INTEGER_LITERAL extends NUMBER_LITERAL
+{
+} // INTEGER_LITERAL
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/IfStatement.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/IfStatement.java
new file mode 100644
index 00000000000..3369e76db22
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/IfStatement.java
@@ -0,0 +1,81 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>If Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.IfStatement#getSequentialClausses <em>Sequential Clausses</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.IfStatement#getFinalClause <em>Final Clause</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getIfStatement()
+ * @model
+ * @generated
+ */
+public interface IfStatement extends Statement
+{
+ /**
+ * Returns the value of the '<em><b>Sequential Clausses</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Sequential Clausses</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Sequential Clausses</em>' containment reference.
+ * @see #setSequentialClausses(SequentialClauses)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getIfStatement_SequentialClausses()
+ * @model containment="true"
+ * @generated
+ */
+ SequentialClauses getSequentialClausses();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.IfStatement#getSequentialClausses <em>Sequential Clausses</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Sequential Clausses</em>' containment reference.
+ * @see #getSequentialClausses()
+ * @generated
+ */
+ void setSequentialClausses(SequentialClauses value);
+
+ /**
+ * Returns the value of the '<em><b>Final Clause</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Final Clause</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Final Clause</em>' containment reference.
+ * @see #setFinalClause(FinalClause)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getIfStatement_FinalClause()
+ * @model containment="true"
+ * @generated
+ */
+ FinalClause getFinalClause();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.IfStatement#getFinalClause <em>Final Clause</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Final Clause</em>' containment reference.
+ * @see #getFinalClause()
+ * @generated
+ */
+ void setFinalClause(FinalClause value);
+
+} // IfStatement
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/InclusiveOrExpression.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/InclusiveOrExpression.java
new file mode 100644
index 00000000000..83c5ad8557c
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/InclusiveOrExpression.java
@@ -0,0 +1,47 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Inclusive Or Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.InclusiveOrExpression#getExp <em>Exp</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getInclusiveOrExpression()
+ * @model
+ * @generated
+ */
+public interface InclusiveOrExpression extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Exp</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.alf.alf.ExclusiveOrExpression}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Exp</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Exp</em>' containment reference list.
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getInclusiveOrExpression_Exp()
+ * @model containment="true"
+ * @generated
+ */
+ EList<ExclusiveOrExpression> getExp();
+
+} // InclusiveOrExpression
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/InlineStatement.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/InlineStatement.java
new file mode 100644
index 00000000000..153181d6604
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/InlineStatement.java
@@ -0,0 +1,81 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Inline Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.InlineStatement#getLangageName <em>Langage Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.InlineStatement#getBody <em>Body</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getInlineStatement()
+ * @model
+ * @generated
+ */
+public interface InlineStatement extends Statement
+{
+ /**
+ * Returns the value of the '<em><b>Langage Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Langage Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Langage Name</em>' attribute.
+ * @see #setLangageName(String)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getInlineStatement_LangageName()
+ * @model
+ * @generated
+ */
+ String getLangageName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.InlineStatement#getLangageName <em>Langage Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Langage Name</em>' attribute.
+ * @see #getLangageName()
+ * @generated
+ */
+ void setLangageName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Body</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Body</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Body</em>' attribute.
+ * @see #setBody(String)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getInlineStatement_Body()
+ * @model
+ * @generated
+ */
+ String getBody();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.InlineStatement#getBody <em>Body</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Body</em>' attribute.
+ * @see #getBody()
+ * @generated
+ */
+ void setBody(String value);
+
+} // InlineStatement
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/InstanceCreationExpression.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/InstanceCreationExpression.java
new file mode 100644
index 00000000000..29f9619c15a
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/InstanceCreationExpression.java
@@ -0,0 +1,108 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Instance Creation Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.InstanceCreationExpression#getConstructor <em>Constructor</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.InstanceCreationExpression#getTuple <em>Tuple</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.InstanceCreationExpression#getSuffix <em>Suffix</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getInstanceCreationExpression()
+ * @model
+ * @generated
+ */
+public interface InstanceCreationExpression extends ValueSpecification, NonLiteralValueSpecification
+{
+ /**
+ * Returns the value of the '<em><b>Constructor</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Constructor</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Constructor</em>' containment reference.
+ * @see #setConstructor(QualifiedNameWithBinding)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getInstanceCreationExpression_Constructor()
+ * @model containment="true"
+ * @generated
+ */
+ QualifiedNameWithBinding getConstructor();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.InstanceCreationExpression#getConstructor <em>Constructor</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Constructor</em>' containment reference.
+ * @see #getConstructor()
+ * @generated
+ */
+ void setConstructor(QualifiedNameWithBinding value);
+
+ /**
+ * Returns the value of the '<em><b>Tuple</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Tuple</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Tuple</em>' containment reference.
+ * @see #setTuple(InstanceCreationTuple)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getInstanceCreationExpression_Tuple()
+ * @model containment="true"
+ * @generated
+ */
+ InstanceCreationTuple getTuple();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.InstanceCreationExpression#getTuple <em>Tuple</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Tuple</em>' containment reference.
+ * @see #getTuple()
+ * @generated
+ */
+ void setTuple(InstanceCreationTuple value);
+
+ /**
+ * Returns the value of the '<em><b>Suffix</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Suffix</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Suffix</em>' containment reference.
+ * @see #setSuffix(SuffixExpression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getInstanceCreationExpression_Suffix()
+ * @model containment="true"
+ * @generated
+ */
+ SuffixExpression getSuffix();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.InstanceCreationExpression#getSuffix <em>Suffix</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Suffix</em>' containment reference.
+ * @see #getSuffix()
+ * @generated
+ */
+ void setSuffix(SuffixExpression value);
+
+} // InstanceCreationExpression
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/InstanceCreationInvocationStatement.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/InstanceCreationInvocationStatement.java
new file mode 100644
index 00000000000..ee2dc9991eb
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/InstanceCreationInvocationStatement.java
@@ -0,0 +1,54 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Instance Creation Invocation Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.InstanceCreationInvocationStatement#get_new <em>new</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getInstanceCreationInvocationStatement()
+ * @model
+ * @generated
+ */
+public interface InstanceCreationInvocationStatement extends Statement
+{
+ /**
+ * Returns the value of the '<em><b>new</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>new</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>new</em>' containment reference.
+ * @see #set_new(InstanceCreationExpression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getInstanceCreationInvocationStatement__new()
+ * @model containment="true"
+ * @generated
+ */
+ InstanceCreationExpression get_new();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.InstanceCreationInvocationStatement#get_new <em>new</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>new</em>' containment reference.
+ * @see #get_new()
+ * @generated
+ */
+ void set_new(InstanceCreationExpression value);
+
+} // InstanceCreationInvocationStatement
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/InstanceCreationTuple.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/InstanceCreationTuple.java
new file mode 100644
index 00000000000..0fb5683db2d
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/InstanceCreationTuple.java
@@ -0,0 +1,47 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Instance Creation Tuple</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.InstanceCreationTuple#getInstanceCreationTupleElement <em>Instance Creation Tuple Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getInstanceCreationTuple()
+ * @model
+ * @generated
+ */
+public interface InstanceCreationTuple extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Instance Creation Tuple Element</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.alf.alf.InstanceCreationTupleElement}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Instance Creation Tuple Element</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Instance Creation Tuple Element</em>' containment reference list.
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getInstanceCreationTuple_InstanceCreationTupleElement()
+ * @model containment="true"
+ * @generated
+ */
+ EList<InstanceCreationTupleElement> getInstanceCreationTupleElement();
+
+} // InstanceCreationTuple
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/InstanceCreationTupleElement.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/InstanceCreationTupleElement.java
new file mode 100644
index 00000000000..2133cb11ada
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/InstanceCreationTupleElement.java
@@ -0,0 +1,82 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Instance Creation Tuple Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.InstanceCreationTupleElement#getRole <em>Role</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.InstanceCreationTupleElement#getObject <em>Object</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getInstanceCreationTupleElement()
+ * @model
+ * @generated
+ */
+public interface InstanceCreationTupleElement extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Role</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Role</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Role</em>' attribute.
+ * @see #setRole(String)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getInstanceCreationTupleElement_Role()
+ * @model
+ * @generated
+ */
+ String getRole();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.InstanceCreationTupleElement#getRole <em>Role</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Role</em>' attribute.
+ * @see #getRole()
+ * @generated
+ */
+ void setRole(String value);
+
+ /**
+ * Returns the value of the '<em><b>Object</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Object</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Object</em>' containment reference.
+ * @see #setObject(Expression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getInstanceCreationTupleElement_Object()
+ * @model containment="true"
+ * @generated
+ */
+ Expression getObject();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.InstanceCreationTupleElement#getObject <em>Object</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Object</em>' containment reference.
+ * @see #getObject()
+ * @generated
+ */
+ void setObject(Expression value);
+
+} // InstanceCreationTupleElement
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/InvocationOrAssignementOrDeclarationStatement.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/InvocationOrAssignementOrDeclarationStatement.java
new file mode 100644
index 00000000000..8818ee9b415
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/InvocationOrAssignementOrDeclarationStatement.java
@@ -0,0 +1,108 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Invocation Or Assignement Or Declaration Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.InvocationOrAssignementOrDeclarationStatement#getTypePart_OR_assignedPart_OR_invocationPart <em>Type Part OR assigned Part OR invocation Part</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.InvocationOrAssignementOrDeclarationStatement#getVariableDeclarationCompletion <em>Variable Declaration Completion</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.InvocationOrAssignementOrDeclarationStatement#getAssignmentCompletion <em>Assignment Completion</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getInvocationOrAssignementOrDeclarationStatement()
+ * @model
+ * @generated
+ */
+public interface InvocationOrAssignementOrDeclarationStatement extends Statement
+{
+ /**
+ * Returns the value of the '<em><b>Type Part OR assigned Part OR invocation Part</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type Part OR assigned Part OR invocation Part</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type Part OR assigned Part OR invocation Part</em>' containment reference.
+ * @see #setTypePart_OR_assignedPart_OR_invocationPart(NameExpression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getInvocationOrAssignementOrDeclarationStatement_TypePart_OR_assignedPart_OR_invocationPart()
+ * @model containment="true"
+ * @generated
+ */
+ NameExpression getTypePart_OR_assignedPart_OR_invocationPart();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.InvocationOrAssignementOrDeclarationStatement#getTypePart_OR_assignedPart_OR_invocationPart <em>Type Part OR assigned Part OR invocation Part</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type Part OR assigned Part OR invocation Part</em>' containment reference.
+ * @see #getTypePart_OR_assignedPart_OR_invocationPart()
+ * @generated
+ */
+ void setTypePart_OR_assignedPart_OR_invocationPart(NameExpression value);
+
+ /**
+ * Returns the value of the '<em><b>Variable Declaration Completion</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Variable Declaration Completion</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Variable Declaration Completion</em>' containment reference.
+ * @see #setVariableDeclarationCompletion(VariableDeclarationCompletion)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getInvocationOrAssignementOrDeclarationStatement_VariableDeclarationCompletion()
+ * @model containment="true"
+ * @generated
+ */
+ VariableDeclarationCompletion getVariableDeclarationCompletion();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.InvocationOrAssignementOrDeclarationStatement#getVariableDeclarationCompletion <em>Variable Declaration Completion</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Variable Declaration Completion</em>' containment reference.
+ * @see #getVariableDeclarationCompletion()
+ * @generated
+ */
+ void setVariableDeclarationCompletion(VariableDeclarationCompletion value);
+
+ /**
+ * Returns the value of the '<em><b>Assignment Completion</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Assignment Completion</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Assignment Completion</em>' containment reference.
+ * @see #setAssignmentCompletion(AssignmentCompletion)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getInvocationOrAssignementOrDeclarationStatement_AssignmentCompletion()
+ * @model containment="true"
+ * @generated
+ */
+ AssignmentCompletion getAssignmentCompletion();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.InvocationOrAssignementOrDeclarationStatement#getAssignmentCompletion <em>Assignment Completion</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Assignment Completion</em>' containment reference.
+ * @see #getAssignmentCompletion()
+ * @generated
+ */
+ void setAssignmentCompletion(AssignmentCompletion value);
+
+} // InvocationOrAssignementOrDeclarationStatement
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/IsUniqueOperation.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/IsUniqueOperation.java
new file mode 100644
index 00000000000..373169c65ee
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/IsUniqueOperation.java
@@ -0,0 +1,22 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Is Unique Operation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getIsUniqueOperation()
+ * @model
+ * @generated
+ */
+public interface IsUniqueOperation extends SequenceExpansionExpression
+{
+} // IsUniqueOperation
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/LITERAL.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/LITERAL.java
new file mode 100644
index 00000000000..ede81158bc1
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/LITERAL.java
@@ -0,0 +1,22 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>LITERAL</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getLITERAL()
+ * @model
+ * @generated
+ */
+public interface LITERAL extends ValueSpecification
+{
+} // LITERAL
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/LinkOperationExpression.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/LinkOperationExpression.java
new file mode 100644
index 00000000000..f33146118d2
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/LinkOperationExpression.java
@@ -0,0 +1,84 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Link Operation Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.LinkOperationExpression#getKind <em>Kind</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.LinkOperationExpression#getTuple <em>Tuple</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getLinkOperationExpression()
+ * @model
+ * @generated
+ */
+public interface LinkOperationExpression extends SuffixExpression
+{
+ /**
+ * Returns the value of the '<em><b>Kind</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.papyrus.alf.alf.LinkOperationKind}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Kind</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Kind</em>' attribute.
+ * @see org.eclipse.papyrus.alf.alf.LinkOperationKind
+ * @see #setKind(LinkOperationKind)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getLinkOperationExpression_Kind()
+ * @model
+ * @generated
+ */
+ LinkOperationKind getKind();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.LinkOperationExpression#getKind <em>Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Kind</em>' attribute.
+ * @see org.eclipse.papyrus.alf.alf.LinkOperationKind
+ * @see #getKind()
+ * @generated
+ */
+ void setKind(LinkOperationKind value);
+
+ /**
+ * Returns the value of the '<em><b>Tuple</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Tuple</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Tuple</em>' containment reference.
+ * @see #setTuple(LinkOperationTuple)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getLinkOperationExpression_Tuple()
+ * @model containment="true"
+ * @generated
+ */
+ LinkOperationTuple getTuple();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.LinkOperationExpression#getTuple <em>Tuple</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Tuple</em>' containment reference.
+ * @see #getTuple()
+ * @generated
+ */
+ void setTuple(LinkOperationTuple value);
+
+} // LinkOperationExpression
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/LinkOperationKind.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/LinkOperationKind.java
new file mode 100644
index 00000000000..d1a98c2d87a
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/LinkOperationKind.java
@@ -0,0 +1,254 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Link Operation Kind</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getLinkOperationKind()
+ * @model
+ * @generated
+ */
+public enum LinkOperationKind implements Enumerator
+{
+ /**
+ * The '<em><b>CREATE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CREATE_VALUE
+ * @generated
+ * @ordered
+ */
+ CREATE(0, "CREATE", "createLink"),
+
+ /**
+ * The '<em><b>DESTROY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DESTROY_VALUE
+ * @generated
+ * @ordered
+ */
+ DESTROY(1, "DESTROY", "destroyLink"),
+
+ /**
+ * The '<em><b>CLEAR</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CLEAR_VALUE
+ * @generated
+ * @ordered
+ */
+ CLEAR(2, "CLEAR", "clearAssoc");
+
+ /**
+ * The '<em><b>CREATE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CREATE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CREATE
+ * @model literal="createLink"
+ * @generated
+ * @ordered
+ */
+ public static final int CREATE_VALUE = 0;
+
+ /**
+ * The '<em><b>DESTROY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DESTROY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DESTROY
+ * @model literal="destroyLink"
+ * @generated
+ * @ordered
+ */
+ public static final int DESTROY_VALUE = 1;
+
+ /**
+ * The '<em><b>CLEAR</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CLEAR</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CLEAR
+ * @model literal="clearAssoc"
+ * @generated
+ * @ordered
+ */
+ public static final int CLEAR_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Link Operation Kind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final LinkOperationKind[] VALUES_ARRAY =
+ new LinkOperationKind[]
+ {
+ CREATE,
+ DESTROY,
+ CLEAR,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Link Operation Kind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<LinkOperationKind> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Link Operation Kind</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LinkOperationKind get(String literal)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ LinkOperationKind result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Link Operation Kind</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LinkOperationKind getByName(String name)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ LinkOperationKind result = VALUES_ARRAY[i];
+ if (result.getName().equals(name))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Link Operation Kind</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LinkOperationKind get(int value)
+ {
+ switch (value)
+ {
+ case CREATE_VALUE: return CREATE;
+ case DESTROY_VALUE: return DESTROY;
+ case CLEAR_VALUE: return CLEAR;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private LinkOperationKind(int value, String name, String literal)
+ {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral()
+ {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ return literal;
+ }
+
+} //LinkOperationKind
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/LinkOperationTuple.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/LinkOperationTuple.java
new file mode 100644
index 00000000000..d40b21ce1e2
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/LinkOperationTuple.java
@@ -0,0 +1,47 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Link Operation Tuple</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.LinkOperationTuple#getLinkOperationTupleElement <em>Link Operation Tuple Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getLinkOperationTuple()
+ * @model
+ * @generated
+ */
+public interface LinkOperationTuple extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Link Operation Tuple Element</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.alf.alf.LinkOperationTupleElement}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Link Operation Tuple Element</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Link Operation Tuple Element</em>' containment reference list.
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getLinkOperationTuple_LinkOperationTupleElement()
+ * @model containment="true"
+ * @generated
+ */
+ EList<LinkOperationTupleElement> getLinkOperationTupleElement();
+
+} // LinkOperationTuple
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/LinkOperationTupleElement.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/LinkOperationTupleElement.java
new file mode 100644
index 00000000000..38b6d4e8a89
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/LinkOperationTupleElement.java
@@ -0,0 +1,109 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Link Operation Tuple Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.LinkOperationTupleElement#getRole <em>Role</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.LinkOperationTupleElement#getRoleIndex <em>Role Index</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.LinkOperationTupleElement#getObject <em>Object</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getLinkOperationTupleElement()
+ * @model
+ * @generated
+ */
+public interface LinkOperationTupleElement extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Role</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Role</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Role</em>' attribute.
+ * @see #setRole(String)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getLinkOperationTupleElement_Role()
+ * @model
+ * @generated
+ */
+ String getRole();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.LinkOperationTupleElement#getRole <em>Role</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Role</em>' attribute.
+ * @see #getRole()
+ * @generated
+ */
+ void setRole(String value);
+
+ /**
+ * Returns the value of the '<em><b>Role Index</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Role Index</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Role Index</em>' containment reference.
+ * @see #setRoleIndex(Expression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getLinkOperationTupleElement_RoleIndex()
+ * @model containment="true"
+ * @generated
+ */
+ Expression getRoleIndex();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.LinkOperationTupleElement#getRoleIndex <em>Role Index</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Role Index</em>' containment reference.
+ * @see #getRoleIndex()
+ * @generated
+ */
+ void setRoleIndex(Expression value);
+
+ /**
+ * Returns the value of the '<em><b>Object</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Object</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Object</em>' containment reference.
+ * @see #setObject(Expression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getLinkOperationTupleElement_Object()
+ * @model containment="true"
+ * @generated
+ */
+ Expression getObject();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.LinkOperationTupleElement#getObject <em>Object</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Object</em>' containment reference.
+ * @see #getObject()
+ * @generated
+ */
+ void setObject(Expression value);
+
+} // LinkOperationTupleElement
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/LocalNameDeclarationStatement.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/LocalNameDeclarationStatement.java
new file mode 100644
index 00000000000..7febaa3c70d
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/LocalNameDeclarationStatement.java
@@ -0,0 +1,135 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Local Name Declaration Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.LocalNameDeclarationStatement#getVarName <em>Var Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.LocalNameDeclarationStatement#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.LocalNameDeclarationStatement#isMultiplicityIndicator <em>Multiplicity Indicator</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.LocalNameDeclarationStatement#getInit <em>Init</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getLocalNameDeclarationStatement()
+ * @model
+ * @generated
+ */
+public interface LocalNameDeclarationStatement extends Statement
+{
+ /**
+ * Returns the value of the '<em><b>Var Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Var Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Var Name</em>' attribute.
+ * @see #setVarName(String)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getLocalNameDeclarationStatement_VarName()
+ * @model
+ * @generated
+ */
+ String getVarName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.LocalNameDeclarationStatement#getVarName <em>Var Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Var Name</em>' attribute.
+ * @see #getVarName()
+ * @generated
+ */
+ void setVarName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' containment reference.
+ * @see #setType(QualifiedNameWithBinding)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getLocalNameDeclarationStatement_Type()
+ * @model containment="true"
+ * @generated
+ */
+ QualifiedNameWithBinding getType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.LocalNameDeclarationStatement#getType <em>Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type</em>' containment reference.
+ * @see #getType()
+ * @generated
+ */
+ void setType(QualifiedNameWithBinding value);
+
+ /**
+ * Returns the value of the '<em><b>Multiplicity Indicator</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Multiplicity Indicator</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Multiplicity Indicator</em>' attribute.
+ * @see #setMultiplicityIndicator(boolean)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getLocalNameDeclarationStatement_MultiplicityIndicator()
+ * @model
+ * @generated
+ */
+ boolean isMultiplicityIndicator();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.LocalNameDeclarationStatement#isMultiplicityIndicator <em>Multiplicity Indicator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Multiplicity Indicator</em>' attribute.
+ * @see #isMultiplicityIndicator()
+ * @generated
+ */
+ void setMultiplicityIndicator(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Init</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Init</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Init</em>' containment reference.
+ * @see #setInit(SequenceElement)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getLocalNameDeclarationStatement_Init()
+ * @model containment="true"
+ * @generated
+ */
+ SequenceElement getInit();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.LocalNameDeclarationStatement#getInit <em>Init</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Init</em>' containment reference.
+ * @see #getInit()
+ * @generated
+ */
+ void setInit(SequenceElement value);
+
+} // LocalNameDeclarationStatement
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/LoopVariableDefinition.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/LoopVariableDefinition.java
new file mode 100644
index 00000000000..4224aae5a11
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/LoopVariableDefinition.java
@@ -0,0 +1,163 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Loop Variable Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.LoopVariableDefinition#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.LoopVariableDefinition#getExpression1 <em>Expression1</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.LoopVariableDefinition#getExpression2 <em>Expression2</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.LoopVariableDefinition#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.LoopVariableDefinition#getExpression <em>Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getLoopVariableDefinition()
+ * @model
+ * @generated
+ */
+public interface LoopVariableDefinition extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getLoopVariableDefinition_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.LoopVariableDefinition#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Expression1</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Expression1</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Expression1</em>' containment reference.
+ * @see #setExpression1(Expression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getLoopVariableDefinition_Expression1()
+ * @model containment="true"
+ * @generated
+ */
+ Expression getExpression1();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.LoopVariableDefinition#getExpression1 <em>Expression1</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Expression1</em>' containment reference.
+ * @see #getExpression1()
+ * @generated
+ */
+ void setExpression1(Expression value);
+
+ /**
+ * Returns the value of the '<em><b>Expression2</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Expression2</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Expression2</em>' containment reference.
+ * @see #setExpression2(Expression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getLoopVariableDefinition_Expression2()
+ * @model containment="true"
+ * @generated
+ */
+ Expression getExpression2();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.LoopVariableDefinition#getExpression2 <em>Expression2</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Expression2</em>' containment reference.
+ * @see #getExpression2()
+ * @generated
+ */
+ void setExpression2(Expression value);
+
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' containment reference.
+ * @see #setType(QualifiedNameWithBinding)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getLoopVariableDefinition_Type()
+ * @model containment="true"
+ * @generated
+ */
+ QualifiedNameWithBinding getType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.LoopVariableDefinition#getType <em>Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type</em>' containment reference.
+ * @see #getType()
+ * @generated
+ */
+ void setType(QualifiedNameWithBinding value);
+
+ /**
+ * Returns the value of the '<em><b>Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Expression</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Expression</em>' containment reference.
+ * @see #setExpression(Expression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getLoopVariableDefinition_Expression()
+ * @model containment="true"
+ * @generated
+ */
+ Expression getExpression();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.LoopVariableDefinition#getExpression <em>Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Expression</em>' containment reference.
+ * @see #getExpression()
+ * @generated
+ */
+ void setExpression(Expression value);
+
+} // LoopVariableDefinition
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/MultiplicativeExpression.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/MultiplicativeExpression.java
new file mode 100644
index 00000000000..f8b0297c761
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/MultiplicativeExpression.java
@@ -0,0 +1,64 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Multiplicative Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.MultiplicativeExpression#getExp <em>Exp</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.MultiplicativeExpression#getOp <em>Op</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getMultiplicativeExpression()
+ * @model
+ * @generated
+ */
+public interface MultiplicativeExpression extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Exp</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.alf.alf.UnaryExpression}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Exp</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Exp</em>' containment reference list.
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getMultiplicativeExpression_Exp()
+ * @model containment="true"
+ * @generated
+ */
+ EList<UnaryExpression> getExp();
+
+ /**
+ * Returns the value of the '<em><b>Op</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Op</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Op</em>' attribute list.
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getMultiplicativeExpression_Op()
+ * @model unique="false"
+ * @generated
+ */
+ EList<String> getOp();
+
+} // MultiplicativeExpression
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/NUMBER_LITERAL.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/NUMBER_LITERAL.java
new file mode 100644
index 00000000000..b7453b31079
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/NUMBER_LITERAL.java
@@ -0,0 +1,54 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>NUMBER LITERAL</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.NUMBER_LITERAL#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getNUMBER_LITERAL()
+ * @model
+ * @generated
+ */
+public interface NUMBER_LITERAL extends LITERAL
+{
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see #setValue(String)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getNUMBER_LITERAL_Value()
+ * @model
+ * @generated
+ */
+ String getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.NUMBER_LITERAL#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(String value);
+
+} // NUMBER_LITERAL
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/NameExpression.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/NameExpression.java
new file mode 100644
index 00000000000..c99c412f69b
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/NameExpression.java
@@ -0,0 +1,216 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Name Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.NameExpression#getPrefixOp <em>Prefix Op</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.NameExpression#getPath <em>Path</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.NameExpression#getId <em>Id</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.NameExpression#getInvocationCompletion <em>Invocation Completion</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.NameExpression#getSequenceConstructionCompletion <em>Sequence Construction Completion</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.NameExpression#getPostfixOp <em>Postfix Op</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.NameExpression#getSuffix <em>Suffix</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getNameExpression()
+ * @model
+ * @generated
+ */
+public interface NameExpression extends ValueSpecification, NonLiteralValueSpecification
+{
+ /**
+ * Returns the value of the '<em><b>Prefix Op</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Prefix Op</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Prefix Op</em>' attribute.
+ * @see #setPrefixOp(String)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getNameExpression_PrefixOp()
+ * @model
+ * @generated
+ */
+ String getPrefixOp();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.NameExpression#getPrefixOp <em>Prefix Op</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Prefix Op</em>' attribute.
+ * @see #getPrefixOp()
+ * @generated
+ */
+ void setPrefixOp(String value);
+
+ /**
+ * Returns the value of the '<em><b>Path</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Path</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Path</em>' containment reference.
+ * @see #setPath(QualifiedNamePath)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getNameExpression_Path()
+ * @model containment="true"
+ * @generated
+ */
+ QualifiedNamePath getPath();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.NameExpression#getPath <em>Path</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Path</em>' containment reference.
+ * @see #getPath()
+ * @generated
+ */
+ void setPath(QualifiedNamePath value);
+
+ /**
+ * Returns the value of the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Id</em>' attribute.
+ * @see #setId(String)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getNameExpression_Id()
+ * @model
+ * @generated
+ */
+ String getId();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.NameExpression#getId <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Id</em>' attribute.
+ * @see #getId()
+ * @generated
+ */
+ void setId(String value);
+
+ /**
+ * Returns the value of the '<em><b>Invocation Completion</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Invocation Completion</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Invocation Completion</em>' containment reference.
+ * @see #setInvocationCompletion(Tuple)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getNameExpression_InvocationCompletion()
+ * @model containment="true"
+ * @generated
+ */
+ Tuple getInvocationCompletion();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.NameExpression#getInvocationCompletion <em>Invocation Completion</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Invocation Completion</em>' containment reference.
+ * @see #getInvocationCompletion()
+ * @generated
+ */
+ void setInvocationCompletion(Tuple value);
+
+ /**
+ * Returns the value of the '<em><b>Sequence Construction Completion</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Sequence Construction Completion</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Sequence Construction Completion</em>' containment reference.
+ * @see #setSequenceConstructionCompletion(SequenceConstructionOrAccessCompletion)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getNameExpression_SequenceConstructionCompletion()
+ * @model containment="true"
+ * @generated
+ */
+ SequenceConstructionOrAccessCompletion getSequenceConstructionCompletion();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.NameExpression#getSequenceConstructionCompletion <em>Sequence Construction Completion</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Sequence Construction Completion</em>' containment reference.
+ * @see #getSequenceConstructionCompletion()
+ * @generated
+ */
+ void setSequenceConstructionCompletion(SequenceConstructionOrAccessCompletion value);
+
+ /**
+ * Returns the value of the '<em><b>Postfix Op</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Postfix Op</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Postfix Op</em>' attribute.
+ * @see #setPostfixOp(String)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getNameExpression_PostfixOp()
+ * @model
+ * @generated
+ */
+ String getPostfixOp();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.NameExpression#getPostfixOp <em>Postfix Op</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Postfix Op</em>' attribute.
+ * @see #getPostfixOp()
+ * @generated
+ */
+ void setPostfixOp(String value);
+
+ /**
+ * Returns the value of the '<em><b>Suffix</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Suffix</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Suffix</em>' containment reference.
+ * @see #setSuffix(SuffixExpression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getNameExpression_Suffix()
+ * @model containment="true"
+ * @generated
+ */
+ SuffixExpression getSuffix();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.NameExpression#getSuffix <em>Suffix</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Suffix</em>' containment reference.
+ * @see #getSuffix()
+ * @generated
+ */
+ void setSuffix(SuffixExpression value);
+
+} // NameExpression
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/NamedTemplateBinding.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/NamedTemplateBinding.java
new file mode 100644
index 00000000000..04b61edb870
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/NamedTemplateBinding.java
@@ -0,0 +1,82 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Named Template Binding</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.NamedTemplateBinding#getFormal <em>Formal</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.NamedTemplateBinding#getActual <em>Actual</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getNamedTemplateBinding()
+ * @model
+ * @generated
+ */
+public interface NamedTemplateBinding extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Formal</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Formal</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Formal</em>' attribute.
+ * @see #setFormal(String)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getNamedTemplateBinding_Formal()
+ * @model
+ * @generated
+ */
+ String getFormal();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.NamedTemplateBinding#getFormal <em>Formal</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Formal</em>' attribute.
+ * @see #getFormal()
+ * @generated
+ */
+ void setFormal(String value);
+
+ /**
+ * Returns the value of the '<em><b>Actual</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Actual</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Actual</em>' containment reference.
+ * @see #setActual(QualifiedNameWithBinding)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getNamedTemplateBinding_Actual()
+ * @model containment="true"
+ * @generated
+ */
+ QualifiedNameWithBinding getActual();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.NamedTemplateBinding#getActual <em>Actual</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Actual</em>' containment reference.
+ * @see #getActual()
+ * @generated
+ */
+ void setActual(QualifiedNameWithBinding value);
+
+} // NamedTemplateBinding
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/NonEmptyStatementSequence.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/NonEmptyStatementSequence.java
new file mode 100644
index 00000000000..2ae7b389ef8
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/NonEmptyStatementSequence.java
@@ -0,0 +1,47 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Non Empty Statement Sequence</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.NonEmptyStatementSequence#getStatement <em>Statement</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getNonEmptyStatementSequence()
+ * @model
+ * @generated
+ */
+public interface NonEmptyStatementSequence extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Statement</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.alf.alf.DocumentedStatement}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Statement</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Statement</em>' containment reference list.
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getNonEmptyStatementSequence_Statement()
+ * @model containment="true"
+ * @generated
+ */
+ EList<DocumentedStatement> getStatement();
+
+} // NonEmptyStatementSequence
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/NonFinalClause.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/NonFinalClause.java
new file mode 100644
index 00000000000..8c9be8e5726
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/NonFinalClause.java
@@ -0,0 +1,82 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Non Final Clause</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.NonFinalClause#getCondition <em>Condition</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.NonFinalClause#getBlock <em>Block</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getNonFinalClause()
+ * @model
+ * @generated
+ */
+public interface NonFinalClause extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Condition</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Condition</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Condition</em>' containment reference.
+ * @see #setCondition(Expression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getNonFinalClause_Condition()
+ * @model containment="true"
+ * @generated
+ */
+ Expression getCondition();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.NonFinalClause#getCondition <em>Condition</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Condition</em>' containment reference.
+ * @see #getCondition()
+ * @generated
+ */
+ void setCondition(Expression value);
+
+ /**
+ * Returns the value of the '<em><b>Block</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Block</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Block</em>' containment reference.
+ * @see #setBlock(Block)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getNonFinalClause_Block()
+ * @model containment="true"
+ * @generated
+ */
+ Block getBlock();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.NonFinalClause#getBlock <em>Block</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Block</em>' containment reference.
+ * @see #getBlock()
+ * @generated
+ */
+ void setBlock(Block value);
+
+} // NonFinalClause
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/NonLiteralValueSpecification.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/NonLiteralValueSpecification.java
new file mode 100644
index 00000000000..095f9222d1b
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/NonLiteralValueSpecification.java
@@ -0,0 +1,23 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Non Literal Value Specification</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getNonLiteralValueSpecification()
+ * @model
+ * @generated
+ */
+public interface NonLiteralValueSpecification extends EObject
+{
+} // NonLiteralValueSpecification
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/NullExpression.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/NullExpression.java
new file mode 100644
index 00000000000..c1678ca37b3
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/NullExpression.java
@@ -0,0 +1,22 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Null Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getNullExpression()
+ * @model
+ * @generated
+ */
+public interface NullExpression extends ValueSpecification
+{
+} // NullExpression
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/OperationCallExpression.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/OperationCallExpression.java
new file mode 100644
index 00000000000..c39c10d7719
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/OperationCallExpression.java
@@ -0,0 +1,108 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Operation Call Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.OperationCallExpression#getOperationName <em>Operation Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.OperationCallExpression#getTuple <em>Tuple</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.OperationCallExpression#getSuffix <em>Suffix</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getOperationCallExpression()
+ * @model
+ * @generated
+ */
+public interface OperationCallExpression extends SuffixExpression
+{
+ /**
+ * Returns the value of the '<em><b>Operation Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Operation Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Operation Name</em>' attribute.
+ * @see #setOperationName(String)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getOperationCallExpression_OperationName()
+ * @model
+ * @generated
+ */
+ String getOperationName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.OperationCallExpression#getOperationName <em>Operation Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Operation Name</em>' attribute.
+ * @see #getOperationName()
+ * @generated
+ */
+ void setOperationName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Tuple</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Tuple</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Tuple</em>' containment reference.
+ * @see #setTuple(Tuple)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getOperationCallExpression_Tuple()
+ * @model containment="true"
+ * @generated
+ */
+ Tuple getTuple();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.OperationCallExpression#getTuple <em>Tuple</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Tuple</em>' containment reference.
+ * @see #getTuple()
+ * @generated
+ */
+ void setTuple(Tuple value);
+
+ /**
+ * Returns the value of the '<em><b>Suffix</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Suffix</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Suffix</em>' containment reference.
+ * @see #setSuffix(SuffixExpression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getOperationCallExpression_Suffix()
+ * @model containment="true"
+ * @generated
+ */
+ SuffixExpression getSuffix();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.OperationCallExpression#getSuffix <em>Suffix</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Suffix</em>' containment reference.
+ * @see #getSuffix()
+ * @generated
+ */
+ void setSuffix(SuffixExpression value);
+
+} // OperationCallExpression
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ParenthesizedExpression.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ParenthesizedExpression.java
new file mode 100644
index 00000000000..802b85e6881
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ParenthesizedExpression.java
@@ -0,0 +1,108 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Parenthesized Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.ParenthesizedExpression#getExpOrTypeCast <em>Exp Or Type Cast</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.ParenthesizedExpression#getCasted <em>Casted</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.ParenthesizedExpression#getSuffix <em>Suffix</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getParenthesizedExpression()
+ * @model
+ * @generated
+ */
+public interface ParenthesizedExpression extends ValueSpecification, NonLiteralValueSpecification
+{
+ /**
+ * Returns the value of the '<em><b>Exp Or Type Cast</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Exp Or Type Cast</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Exp Or Type Cast</em>' containment reference.
+ * @see #setExpOrTypeCast(Expression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getParenthesizedExpression_ExpOrTypeCast()
+ * @model containment="true"
+ * @generated
+ */
+ Expression getExpOrTypeCast();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.ParenthesizedExpression#getExpOrTypeCast <em>Exp Or Type Cast</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Exp Or Type Cast</em>' containment reference.
+ * @see #getExpOrTypeCast()
+ * @generated
+ */
+ void setExpOrTypeCast(Expression value);
+
+ /**
+ * Returns the value of the '<em><b>Casted</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Casted</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Casted</em>' containment reference.
+ * @see #setCasted(NonLiteralValueSpecification)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getParenthesizedExpression_Casted()
+ * @model containment="true"
+ * @generated
+ */
+ NonLiteralValueSpecification getCasted();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.ParenthesizedExpression#getCasted <em>Casted</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Casted</em>' containment reference.
+ * @see #getCasted()
+ * @generated
+ */
+ void setCasted(NonLiteralValueSpecification value);
+
+ /**
+ * Returns the value of the '<em><b>Suffix</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Suffix</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Suffix</em>' containment reference.
+ * @see #setSuffix(SuffixExpression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getParenthesizedExpression_Suffix()
+ * @model containment="true"
+ * @generated
+ */
+ SuffixExpression getSuffix();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.ParenthesizedExpression#getSuffix <em>Suffix</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Suffix</em>' containment reference.
+ * @see #getSuffix()
+ * @generated
+ */
+ void setSuffix(SuffixExpression value);
+
+} // ParenthesizedExpression
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/PartialSequenceConstructionCompletion.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/PartialSequenceConstructionCompletion.java
new file mode 100644
index 00000000000..a2683e709f1
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/PartialSequenceConstructionCompletion.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Partial Sequence Construction Completion</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.PartialSequenceConstructionCompletion#getExpression <em>Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getPartialSequenceConstructionCompletion()
+ * @model
+ * @generated
+ */
+public interface PartialSequenceConstructionCompletion extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Expression</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Expression</em>' containment reference.
+ * @see #setExpression(SequenceConstructionExpression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getPartialSequenceConstructionCompletion_Expression()
+ * @model containment="true"
+ * @generated
+ */
+ SequenceConstructionExpression getExpression();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.PartialSequenceConstructionCompletion#getExpression <em>Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Expression</em>' containment reference.
+ * @see #getExpression()
+ * @generated
+ */
+ void setExpression(SequenceConstructionExpression value);
+
+} // PartialSequenceConstructionCompletion
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/PrimaryExpression.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/PrimaryExpression.java
new file mode 100644
index 00000000000..66f00d9367d
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/PrimaryExpression.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Primary Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.PrimaryExpression#getPrefix <em>Prefix</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getPrimaryExpression()
+ * @model
+ * @generated
+ */
+public interface PrimaryExpression extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Prefix</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Prefix</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Prefix</em>' containment reference.
+ * @see #setPrefix(ValueSpecification)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getPrimaryExpression_Prefix()
+ * @model containment="true"
+ * @generated
+ */
+ ValueSpecification getPrefix();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.PrimaryExpression#getPrefix <em>Prefix</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Prefix</em>' containment reference.
+ * @see #getPrefix()
+ * @generated
+ */
+ void setPrefix(ValueSpecification value);
+
+} // PrimaryExpression
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/PropertyCallExpression.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/PropertyCallExpression.java
new file mode 100644
index 00000000000..a693b8efcd6
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/PropertyCallExpression.java
@@ -0,0 +1,108 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Property Call Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.PropertyCallExpression#getPropertyName <em>Property Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.PropertyCallExpression#getIndex <em>Index</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.PropertyCallExpression#getSuffix <em>Suffix</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getPropertyCallExpression()
+ * @model
+ * @generated
+ */
+public interface PropertyCallExpression extends SuffixExpression
+{
+ /**
+ * Returns the value of the '<em><b>Property Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Property Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Property Name</em>' attribute.
+ * @see #setPropertyName(String)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getPropertyCallExpression_PropertyName()
+ * @model
+ * @generated
+ */
+ String getPropertyName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.PropertyCallExpression#getPropertyName <em>Property Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Property Name</em>' attribute.
+ * @see #getPropertyName()
+ * @generated
+ */
+ void setPropertyName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Index</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Index</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Index</em>' containment reference.
+ * @see #setIndex(Expression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getPropertyCallExpression_Index()
+ * @model containment="true"
+ * @generated
+ */
+ Expression getIndex();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.PropertyCallExpression#getIndex <em>Index</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Index</em>' containment reference.
+ * @see #getIndex()
+ * @generated
+ */
+ void setIndex(Expression value);
+
+ /**
+ * Returns the value of the '<em><b>Suffix</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Suffix</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Suffix</em>' containment reference.
+ * @see #setSuffix(SuffixExpression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getPropertyCallExpression_Suffix()
+ * @model containment="true"
+ * @generated
+ */
+ SuffixExpression getSuffix();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.PropertyCallExpression#getSuffix <em>Suffix</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Suffix</em>' containment reference.
+ * @see #getSuffix()
+ * @generated
+ */
+ void setSuffix(SuffixExpression value);
+
+} // PropertyCallExpression
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/QualifiedNameList.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/QualifiedNameList.java
new file mode 100644
index 00000000000..cf01c5106c6
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/QualifiedNameList.java
@@ -0,0 +1,47 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Qualified Name List</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.QualifiedNameList#getQualifiedName <em>Qualified Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getQualifiedNameList()
+ * @model
+ * @generated
+ */
+public interface QualifiedNameList extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Qualified Name</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.alf.alf.QualifiedNameWithBinding}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Qualified Name</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Qualified Name</em>' containment reference list.
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getQualifiedNameList_QualifiedName()
+ * @model containment="true"
+ * @generated
+ */
+ EList<QualifiedNameWithBinding> getQualifiedName();
+
+} // QualifiedNameList
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/QualifiedNamePath.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/QualifiedNamePath.java
new file mode 100644
index 00000000000..22c593dd876
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/QualifiedNamePath.java
@@ -0,0 +1,47 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Qualified Name Path</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.QualifiedNamePath#getNamespace <em>Namespace</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getQualifiedNamePath()
+ * @model
+ * @generated
+ */
+public interface QualifiedNamePath extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Namespace</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.alf.alf.UnqualifiedName}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Namespace</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Namespace</em>' containment reference list.
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getQualifiedNamePath_Namespace()
+ * @model containment="true"
+ * @generated
+ */
+ EList<UnqualifiedName> getNamespace();
+
+} // QualifiedNamePath
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/QualifiedNameWithBinding.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/QualifiedNameWithBinding.java
new file mode 100644
index 00000000000..3a90993106d
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/QualifiedNameWithBinding.java
@@ -0,0 +1,109 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Qualified Name With Binding</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.QualifiedNameWithBinding#getId <em>Id</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.QualifiedNameWithBinding#getBinding <em>Binding</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.QualifiedNameWithBinding#getRemaining <em>Remaining</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getQualifiedNameWithBinding()
+ * @model
+ * @generated
+ */
+public interface QualifiedNameWithBinding extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Id</em>' attribute.
+ * @see #setId(String)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getQualifiedNameWithBinding_Id()
+ * @model
+ * @generated
+ */
+ String getId();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.QualifiedNameWithBinding#getId <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Id</em>' attribute.
+ * @see #getId()
+ * @generated
+ */
+ void setId(String value);
+
+ /**
+ * Returns the value of the '<em><b>Binding</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Binding</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Binding</em>' containment reference.
+ * @see #setBinding(TemplateBinding)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getQualifiedNameWithBinding_Binding()
+ * @model containment="true"
+ * @generated
+ */
+ TemplateBinding getBinding();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.QualifiedNameWithBinding#getBinding <em>Binding</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Binding</em>' containment reference.
+ * @see #getBinding()
+ * @generated
+ */
+ void setBinding(TemplateBinding value);
+
+ /**
+ * Returns the value of the '<em><b>Remaining</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Remaining</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Remaining</em>' containment reference.
+ * @see #setRemaining(QualifiedNameWithBinding)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getQualifiedNameWithBinding_Remaining()
+ * @model containment="true"
+ * @generated
+ */
+ QualifiedNameWithBinding getRemaining();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.QualifiedNameWithBinding#getRemaining <em>Remaining</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Remaining</em>' containment reference.
+ * @see #getRemaining()
+ * @generated
+ */
+ void setRemaining(QualifiedNameWithBinding value);
+
+} // QualifiedNameWithBinding
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ReclassifyAllClause.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ReclassifyAllClause.java
new file mode 100644
index 00000000000..84107147722
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ReclassifyAllClause.java
@@ -0,0 +1,23 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Reclassify All Clause</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getReclassifyAllClause()
+ * @model
+ * @generated
+ */
+public interface ReclassifyAllClause extends EObject
+{
+} // ReclassifyAllClause
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/RelationalExpression.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/RelationalExpression.java
new file mode 100644
index 00000000000..1ed9ae1089a
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/RelationalExpression.java
@@ -0,0 +1,109 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Relational Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.RelationalExpression#getLeft <em>Left</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.RelationalExpression#getOp <em>Op</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.RelationalExpression#getRight <em>Right</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getRelationalExpression()
+ * @model
+ * @generated
+ */
+public interface RelationalExpression extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Left</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Left</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Left</em>' containment reference.
+ * @see #setLeft(ShiftExpression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getRelationalExpression_Left()
+ * @model containment="true"
+ * @generated
+ */
+ ShiftExpression getLeft();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.RelationalExpression#getLeft <em>Left</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Left</em>' containment reference.
+ * @see #getLeft()
+ * @generated
+ */
+ void setLeft(ShiftExpression value);
+
+ /**
+ * Returns the value of the '<em><b>Op</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Op</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Op</em>' attribute.
+ * @see #setOp(String)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getRelationalExpression_Op()
+ * @model
+ * @generated
+ */
+ String getOp();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.RelationalExpression#getOp <em>Op</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Op</em>' attribute.
+ * @see #getOp()
+ * @generated
+ */
+ void setOp(String value);
+
+ /**
+ * Returns the value of the '<em><b>Right</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Right</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Right</em>' containment reference.
+ * @see #setRight(ShiftExpression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getRelationalExpression_Right()
+ * @model containment="true"
+ * @generated
+ */
+ ShiftExpression getRight();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.RelationalExpression#getRight <em>Right</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Right</em>' containment reference.
+ * @see #getRight()
+ * @generated
+ */
+ void setRight(ShiftExpression value);
+
+} // RelationalExpression
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ReturnStatement.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ReturnStatement.java
new file mode 100644
index 00000000000..7ff822985a0
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ReturnStatement.java
@@ -0,0 +1,54 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Return Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.ReturnStatement#getExpression <em>Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getReturnStatement()
+ * @model
+ * @generated
+ */
+public interface ReturnStatement extends Statement
+{
+ /**
+ * Returns the value of the '<em><b>Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Expression</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Expression</em>' containment reference.
+ * @see #setExpression(Expression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getReturnStatement_Expression()
+ * @model containment="true"
+ * @generated
+ */
+ Expression getExpression();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.ReturnStatement#getExpression <em>Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Expression</em>' containment reference.
+ * @see #getExpression()
+ * @generated
+ */
+ void setExpression(Expression value);
+
+} // ReturnStatement
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/STRING_LITERAL.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/STRING_LITERAL.java
new file mode 100644
index 00000000000..283bb5ee9d3
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/STRING_LITERAL.java
@@ -0,0 +1,54 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>STRING LITERAL</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.STRING_LITERAL#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSTRING_LITERAL()
+ * @model
+ * @generated
+ */
+public interface STRING_LITERAL extends LITERAL
+{
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see #setValue(String)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSTRING_LITERAL_Value()
+ * @model
+ * @generated
+ */
+ String getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.STRING_LITERAL#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(String value);
+
+} // STRING_LITERAL
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SelectOrRejectOperation.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SelectOrRejectOperation.java
new file mode 100644
index 00000000000..ba6c0a273e3
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SelectOrRejectOperation.java
@@ -0,0 +1,57 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Select Or Reject Operation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.SelectOrRejectOperation#getOp <em>Op</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSelectOrRejectOperation()
+ * @model
+ * @generated
+ */
+public interface SelectOrRejectOperation extends SequenceExpansionExpression
+{
+ /**
+ * Returns the value of the '<em><b>Op</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.papyrus.alf.alf.SelectOrRejectOperator}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Op</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Op</em>' attribute.
+ * @see org.eclipse.papyrus.alf.alf.SelectOrRejectOperator
+ * @see #setOp(SelectOrRejectOperator)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSelectOrRejectOperation_Op()
+ * @model
+ * @generated
+ */
+ SelectOrRejectOperator getOp();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.SelectOrRejectOperation#getOp <em>Op</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Op</em>' attribute.
+ * @see org.eclipse.papyrus.alf.alf.SelectOrRejectOperator
+ * @see #getOp()
+ * @generated
+ */
+ void setOp(SelectOrRejectOperator value);
+
+} // SelectOrRejectOperation
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SelectOrRejectOperator.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SelectOrRejectOperator.java
new file mode 100644
index 00000000000..18f445fc0f4
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SelectOrRejectOperator.java
@@ -0,0 +1,227 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Select Or Reject Operator</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSelectOrRejectOperator()
+ * @model
+ * @generated
+ */
+public enum SelectOrRejectOperator implements Enumerator
+{
+ /**
+ * The '<em><b>SELECT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SELECT_VALUE
+ * @generated
+ * @ordered
+ */
+ SELECT(0, "SELECT", "select"),
+
+ /**
+ * The '<em><b>REJECT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #REJECT_VALUE
+ * @generated
+ * @ordered
+ */
+ REJECT(1, "REJECT", "reject");
+
+ /**
+ * The '<em><b>SELECT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SELECT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SELECT
+ * @model literal="select"
+ * @generated
+ * @ordered
+ */
+ public static final int SELECT_VALUE = 0;
+
+ /**
+ * The '<em><b>REJECT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>REJECT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #REJECT
+ * @model literal="reject"
+ * @generated
+ * @ordered
+ */
+ public static final int REJECT_VALUE = 1;
+
+ /**
+ * An array of all the '<em><b>Select Or Reject Operator</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final SelectOrRejectOperator[] VALUES_ARRAY =
+ new SelectOrRejectOperator[]
+ {
+ SELECT,
+ REJECT,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Select Or Reject Operator</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<SelectOrRejectOperator> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Select Or Reject Operator</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SelectOrRejectOperator get(String literal)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ SelectOrRejectOperator result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Select Or Reject Operator</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SelectOrRejectOperator getByName(String name)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ SelectOrRejectOperator result = VALUES_ARRAY[i];
+ if (result.getName().equals(name))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Select Or Reject Operator</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SelectOrRejectOperator get(int value)
+ {
+ switch (value)
+ {
+ case SELECT_VALUE: return SELECT;
+ case REJECT_VALUE: return REJECT;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private SelectOrRejectOperator(int value, String name, String literal)
+ {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral()
+ {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ return literal;
+ }
+
+} //SelectOrRejectOperator
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SequenceConstructionExpression.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SequenceConstructionExpression.java
new file mode 100644
index 00000000000..00e50d6b48f
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SequenceConstructionExpression.java
@@ -0,0 +1,72 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Sequence Construction Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.SequenceConstructionExpression#getSequenceElement <em>Sequence Element</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.SequenceConstructionExpression#getRangeUpper <em>Range Upper</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSequenceConstructionExpression()
+ * @model
+ * @generated
+ */
+public interface SequenceConstructionExpression extends SequenceElement
+{
+ /**
+ * Returns the value of the '<em><b>Sequence Element</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.alf.alf.SequenceElement}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Sequence Element</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Sequence Element</em>' containment reference list.
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSequenceConstructionExpression_SequenceElement()
+ * @model containment="true"
+ * @generated
+ */
+ EList<SequenceElement> getSequenceElement();
+
+ /**
+ * Returns the value of the '<em><b>Range Upper</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Range Upper</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Range Upper</em>' containment reference.
+ * @see #setRangeUpper(Expression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSequenceConstructionExpression_RangeUpper()
+ * @model containment="true"
+ * @generated
+ */
+ Expression getRangeUpper();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.SequenceConstructionExpression#getRangeUpper <em>Range Upper</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Range Upper</em>' containment reference.
+ * @see #getRangeUpper()
+ * @generated
+ */
+ void setRangeUpper(Expression value);
+
+} // SequenceConstructionExpression
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SequenceConstructionOrAccessCompletion.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SequenceConstructionOrAccessCompletion.java
new file mode 100644
index 00000000000..9bf83116311
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SequenceConstructionOrAccessCompletion.java
@@ -0,0 +1,136 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Sequence Construction Or Access Completion</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.SequenceConstructionOrAccessCompletion#isMultiplicityIndicator <em>Multiplicity Indicator</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.SequenceConstructionOrAccessCompletion#getAccessCompletion <em>Access Completion</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.SequenceConstructionOrAccessCompletion#getSequenceCompletion <em>Sequence Completion</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.SequenceConstructionOrAccessCompletion#getExpression <em>Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSequenceConstructionOrAccessCompletion()
+ * @model
+ * @generated
+ */
+public interface SequenceConstructionOrAccessCompletion extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Multiplicity Indicator</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Multiplicity Indicator</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Multiplicity Indicator</em>' attribute.
+ * @see #setMultiplicityIndicator(boolean)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSequenceConstructionOrAccessCompletion_MultiplicityIndicator()
+ * @model
+ * @generated
+ */
+ boolean isMultiplicityIndicator();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.SequenceConstructionOrAccessCompletion#isMultiplicityIndicator <em>Multiplicity Indicator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Multiplicity Indicator</em>' attribute.
+ * @see #isMultiplicityIndicator()
+ * @generated
+ */
+ void setMultiplicityIndicator(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Access Completion</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Access Completion</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Access Completion</em>' containment reference.
+ * @see #setAccessCompletion(AccessCompletion)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSequenceConstructionOrAccessCompletion_AccessCompletion()
+ * @model containment="true"
+ * @generated
+ */
+ AccessCompletion getAccessCompletion();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.SequenceConstructionOrAccessCompletion#getAccessCompletion <em>Access Completion</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Access Completion</em>' containment reference.
+ * @see #getAccessCompletion()
+ * @generated
+ */
+ void setAccessCompletion(AccessCompletion value);
+
+ /**
+ * Returns the value of the '<em><b>Sequence Completion</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Sequence Completion</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Sequence Completion</em>' containment reference.
+ * @see #setSequenceCompletion(PartialSequenceConstructionCompletion)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSequenceConstructionOrAccessCompletion_SequenceCompletion()
+ * @model containment="true"
+ * @generated
+ */
+ PartialSequenceConstructionCompletion getSequenceCompletion();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.SequenceConstructionOrAccessCompletion#getSequenceCompletion <em>Sequence Completion</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Sequence Completion</em>' containment reference.
+ * @see #getSequenceCompletion()
+ * @generated
+ */
+ void setSequenceCompletion(PartialSequenceConstructionCompletion value);
+
+ /**
+ * Returns the value of the '<em><b>Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Expression</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Expression</em>' containment reference.
+ * @see #setExpression(SequenceConstructionExpression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSequenceConstructionOrAccessCompletion_Expression()
+ * @model containment="true"
+ * @generated
+ */
+ SequenceConstructionExpression getExpression();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.SequenceConstructionOrAccessCompletion#getExpression <em>Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Expression</em>' containment reference.
+ * @see #getExpression()
+ * @generated
+ */
+ void setExpression(SequenceConstructionExpression value);
+
+} // SequenceConstructionOrAccessCompletion
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SequenceElement.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SequenceElement.java
new file mode 100644
index 00000000000..c8de514148d
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SequenceElement.java
@@ -0,0 +1,23 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Sequence Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSequenceElement()
+ * @model
+ * @generated
+ */
+public interface SequenceElement extends EObject
+{
+} // SequenceElement
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SequenceExpansionExpression.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SequenceExpansionExpression.java
new file mode 100644
index 00000000000..a70245105fa
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SequenceExpansionExpression.java
@@ -0,0 +1,108 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Sequence Expansion Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.SequenceExpansionExpression#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.SequenceExpansionExpression#getExpr <em>Expr</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.SequenceExpansionExpression#getSuffix <em>Suffix</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSequenceExpansionExpression()
+ * @model
+ * @generated
+ */
+public interface SequenceExpansionExpression extends SuffixExpression
+{
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSequenceExpansionExpression_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.SequenceExpansionExpression#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Expr</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Expr</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Expr</em>' containment reference.
+ * @see #setExpr(Expression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSequenceExpansionExpression_Expr()
+ * @model containment="true"
+ * @generated
+ */
+ Expression getExpr();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.SequenceExpansionExpression#getExpr <em>Expr</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Expr</em>' containment reference.
+ * @see #getExpr()
+ * @generated
+ */
+ void setExpr(Expression value);
+
+ /**
+ * Returns the value of the '<em><b>Suffix</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Suffix</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Suffix</em>' containment reference.
+ * @see #setSuffix(SuffixExpression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSequenceExpansionExpression_Suffix()
+ * @model containment="true"
+ * @generated
+ */
+ SuffixExpression getSuffix();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.SequenceExpansionExpression#getSuffix <em>Suffix</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Suffix</em>' containment reference.
+ * @see #getSuffix()
+ * @generated
+ */
+ void setSuffix(SuffixExpression value);
+
+} // SequenceExpansionExpression
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SequenceOperationExpression.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SequenceOperationExpression.java
new file mode 100644
index 00000000000..45db6ee590f
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SequenceOperationExpression.java
@@ -0,0 +1,108 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Sequence Operation Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.SequenceOperationExpression#getOperationName <em>Operation Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.SequenceOperationExpression#getTuple <em>Tuple</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.SequenceOperationExpression#getSuffix <em>Suffix</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSequenceOperationExpression()
+ * @model
+ * @generated
+ */
+public interface SequenceOperationExpression extends SuffixExpression
+{
+ /**
+ * Returns the value of the '<em><b>Operation Name</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Operation Name</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Operation Name</em>' containment reference.
+ * @see #setOperationName(QualifiedNameWithBinding)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSequenceOperationExpression_OperationName()
+ * @model containment="true"
+ * @generated
+ */
+ QualifiedNameWithBinding getOperationName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.SequenceOperationExpression#getOperationName <em>Operation Name</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Operation Name</em>' containment reference.
+ * @see #getOperationName()
+ * @generated
+ */
+ void setOperationName(QualifiedNameWithBinding value);
+
+ /**
+ * Returns the value of the '<em><b>Tuple</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Tuple</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Tuple</em>' containment reference.
+ * @see #setTuple(Tuple)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSequenceOperationExpression_Tuple()
+ * @model containment="true"
+ * @generated
+ */
+ Tuple getTuple();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.SequenceOperationExpression#getTuple <em>Tuple</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Tuple</em>' containment reference.
+ * @see #getTuple()
+ * @generated
+ */
+ void setTuple(Tuple value);
+
+ /**
+ * Returns the value of the '<em><b>Suffix</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Suffix</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Suffix</em>' containment reference.
+ * @see #setSuffix(SuffixExpression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSequenceOperationExpression_Suffix()
+ * @model containment="true"
+ * @generated
+ */
+ SuffixExpression getSuffix();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.SequenceOperationExpression#getSuffix <em>Suffix</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Suffix</em>' containment reference.
+ * @see #getSuffix()
+ * @generated
+ */
+ void setSuffix(SuffixExpression value);
+
+} // SequenceOperationExpression
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SequenceReductionExpression.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SequenceReductionExpression.java
new file mode 100644
index 00000000000..4980b02124e
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SequenceReductionExpression.java
@@ -0,0 +1,108 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Sequence Reduction Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.SequenceReductionExpression#isIsOrdered <em>Is Ordered</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.SequenceReductionExpression#getBehavior <em>Behavior</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.SequenceReductionExpression#getSuffix <em>Suffix</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSequenceReductionExpression()
+ * @model
+ * @generated
+ */
+public interface SequenceReductionExpression extends SuffixExpression
+{
+ /**
+ * Returns the value of the '<em><b>Is Ordered</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Is Ordered</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Is Ordered</em>' attribute.
+ * @see #setIsOrdered(boolean)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSequenceReductionExpression_IsOrdered()
+ * @model
+ * @generated
+ */
+ boolean isIsOrdered();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.SequenceReductionExpression#isIsOrdered <em>Is Ordered</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Is Ordered</em>' attribute.
+ * @see #isIsOrdered()
+ * @generated
+ */
+ void setIsOrdered(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Behavior</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Behavior</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Behavior</em>' containment reference.
+ * @see #setBehavior(QualifiedNameWithBinding)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSequenceReductionExpression_Behavior()
+ * @model containment="true"
+ * @generated
+ */
+ QualifiedNameWithBinding getBehavior();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.SequenceReductionExpression#getBehavior <em>Behavior</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Behavior</em>' containment reference.
+ * @see #getBehavior()
+ * @generated
+ */
+ void setBehavior(QualifiedNameWithBinding value);
+
+ /**
+ * Returns the value of the '<em><b>Suffix</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Suffix</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Suffix</em>' containment reference.
+ * @see #setSuffix(SuffixExpression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSequenceReductionExpression_Suffix()
+ * @model containment="true"
+ * @generated
+ */
+ SuffixExpression getSuffix();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.SequenceReductionExpression#getSuffix <em>Suffix</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Suffix</em>' containment reference.
+ * @see #getSuffix()
+ * @generated
+ */
+ void setSuffix(SuffixExpression value);
+
+} // SequenceReductionExpression
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SequentialClauses.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SequentialClauses.java
new file mode 100644
index 00000000000..7e789b0e1db
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SequentialClauses.java
@@ -0,0 +1,47 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Sequential Clauses</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.SequentialClauses#getConccurentClauses <em>Conccurent Clauses</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSequentialClauses()
+ * @model
+ * @generated
+ */
+public interface SequentialClauses extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Conccurent Clauses</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.alf.alf.ConcurrentClauses}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Conccurent Clauses</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Conccurent Clauses</em>' containment reference list.
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSequentialClauses_ConccurentClauses()
+ * @model containment="true"
+ * @generated
+ */
+ EList<ConcurrentClauses> getConccurentClauses();
+
+} // SequentialClauses
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ShiftExpression.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ShiftExpression.java
new file mode 100644
index 00000000000..544dbbbd520
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ShiftExpression.java
@@ -0,0 +1,74 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Shift Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.ShiftExpression#getExp <em>Exp</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.ShiftExpression#getOp <em>Op</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getShiftExpression()
+ * @model
+ * @generated
+ */
+public interface ShiftExpression extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Exp</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.alf.alf.AdditiveExpression}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Exp</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Exp</em>' containment reference list.
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getShiftExpression_Exp()
+ * @model containment="true"
+ * @generated
+ */
+ EList<AdditiveExpression> getExp();
+
+ /**
+ * Returns the value of the '<em><b>Op</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Op</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Op</em>' attribute.
+ * @see #setOp(String)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getShiftExpression_Op()
+ * @model
+ * @generated
+ */
+ String getOp();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.ShiftExpression#getOp <em>Op</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Op</em>' attribute.
+ * @see #getOp()
+ * @generated
+ */
+ void setOp(String value);
+
+} // ShiftExpression
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SimpleAcceptStatementCompletion.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SimpleAcceptStatementCompletion.java
new file mode 100644
index 00000000000..920485958d4
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SimpleAcceptStatementCompletion.java
@@ -0,0 +1,23 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Simple Accept Statement Completion</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSimpleAcceptStatementCompletion()
+ * @model
+ * @generated
+ */
+public interface SimpleAcceptStatementCompletion extends EObject
+{
+} // SimpleAcceptStatementCompletion
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/Statement.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/Statement.java
new file mode 100644
index 00000000000..ac1863f7e84
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/Statement.java
@@ -0,0 +1,23 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getStatement()
+ * @model
+ * @generated
+ */
+public interface Statement extends EObject
+{
+} // Statement
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/StatementSequence.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/StatementSequence.java
new file mode 100644
index 00000000000..2b4bc23c7dc
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/StatementSequence.java
@@ -0,0 +1,47 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Statement Sequence</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.StatementSequence#getStatements <em>Statements</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getStatementSequence()
+ * @model
+ * @generated
+ */
+public interface StatementSequence extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Statements</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.alf.alf.DocumentedStatement}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Statements</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Statements</em>' containment reference list.
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getStatementSequence_Statements()
+ * @model containment="true"
+ * @generated
+ */
+ EList<DocumentedStatement> getStatements();
+
+} // StatementSequence
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SuffixExpression.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SuffixExpression.java
new file mode 100644
index 00000000000..154df946b63
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SuffixExpression.java
@@ -0,0 +1,23 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Suffix Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSuffixExpression()
+ * @model
+ * @generated
+ */
+public interface SuffixExpression extends EObject
+{
+} // SuffixExpression
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SuperInvocationExpression.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SuperInvocationExpression.java
new file mode 100644
index 00000000000..87cf2feb833
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SuperInvocationExpression.java
@@ -0,0 +1,81 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Super Invocation Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.SuperInvocationExpression#getTuple <em>Tuple</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.SuperInvocationExpression#getOperationName <em>Operation Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSuperInvocationExpression()
+ * @model
+ * @generated
+ */
+public interface SuperInvocationExpression extends ValueSpecification, NonLiteralValueSpecification
+{
+ /**
+ * Returns the value of the '<em><b>Tuple</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Tuple</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Tuple</em>' containment reference.
+ * @see #setTuple(Tuple)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSuperInvocationExpression_Tuple()
+ * @model containment="true"
+ * @generated
+ */
+ Tuple getTuple();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.SuperInvocationExpression#getTuple <em>Tuple</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Tuple</em>' containment reference.
+ * @see #getTuple()
+ * @generated
+ */
+ void setTuple(Tuple value);
+
+ /**
+ * Returns the value of the '<em><b>Operation Name</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Operation Name</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Operation Name</em>' containment reference.
+ * @see #setOperationName(QualifiedNameWithBinding)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSuperInvocationExpression_OperationName()
+ * @model containment="true"
+ * @generated
+ */
+ QualifiedNameWithBinding getOperationName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.SuperInvocationExpression#getOperationName <em>Operation Name</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Operation Name</em>' containment reference.
+ * @see #getOperationName()
+ * @generated
+ */
+ void setOperationName(QualifiedNameWithBinding value);
+
+} // SuperInvocationExpression
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SuperInvocationStatement.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SuperInvocationStatement.java
new file mode 100644
index 00000000000..63b2f4fc520
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SuperInvocationStatement.java
@@ -0,0 +1,54 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Super Invocation Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.SuperInvocationStatement#get_super <em>super</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSuperInvocationStatement()
+ * @model
+ * @generated
+ */
+public interface SuperInvocationStatement extends Statement
+{
+ /**
+ * Returns the value of the '<em><b>super</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>super</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>super</em>' containment reference.
+ * @see #set_super(SuperInvocationExpression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSuperInvocationStatement__super()
+ * @model containment="true"
+ * @generated
+ */
+ SuperInvocationExpression get_super();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.SuperInvocationStatement#get_super <em>super</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>super</em>' containment reference.
+ * @see #get_super()
+ * @generated
+ */
+ void set_super(SuperInvocationExpression value);
+
+} // SuperInvocationStatement
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SwitchCase.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SwitchCase.java
new file mode 100644
index 00000000000..e3d546c8d26
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SwitchCase.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Switch Case</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.SwitchCase#getExpression <em>Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSwitchCase()
+ * @model
+ * @generated
+ */
+public interface SwitchCase extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Expression</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Expression</em>' containment reference.
+ * @see #setExpression(Expression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSwitchCase_Expression()
+ * @model containment="true"
+ * @generated
+ */
+ Expression getExpression();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.SwitchCase#getExpression <em>Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Expression</em>' containment reference.
+ * @see #getExpression()
+ * @generated
+ */
+ void setExpression(Expression value);
+
+} // SwitchCase
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SwitchClause.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SwitchClause.java
new file mode 100644
index 00000000000..baf6f2cb550
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SwitchClause.java
@@ -0,0 +1,74 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Switch Clause</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.SwitchClause#getSwitchCase <em>Switch Case</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.SwitchClause#getStatementSequence <em>Statement Sequence</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSwitchClause()
+ * @model
+ * @generated
+ */
+public interface SwitchClause extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Switch Case</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.alf.alf.SwitchCase}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Switch Case</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Switch Case</em>' containment reference list.
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSwitchClause_SwitchCase()
+ * @model containment="true"
+ * @generated
+ */
+ EList<SwitchCase> getSwitchCase();
+
+ /**
+ * Returns the value of the '<em><b>Statement Sequence</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Statement Sequence</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Statement Sequence</em>' containment reference.
+ * @see #setStatementSequence(NonEmptyStatementSequence)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSwitchClause_StatementSequence()
+ * @model containment="true"
+ * @generated
+ */
+ NonEmptyStatementSequence getStatementSequence();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.SwitchClause#getStatementSequence <em>Statement Sequence</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Statement Sequence</em>' containment reference.
+ * @see #getStatementSequence()
+ * @generated
+ */
+ void setStatementSequence(NonEmptyStatementSequence value);
+
+} // SwitchClause
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SwitchDefaultClause.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SwitchDefaultClause.java
new file mode 100644
index 00000000000..40ec523d57b
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SwitchDefaultClause.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Switch Default Clause</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.SwitchDefaultClause#getStatementSequence <em>Statement Sequence</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSwitchDefaultClause()
+ * @model
+ * @generated
+ */
+public interface SwitchDefaultClause extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Statement Sequence</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Statement Sequence</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Statement Sequence</em>' containment reference.
+ * @see #setStatementSequence(NonEmptyStatementSequence)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSwitchDefaultClause_StatementSequence()
+ * @model containment="true"
+ * @generated
+ */
+ NonEmptyStatementSequence getStatementSequence();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.SwitchDefaultClause#getStatementSequence <em>Statement Sequence</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Statement Sequence</em>' containment reference.
+ * @see #getStatementSequence()
+ * @generated
+ */
+ void setStatementSequence(NonEmptyStatementSequence value);
+
+} // SwitchDefaultClause
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SwitchStatement.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SwitchStatement.java
new file mode 100644
index 00000000000..26f8a5dee20
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/SwitchStatement.java
@@ -0,0 +1,99 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Switch Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.SwitchStatement#getExpression <em>Expression</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.SwitchStatement#getSwitchClause <em>Switch Clause</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.SwitchStatement#getDefaultClause <em>Default Clause</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSwitchStatement()
+ * @model
+ * @generated
+ */
+public interface SwitchStatement extends Statement
+{
+ /**
+ * Returns the value of the '<em><b>Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Expression</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Expression</em>' containment reference.
+ * @see #setExpression(Expression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSwitchStatement_Expression()
+ * @model containment="true"
+ * @generated
+ */
+ Expression getExpression();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.SwitchStatement#getExpression <em>Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Expression</em>' containment reference.
+ * @see #getExpression()
+ * @generated
+ */
+ void setExpression(Expression value);
+
+ /**
+ * Returns the value of the '<em><b>Switch Clause</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.alf.alf.SwitchClause}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Switch Clause</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Switch Clause</em>' containment reference list.
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSwitchStatement_SwitchClause()
+ * @model containment="true"
+ * @generated
+ */
+ EList<SwitchClause> getSwitchClause();
+
+ /**
+ * Returns the value of the '<em><b>Default Clause</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Default Clause</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Default Clause</em>' containment reference.
+ * @see #setDefaultClause(SwitchDefaultClause)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getSwitchStatement_DefaultClause()
+ * @model containment="true"
+ * @generated
+ */
+ SwitchDefaultClause getDefaultClause();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.SwitchStatement#getDefaultClause <em>Default Clause</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Default Clause</em>' containment reference.
+ * @see #getDefaultClause()
+ * @generated
+ */
+ void setDefaultClause(SwitchDefaultClause value);
+
+} // SwitchStatement
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/TemplateBinding.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/TemplateBinding.java
new file mode 100644
index 00000000000..4e9ff6eea46
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/TemplateBinding.java
@@ -0,0 +1,47 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Template Binding</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.TemplateBinding#getBindings <em>Bindings</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getTemplateBinding()
+ * @model
+ * @generated
+ */
+public interface TemplateBinding extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Bindings</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.alf.alf.NamedTemplateBinding}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Bindings</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Bindings</em>' containment reference list.
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getTemplateBinding_Bindings()
+ * @model containment="true"
+ * @generated
+ */
+ EList<NamedTemplateBinding> getBindings();
+
+} // TemplateBinding
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/Test.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/Test.java
new file mode 100644
index 00000000000..82953be4fe4
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/Test.java
@@ -0,0 +1,108 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Test</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.Test#getExpression <em>Expression</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.Test#getAssignExpression <em>Assign Expression</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.Test#getStatements <em>Statements</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.Test#getBlock <em>Block</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getTest()
+ * @model
+ * @generated
+ */
+public interface Test extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Expression</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.alf.alf.Expression}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Expression</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Expression</em>' containment reference list.
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getTest_Expression()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Expression> getExpression();
+
+ /**
+ * Returns the value of the '<em><b>Assign Expression</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.alf.alf.AssignmentCompletion}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Assign Expression</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Assign Expression</em>' containment reference list.
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getTest_AssignExpression()
+ * @model containment="true"
+ * @generated
+ */
+ EList<AssignmentCompletion> getAssignExpression();
+
+ /**
+ * Returns the value of the '<em><b>Statements</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.alf.alf.Statement}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Statements</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Statements</em>' containment reference list.
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getTest_Statements()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Statement> getStatements();
+
+ /**
+ * Returns the value of the '<em><b>Block</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Block</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Block</em>' containment reference.
+ * @see #setBlock(Block)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getTest_Block()
+ * @model containment="true"
+ * @generated
+ */
+ Block getBlock();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.Test#getBlock <em>Block</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Block</em>' containment reference.
+ * @see #getBlock()
+ * @generated
+ */
+ void setBlock(Block value);
+
+} // Test
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ThisExpression.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ThisExpression.java
new file mode 100644
index 00000000000..fdc62416931
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ThisExpression.java
@@ -0,0 +1,54 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>This Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.ThisExpression#getSuffix <em>Suffix</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getThisExpression()
+ * @model
+ * @generated
+ */
+public interface ThisExpression extends ValueSpecification, NonLiteralValueSpecification
+{
+ /**
+ * Returns the value of the '<em><b>Suffix</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Suffix</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Suffix</em>' containment reference.
+ * @see #setSuffix(SuffixExpression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getThisExpression_Suffix()
+ * @model containment="true"
+ * @generated
+ */
+ SuffixExpression getSuffix();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.ThisExpression#getSuffix <em>Suffix</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Suffix</em>' containment reference.
+ * @see #getSuffix()
+ * @generated
+ */
+ void setSuffix(SuffixExpression value);
+
+} // ThisExpression
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ThisInvocationStatement.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ThisInvocationStatement.java
new file mode 100644
index 00000000000..2089d051c04
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ThisInvocationStatement.java
@@ -0,0 +1,81 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>This Invocation Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.ThisInvocationStatement#get_this <em>this</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.ThisInvocationStatement#getAssignmentCompletion <em>Assignment Completion</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getThisInvocationStatement()
+ * @model
+ * @generated
+ */
+public interface ThisInvocationStatement extends Statement
+{
+ /**
+ * Returns the value of the '<em><b>this</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>this</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>this</em>' containment reference.
+ * @see #set_this(ThisExpression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getThisInvocationStatement__this()
+ * @model containment="true"
+ * @generated
+ */
+ ThisExpression get_this();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.ThisInvocationStatement#get_this <em>this</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>this</em>' containment reference.
+ * @see #get_this()
+ * @generated
+ */
+ void set_this(ThisExpression value);
+
+ /**
+ * Returns the value of the '<em><b>Assignment Completion</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Assignment Completion</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Assignment Completion</em>' containment reference.
+ * @see #setAssignmentCompletion(AssignmentCompletion)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getThisInvocationStatement_AssignmentCompletion()
+ * @model containment="true"
+ * @generated
+ */
+ AssignmentCompletion getAssignmentCompletion();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.ThisInvocationStatement#getAssignmentCompletion <em>Assignment Completion</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Assignment Completion</em>' containment reference.
+ * @see #getAssignmentCompletion()
+ * @generated
+ */
+ void setAssignmentCompletion(AssignmentCompletion value);
+
+} // ThisInvocationStatement
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/Tuple.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/Tuple.java
new file mode 100644
index 00000000000..da3f1e02209
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/Tuple.java
@@ -0,0 +1,47 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Tuple</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.Tuple#getTupleElements <em>Tuple Elements</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getTuple()
+ * @model
+ * @generated
+ */
+public interface Tuple extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Tuple Elements</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.alf.alf.TupleElement}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Tuple Elements</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Tuple Elements</em>' containment reference list.
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getTuple_TupleElements()
+ * @model containment="true"
+ * @generated
+ */
+ EList<TupleElement> getTupleElements();
+
+} // Tuple
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/TupleElement.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/TupleElement.java
new file mode 100644
index 00000000000..c6a9860ede5
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/TupleElement.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Tuple Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.TupleElement#getArgument <em>Argument</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getTupleElement()
+ * @model
+ * @generated
+ */
+public interface TupleElement extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Argument</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Argument</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Argument</em>' containment reference.
+ * @see #setArgument(Expression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getTupleElement_Argument()
+ * @model containment="true"
+ * @generated
+ */
+ Expression getArgument();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.TupleElement#getArgument <em>Argument</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Argument</em>' containment reference.
+ * @see #getArgument()
+ * @generated
+ */
+ void setArgument(Expression value);
+
+} // TupleElement
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/UNLIMITED_LITERAL.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/UNLIMITED_LITERAL.java
new file mode 100644
index 00000000000..76ad4828da5
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/UNLIMITED_LITERAL.java
@@ -0,0 +1,22 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>UNLIMITED LITERAL</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getUNLIMITED_LITERAL()
+ * @model
+ * @generated
+ */
+public interface UNLIMITED_LITERAL extends NUMBER_LITERAL
+{
+} // UNLIMITED_LITERAL
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/UnaryExpression.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/UnaryExpression.java
new file mode 100644
index 00000000000..0ee6ce581fb
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/UnaryExpression.java
@@ -0,0 +1,82 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Unary Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.UnaryExpression#getOp <em>Op</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.UnaryExpression#getExp <em>Exp</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getUnaryExpression()
+ * @model
+ * @generated
+ */
+public interface UnaryExpression extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Op</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Op</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Op</em>' attribute.
+ * @see #setOp(String)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getUnaryExpression_Op()
+ * @model
+ * @generated
+ */
+ String getOp();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.UnaryExpression#getOp <em>Op</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Op</em>' attribute.
+ * @see #getOp()
+ * @generated
+ */
+ void setOp(String value);
+
+ /**
+ * Returns the value of the '<em><b>Exp</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Exp</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Exp</em>' containment reference.
+ * @see #setExp(PrimaryExpression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getUnaryExpression_Exp()
+ * @model containment="true"
+ * @generated
+ */
+ PrimaryExpression getExp();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.UnaryExpression#getExp <em>Exp</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Exp</em>' containment reference.
+ * @see #getExp()
+ * @generated
+ */
+ void setExp(PrimaryExpression value);
+
+} // UnaryExpression
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/UnqualifiedName.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/UnqualifiedName.java
new file mode 100644
index 00000000000..12b292b1930
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/UnqualifiedName.java
@@ -0,0 +1,82 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Unqualified Name</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.UnqualifiedName#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.UnqualifiedName#getTemplateBinding <em>Template Binding</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getUnqualifiedName()
+ * @model
+ * @generated
+ */
+public interface UnqualifiedName extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getUnqualifiedName_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.UnqualifiedName#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Template Binding</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Template Binding</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Template Binding</em>' containment reference.
+ * @see #setTemplateBinding(TemplateBinding)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getUnqualifiedName_TemplateBinding()
+ * @model containment="true"
+ * @generated
+ */
+ TemplateBinding getTemplateBinding();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.UnqualifiedName#getTemplateBinding <em>Template Binding</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Template Binding</em>' containment reference.
+ * @see #getTemplateBinding()
+ * @generated
+ */
+ void setTemplateBinding(TemplateBinding value);
+
+} // UnqualifiedName
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ValueSpecification.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ValueSpecification.java
new file mode 100644
index 00000000000..72e8369f878
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/ValueSpecification.java
@@ -0,0 +1,23 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Value Specification</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getValueSpecification()
+ * @model
+ * @generated
+ */
+public interface ValueSpecification extends EObject
+{
+} // ValueSpecification
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/VariableDeclarationCompletion.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/VariableDeclarationCompletion.java
new file mode 100644
index 00000000000..589df2b7970
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/VariableDeclarationCompletion.java
@@ -0,0 +1,109 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Variable Declaration Completion</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.VariableDeclarationCompletion#isMultiplicityIndicator <em>Multiplicity Indicator</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.VariableDeclarationCompletion#getVariableName <em>Variable Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.VariableDeclarationCompletion#getInitValue <em>Init Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getVariableDeclarationCompletion()
+ * @model
+ * @generated
+ */
+public interface VariableDeclarationCompletion extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Multiplicity Indicator</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Multiplicity Indicator</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Multiplicity Indicator</em>' attribute.
+ * @see #setMultiplicityIndicator(boolean)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getVariableDeclarationCompletion_MultiplicityIndicator()
+ * @model
+ * @generated
+ */
+ boolean isMultiplicityIndicator();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.VariableDeclarationCompletion#isMultiplicityIndicator <em>Multiplicity Indicator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Multiplicity Indicator</em>' attribute.
+ * @see #isMultiplicityIndicator()
+ * @generated
+ */
+ void setMultiplicityIndicator(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Variable Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Variable Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Variable Name</em>' attribute.
+ * @see #setVariableName(String)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getVariableDeclarationCompletion_VariableName()
+ * @model
+ * @generated
+ */
+ String getVariableName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.VariableDeclarationCompletion#getVariableName <em>Variable Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Variable Name</em>' attribute.
+ * @see #getVariableName()
+ * @generated
+ */
+ void setVariableName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Init Value</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Init Value</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Init Value</em>' containment reference.
+ * @see #setInitValue(AssignmentCompletion)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getVariableDeclarationCompletion_InitValue()
+ * @model containment="true"
+ * @generated
+ */
+ AssignmentCompletion getInitValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.VariableDeclarationCompletion#getInitValue <em>Init Value</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Init Value</em>' containment reference.
+ * @see #getInitValue()
+ * @generated
+ */
+ void setInitValue(AssignmentCompletion value);
+
+} // VariableDeclarationCompletion
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/WhileStatement.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/WhileStatement.java
new file mode 100644
index 00000000000..42db7f53b95
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/WhileStatement.java
@@ -0,0 +1,81 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>While Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.WhileStatement#getCondition <em>Condition</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.WhileStatement#getBlock <em>Block</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getWhileStatement()
+ * @model
+ * @generated
+ */
+public interface WhileStatement extends Statement
+{
+ /**
+ * Returns the value of the '<em><b>Condition</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Condition</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Condition</em>' containment reference.
+ * @see #setCondition(Expression)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getWhileStatement_Condition()
+ * @model containment="true"
+ * @generated
+ */
+ Expression getCondition();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.WhileStatement#getCondition <em>Condition</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Condition</em>' containment reference.
+ * @see #getCondition()
+ * @generated
+ */
+ void setCondition(Expression value);
+
+ /**
+ * Returns the value of the '<em><b>Block</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Block</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Block</em>' containment reference.
+ * @see #setBlock(Block)
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#getWhileStatement_Block()
+ * @model containment="true"
+ * @generated
+ */
+ Block getBlock();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.alf.alf.WhileStatement#getBlock <em>Block</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Block</em>' containment reference.
+ * @see #getBlock()
+ * @generated
+ */
+ void setBlock(Block value);
+
+} // WhileStatement
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AcceptBlockImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AcceptBlockImpl.java
new file mode 100644
index 00000000000..0e659e36f89
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AcceptBlockImpl.java
@@ -0,0 +1,270 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AcceptBlock;
+import org.eclipse.papyrus.alf.alf.AcceptClause;
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.Block;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Accept Block</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.AcceptBlockImpl#getClause <em>Clause</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.AcceptBlockImpl#getBlock <em>Block</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AcceptBlockImpl extends MinimalEObjectImpl.Container implements AcceptBlock
+{
+ /**
+ * The cached value of the '{@link #getClause() <em>Clause</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getClause()
+ * @generated
+ * @ordered
+ */
+ protected AcceptClause clause;
+
+ /**
+ * The cached value of the '{@link #getBlock() <em>Block</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBlock()
+ * @generated
+ * @ordered
+ */
+ protected Block block;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AcceptBlockImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.ACCEPT_BLOCK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AcceptClause getClause()
+ {
+ return clause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetClause(AcceptClause newClause, NotificationChain msgs)
+ {
+ AcceptClause oldClause = clause;
+ clause = newClause;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.ACCEPT_BLOCK__CLAUSE, oldClause, newClause);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setClause(AcceptClause newClause)
+ {
+ if (newClause != clause)
+ {
+ NotificationChain msgs = null;
+ if (clause != null)
+ msgs = ((InternalEObject)clause).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.ACCEPT_BLOCK__CLAUSE, null, msgs);
+ if (newClause != null)
+ msgs = ((InternalEObject)newClause).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.ACCEPT_BLOCK__CLAUSE, null, msgs);
+ msgs = basicSetClause(newClause, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.ACCEPT_BLOCK__CLAUSE, newClause, newClause));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Block getBlock()
+ {
+ return block;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetBlock(Block newBlock, NotificationChain msgs)
+ {
+ Block oldBlock = block;
+ block = newBlock;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.ACCEPT_BLOCK__BLOCK, oldBlock, newBlock);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBlock(Block newBlock)
+ {
+ if (newBlock != block)
+ {
+ NotificationChain msgs = null;
+ if (block != null)
+ msgs = ((InternalEObject)block).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.ACCEPT_BLOCK__BLOCK, null, msgs);
+ if (newBlock != null)
+ msgs = ((InternalEObject)newBlock).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.ACCEPT_BLOCK__BLOCK, null, msgs);
+ msgs = basicSetBlock(newBlock, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.ACCEPT_BLOCK__BLOCK, newBlock, newBlock));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ACCEPT_BLOCK__CLAUSE:
+ return basicSetClause(null, msgs);
+ case AlfPackage.ACCEPT_BLOCK__BLOCK:
+ return basicSetBlock(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ACCEPT_BLOCK__CLAUSE:
+ return getClause();
+ case AlfPackage.ACCEPT_BLOCK__BLOCK:
+ return getBlock();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ACCEPT_BLOCK__CLAUSE:
+ setClause((AcceptClause)newValue);
+ return;
+ case AlfPackage.ACCEPT_BLOCK__BLOCK:
+ setBlock((Block)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ACCEPT_BLOCK__CLAUSE:
+ setClause((AcceptClause)null);
+ return;
+ case AlfPackage.ACCEPT_BLOCK__BLOCK:
+ setBlock((Block)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ACCEPT_BLOCK__CLAUSE:
+ return clause != null;
+ case AlfPackage.ACCEPT_BLOCK__BLOCK:
+ return block != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //AcceptBlockImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AcceptClauseImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AcceptClauseImpl.java
new file mode 100644
index 00000000000..d23e16592a7
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AcceptClauseImpl.java
@@ -0,0 +1,269 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AcceptClause;
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.QualifiedNameList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Accept Clause</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.AcceptClauseImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.AcceptClauseImpl#getQualifiedNameList <em>Qualified Name List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AcceptClauseImpl extends MinimalEObjectImpl.Container implements AcceptClause
+{
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getQualifiedNameList() <em>Qualified Name List</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getQualifiedNameList()
+ * @generated
+ * @ordered
+ */
+ protected QualifiedNameList qualifiedNameList;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AcceptClauseImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.ACCEPT_CLAUSE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName)
+ {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.ACCEPT_CLAUSE__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QualifiedNameList getQualifiedNameList()
+ {
+ return qualifiedNameList;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetQualifiedNameList(QualifiedNameList newQualifiedNameList, NotificationChain msgs)
+ {
+ QualifiedNameList oldQualifiedNameList = qualifiedNameList;
+ qualifiedNameList = newQualifiedNameList;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.ACCEPT_CLAUSE__QUALIFIED_NAME_LIST, oldQualifiedNameList, newQualifiedNameList);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setQualifiedNameList(QualifiedNameList newQualifiedNameList)
+ {
+ if (newQualifiedNameList != qualifiedNameList)
+ {
+ NotificationChain msgs = null;
+ if (qualifiedNameList != null)
+ msgs = ((InternalEObject)qualifiedNameList).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.ACCEPT_CLAUSE__QUALIFIED_NAME_LIST, null, msgs);
+ if (newQualifiedNameList != null)
+ msgs = ((InternalEObject)newQualifiedNameList).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.ACCEPT_CLAUSE__QUALIFIED_NAME_LIST, null, msgs);
+ msgs = basicSetQualifiedNameList(newQualifiedNameList, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.ACCEPT_CLAUSE__QUALIFIED_NAME_LIST, newQualifiedNameList, newQualifiedNameList));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ACCEPT_CLAUSE__QUALIFIED_NAME_LIST:
+ return basicSetQualifiedNameList(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ACCEPT_CLAUSE__NAME:
+ return getName();
+ case AlfPackage.ACCEPT_CLAUSE__QUALIFIED_NAME_LIST:
+ return getQualifiedNameList();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ACCEPT_CLAUSE__NAME:
+ setName((String)newValue);
+ return;
+ case AlfPackage.ACCEPT_CLAUSE__QUALIFIED_NAME_LIST:
+ setQualifiedNameList((QualifiedNameList)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ACCEPT_CLAUSE__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case AlfPackage.ACCEPT_CLAUSE__QUALIFIED_NAME_LIST:
+ setQualifiedNameList((QualifiedNameList)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ACCEPT_CLAUSE__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case AlfPackage.ACCEPT_CLAUSE__QUALIFIED_NAME_LIST:
+ return qualifiedNameList != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} //AcceptClauseImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AcceptStatementImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AcceptStatementImpl.java
new file mode 100644
index 00000000000..491902cebd0
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AcceptStatementImpl.java
@@ -0,0 +1,341 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AcceptClause;
+import org.eclipse.papyrus.alf.alf.AcceptStatement;
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.CompoundAcceptStatementCompletion;
+import org.eclipse.papyrus.alf.alf.SimpleAcceptStatementCompletion;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Accept Statement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.AcceptStatementImpl#getClause <em>Clause</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.AcceptStatementImpl#getSimpleAccept <em>Simple Accept</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.AcceptStatementImpl#getCompoundAccept <em>Compound Accept</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AcceptStatementImpl extends StatementImpl implements AcceptStatement
+{
+ /**
+ * The cached value of the '{@link #getClause() <em>Clause</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getClause()
+ * @generated
+ * @ordered
+ */
+ protected AcceptClause clause;
+
+ /**
+ * The cached value of the '{@link #getSimpleAccept() <em>Simple Accept</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSimpleAccept()
+ * @generated
+ * @ordered
+ */
+ protected SimpleAcceptStatementCompletion simpleAccept;
+
+ /**
+ * The cached value of the '{@link #getCompoundAccept() <em>Compound Accept</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCompoundAccept()
+ * @generated
+ * @ordered
+ */
+ protected CompoundAcceptStatementCompletion compoundAccept;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AcceptStatementImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.ACCEPT_STATEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AcceptClause getClause()
+ {
+ return clause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetClause(AcceptClause newClause, NotificationChain msgs)
+ {
+ AcceptClause oldClause = clause;
+ clause = newClause;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.ACCEPT_STATEMENT__CLAUSE, oldClause, newClause);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setClause(AcceptClause newClause)
+ {
+ if (newClause != clause)
+ {
+ NotificationChain msgs = null;
+ if (clause != null)
+ msgs = ((InternalEObject)clause).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.ACCEPT_STATEMENT__CLAUSE, null, msgs);
+ if (newClause != null)
+ msgs = ((InternalEObject)newClause).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.ACCEPT_STATEMENT__CLAUSE, null, msgs);
+ msgs = basicSetClause(newClause, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.ACCEPT_STATEMENT__CLAUSE, newClause, newClause));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SimpleAcceptStatementCompletion getSimpleAccept()
+ {
+ return simpleAccept;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSimpleAccept(SimpleAcceptStatementCompletion newSimpleAccept, NotificationChain msgs)
+ {
+ SimpleAcceptStatementCompletion oldSimpleAccept = simpleAccept;
+ simpleAccept = newSimpleAccept;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.ACCEPT_STATEMENT__SIMPLE_ACCEPT, oldSimpleAccept, newSimpleAccept);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSimpleAccept(SimpleAcceptStatementCompletion newSimpleAccept)
+ {
+ if (newSimpleAccept != simpleAccept)
+ {
+ NotificationChain msgs = null;
+ if (simpleAccept != null)
+ msgs = ((InternalEObject)simpleAccept).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.ACCEPT_STATEMENT__SIMPLE_ACCEPT, null, msgs);
+ if (newSimpleAccept != null)
+ msgs = ((InternalEObject)newSimpleAccept).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.ACCEPT_STATEMENT__SIMPLE_ACCEPT, null, msgs);
+ msgs = basicSetSimpleAccept(newSimpleAccept, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.ACCEPT_STATEMENT__SIMPLE_ACCEPT, newSimpleAccept, newSimpleAccept));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CompoundAcceptStatementCompletion getCompoundAccept()
+ {
+ return compoundAccept;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetCompoundAccept(CompoundAcceptStatementCompletion newCompoundAccept, NotificationChain msgs)
+ {
+ CompoundAcceptStatementCompletion oldCompoundAccept = compoundAccept;
+ compoundAccept = newCompoundAccept;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.ACCEPT_STATEMENT__COMPOUND_ACCEPT, oldCompoundAccept, newCompoundAccept);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCompoundAccept(CompoundAcceptStatementCompletion newCompoundAccept)
+ {
+ if (newCompoundAccept != compoundAccept)
+ {
+ NotificationChain msgs = null;
+ if (compoundAccept != null)
+ msgs = ((InternalEObject)compoundAccept).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.ACCEPT_STATEMENT__COMPOUND_ACCEPT, null, msgs);
+ if (newCompoundAccept != null)
+ msgs = ((InternalEObject)newCompoundAccept).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.ACCEPT_STATEMENT__COMPOUND_ACCEPT, null, msgs);
+ msgs = basicSetCompoundAccept(newCompoundAccept, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.ACCEPT_STATEMENT__COMPOUND_ACCEPT, newCompoundAccept, newCompoundAccept));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ACCEPT_STATEMENT__CLAUSE:
+ return basicSetClause(null, msgs);
+ case AlfPackage.ACCEPT_STATEMENT__SIMPLE_ACCEPT:
+ return basicSetSimpleAccept(null, msgs);
+ case AlfPackage.ACCEPT_STATEMENT__COMPOUND_ACCEPT:
+ return basicSetCompoundAccept(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ACCEPT_STATEMENT__CLAUSE:
+ return getClause();
+ case AlfPackage.ACCEPT_STATEMENT__SIMPLE_ACCEPT:
+ return getSimpleAccept();
+ case AlfPackage.ACCEPT_STATEMENT__COMPOUND_ACCEPT:
+ return getCompoundAccept();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ACCEPT_STATEMENT__CLAUSE:
+ setClause((AcceptClause)newValue);
+ return;
+ case AlfPackage.ACCEPT_STATEMENT__SIMPLE_ACCEPT:
+ setSimpleAccept((SimpleAcceptStatementCompletion)newValue);
+ return;
+ case AlfPackage.ACCEPT_STATEMENT__COMPOUND_ACCEPT:
+ setCompoundAccept((CompoundAcceptStatementCompletion)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ACCEPT_STATEMENT__CLAUSE:
+ setClause((AcceptClause)null);
+ return;
+ case AlfPackage.ACCEPT_STATEMENT__SIMPLE_ACCEPT:
+ setSimpleAccept((SimpleAcceptStatementCompletion)null);
+ return;
+ case AlfPackage.ACCEPT_STATEMENT__COMPOUND_ACCEPT:
+ setCompoundAccept((CompoundAcceptStatementCompletion)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ACCEPT_STATEMENT__CLAUSE:
+ return clause != null;
+ case AlfPackage.ACCEPT_STATEMENT__SIMPLE_ACCEPT:
+ return simpleAccept != null;
+ case AlfPackage.ACCEPT_STATEMENT__COMPOUND_ACCEPT:
+ return compoundAccept != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //AcceptStatementImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AccessCompletionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AccessCompletionImpl.java
new file mode 100644
index 00000000000..3cb2e1095ef
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AccessCompletionImpl.java
@@ -0,0 +1,198 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AccessCompletion;
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.Expression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Access Completion</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.AccessCompletionImpl#getAccessIndex <em>Access Index</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AccessCompletionImpl extends MinimalEObjectImpl.Container implements AccessCompletion
+{
+ /**
+ * The cached value of the '{@link #getAccessIndex() <em>Access Index</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAccessIndex()
+ * @generated
+ * @ordered
+ */
+ protected Expression accessIndex;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AccessCompletionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.ACCESS_COMPLETION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Expression getAccessIndex()
+ {
+ return accessIndex;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetAccessIndex(Expression newAccessIndex, NotificationChain msgs)
+ {
+ Expression oldAccessIndex = accessIndex;
+ accessIndex = newAccessIndex;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.ACCESS_COMPLETION__ACCESS_INDEX, oldAccessIndex, newAccessIndex);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAccessIndex(Expression newAccessIndex)
+ {
+ if (newAccessIndex != accessIndex)
+ {
+ NotificationChain msgs = null;
+ if (accessIndex != null)
+ msgs = ((InternalEObject)accessIndex).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.ACCESS_COMPLETION__ACCESS_INDEX, null, msgs);
+ if (newAccessIndex != null)
+ msgs = ((InternalEObject)newAccessIndex).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.ACCESS_COMPLETION__ACCESS_INDEX, null, msgs);
+ msgs = basicSetAccessIndex(newAccessIndex, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.ACCESS_COMPLETION__ACCESS_INDEX, newAccessIndex, newAccessIndex));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ACCESS_COMPLETION__ACCESS_INDEX:
+ return basicSetAccessIndex(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ACCESS_COMPLETION__ACCESS_INDEX:
+ return getAccessIndex();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ACCESS_COMPLETION__ACCESS_INDEX:
+ setAccessIndex((Expression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ACCESS_COMPLETION__ACCESS_INDEX:
+ setAccessIndex((Expression)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ACCESS_COMPLETION__ACCESS_INDEX:
+ return accessIndex != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //AccessCompletionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AdditiveExpressionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AdditiveExpressionImpl.java
new file mode 100644
index 00000000000..eb2c06fa4f4
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AdditiveExpressionImpl.java
@@ -0,0 +1,225 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EDataTypeEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.alf.alf.AdditiveExpression;
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.MultiplicativeExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Additive Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.AdditiveExpressionImpl#getExp <em>Exp</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.AdditiveExpressionImpl#getOp <em>Op</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AdditiveExpressionImpl extends MinimalEObjectImpl.Container implements AdditiveExpression
+{
+ /**
+ * The cached value of the '{@link #getExp() <em>Exp</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExp()
+ * @generated
+ * @ordered
+ */
+ protected EList<MultiplicativeExpression> exp;
+
+ /**
+ * The cached value of the '{@link #getOp() <em>Op</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOp()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> op;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AdditiveExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.ADDITIVE_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<MultiplicativeExpression> getExp()
+ {
+ if (exp == null)
+ {
+ exp = new EObjectContainmentEList<MultiplicativeExpression>(MultiplicativeExpression.class, this, AlfPackage.ADDITIVE_EXPRESSION__EXP);
+ }
+ return exp;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<String> getOp()
+ {
+ if (op == null)
+ {
+ op = new EDataTypeEList<String>(String.class, this, AlfPackage.ADDITIVE_EXPRESSION__OP);
+ }
+ return op;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ADDITIVE_EXPRESSION__EXP:
+ return ((InternalEList<?>)getExp()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ADDITIVE_EXPRESSION__EXP:
+ return getExp();
+ case AlfPackage.ADDITIVE_EXPRESSION__OP:
+ return getOp();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ADDITIVE_EXPRESSION__EXP:
+ getExp().clear();
+ getExp().addAll((Collection<? extends MultiplicativeExpression>)newValue);
+ return;
+ case AlfPackage.ADDITIVE_EXPRESSION__OP:
+ getOp().clear();
+ getOp().addAll((Collection<? extends String>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ADDITIVE_EXPRESSION__EXP:
+ getExp().clear();
+ return;
+ case AlfPackage.ADDITIVE_EXPRESSION__OP:
+ getOp().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ADDITIVE_EXPRESSION__EXP:
+ return exp != null && !exp.isEmpty();
+ case AlfPackage.ADDITIVE_EXPRESSION__OP:
+ return op != null && !op.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (op: ");
+ result.append(op);
+ result.append(')');
+ return result.toString();
+ }
+
+} //AdditiveExpressionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AlfFactoryImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AlfFactoryImpl.java
new file mode 100644
index 00000000000..636115dcae6
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AlfFactoryImpl.java
@@ -0,0 +1,1535 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.papyrus.alf.alf.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class AlfFactoryImpl extends EFactoryImpl implements AlfFactory
+{
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static AlfFactory init()
+ {
+ try
+ {
+ AlfFactory theAlfFactory = (AlfFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/papyrus/alf/Alf");
+ if (theAlfFactory != null)
+ {
+ return theAlfFactory;
+ }
+ }
+ catch (Exception exception)
+ {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new AlfFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AlfFactoryImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass)
+ {
+ switch (eClass.getClassifierID())
+ {
+ case AlfPackage.TEST: return createTest();
+ case AlfPackage.LITERAL: return createLITERAL();
+ case AlfPackage.BOOLEAN_LITERAL: return createBOOLEAN_LITERAL();
+ case AlfPackage.NUMBER_LITERAL: return createNUMBER_LITERAL();
+ case AlfPackage.INTEGER_LITERAL: return createINTEGER_LITERAL();
+ case AlfPackage.UNLIMITED_LITERAL: return createUNLIMITED_LITERAL();
+ case AlfPackage.STRING_LITERAL: return createSTRING_LITERAL();
+ case AlfPackage.NAME_EXPRESSION: return createNameExpression();
+ case AlfPackage.QUALIFIED_NAME_PATH: return createQualifiedNamePath();
+ case AlfPackage.UNQUALIFIED_NAME: return createUnqualifiedName();
+ case AlfPackage.TEMPLATE_BINDING: return createTemplateBinding();
+ case AlfPackage.NAMED_TEMPLATE_BINDING: return createNamedTemplateBinding();
+ case AlfPackage.QUALIFIED_NAME_WITH_BINDING: return createQualifiedNameWithBinding();
+ case AlfPackage.TUPLE: return createTuple();
+ case AlfPackage.TUPLE_ELEMENT: return createTupleElement();
+ case AlfPackage.EXPRESSION: return createExpression();
+ case AlfPackage.CONDITIONAL_TEST_EXPRESSION: return createConditionalTestExpression();
+ case AlfPackage.CONDITIONAL_OR_EXPRESSION: return createConditionalOrExpression();
+ case AlfPackage.CONDITIONAL_AND_EXPRESSION: return createConditionalAndExpression();
+ case AlfPackage.INCLUSIVE_OR_EXPRESSION: return createInclusiveOrExpression();
+ case AlfPackage.EXCLUSIVE_OR_EXPRESSION: return createExclusiveOrExpression();
+ case AlfPackage.AND_EXPRESSION: return createAndExpression();
+ case AlfPackage.EQUALITY_EXPRESSION: return createEqualityExpression();
+ case AlfPackage.CLASSIFICATION_EXPRESSION: return createClassificationExpression();
+ case AlfPackage.RELATIONAL_EXPRESSION: return createRelationalExpression();
+ case AlfPackage.SHIFT_EXPRESSION: return createShiftExpression();
+ case AlfPackage.ADDITIVE_EXPRESSION: return createAdditiveExpression();
+ case AlfPackage.MULTIPLICATIVE_EXPRESSION: return createMultiplicativeExpression();
+ case AlfPackage.UNARY_EXPRESSION: return createUnaryExpression();
+ case AlfPackage.PRIMARY_EXPRESSION: return createPrimaryExpression();
+ case AlfPackage.SUFFIX_EXPRESSION: return createSuffixExpression();
+ case AlfPackage.OPERATION_CALL_EXPRESSION: return createOperationCallExpression();
+ case AlfPackage.PROPERTY_CALL_EXPRESSION: return createPropertyCallExpression();
+ case AlfPackage.LINK_OPERATION_EXPRESSION: return createLinkOperationExpression();
+ case AlfPackage.LINK_OPERATION_TUPLE: return createLinkOperationTuple();
+ case AlfPackage.LINK_OPERATION_TUPLE_ELEMENT: return createLinkOperationTupleElement();
+ case AlfPackage.SEQUENCE_OPERATION_EXPRESSION: return createSequenceOperationExpression();
+ case AlfPackage.SEQUENCE_REDUCTION_EXPRESSION: return createSequenceReductionExpression();
+ case AlfPackage.SEQUENCE_EXPANSION_EXPRESSION: return createSequenceExpansionExpression();
+ case AlfPackage.SELECT_OR_REJECT_OPERATION: return createSelectOrRejectOperation();
+ case AlfPackage.COLLECT_OR_ITERATE_OPERATION: return createCollectOrIterateOperation();
+ case AlfPackage.FOR_ALL_OR_EXISTS_OR_ONE_OPERATION: return createForAllOrExistsOrOneOperation();
+ case AlfPackage.IS_UNIQUE_OPERATION: return createIsUniqueOperation();
+ case AlfPackage.VALUE_SPECIFICATION: return createValueSpecification();
+ case AlfPackage.NON_LITERAL_VALUE_SPECIFICATION: return createNonLiteralValueSpecification();
+ case AlfPackage.PARENTHESIZED_EXPRESSION: return createParenthesizedExpression();
+ case AlfPackage.NULL_EXPRESSION: return createNullExpression();
+ case AlfPackage.THIS_EXPRESSION: return createThisExpression();
+ case AlfPackage.SUPER_INVOCATION_EXPRESSION: return createSuperInvocationExpression();
+ case AlfPackage.INSTANCE_CREATION_EXPRESSION: return createInstanceCreationExpression();
+ case AlfPackage.INSTANCE_CREATION_TUPLE: return createInstanceCreationTuple();
+ case AlfPackage.INSTANCE_CREATION_TUPLE_ELEMENT: return createInstanceCreationTupleElement();
+ case AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION: return createSequenceConstructionOrAccessCompletion();
+ case AlfPackage.ACCESS_COMPLETION: return createAccessCompletion();
+ case AlfPackage.PARTIAL_SEQUENCE_CONSTRUCTION_COMPLETION: return createPartialSequenceConstructionCompletion();
+ case AlfPackage.SEQUENCE_CONSTRUCTION_EXPRESSION: return createSequenceConstructionExpression();
+ case AlfPackage.SEQUENCE_ELEMENT: return createSequenceElement();
+ case AlfPackage.CLASS_EXTENT_EXPRESSION: return createClassExtentExpression();
+ case AlfPackage.BLOCK: return createBlock();
+ case AlfPackage.STATEMENT_SEQUENCE: return createStatementSequence();
+ case AlfPackage.DOCUMENTED_STATEMENT: return createDocumentedStatement();
+ case AlfPackage.INLINE_STATEMENT: return createInlineStatement();
+ case AlfPackage.ANNOTATED_STATEMENT: return createAnnotatedStatement();
+ case AlfPackage.STATEMENT: return createStatement();
+ case AlfPackage.ANNOTATION: return createAnnotation();
+ case AlfPackage.BLOCK_STATEMENT: return createBlockStatement();
+ case AlfPackage.EMPTY_STATEMENT: return createEmptyStatement();
+ case AlfPackage.LOCAL_NAME_DECLARATION_STATEMENT: return createLocalNameDeclarationStatement();
+ case AlfPackage.IF_STATEMENT: return createIfStatement();
+ case AlfPackage.SEQUENTIAL_CLAUSES: return createSequentialClauses();
+ case AlfPackage.CONCURRENT_CLAUSES: return createConcurrentClauses();
+ case AlfPackage.NON_FINAL_CLAUSE: return createNonFinalClause();
+ case AlfPackage.FINAL_CLAUSE: return createFinalClause();
+ case AlfPackage.SWITCH_STATEMENT: return createSwitchStatement();
+ case AlfPackage.SWITCH_CLAUSE: return createSwitchClause();
+ case AlfPackage.SWITCH_CASE: return createSwitchCase();
+ case AlfPackage.SWITCH_DEFAULT_CLAUSE: return createSwitchDefaultClause();
+ case AlfPackage.NON_EMPTY_STATEMENT_SEQUENCE: return createNonEmptyStatementSequence();
+ case AlfPackage.WHILE_STATEMENT: return createWhileStatement();
+ case AlfPackage.DO_STATEMENT: return createDoStatement();
+ case AlfPackage.FOR_STATEMENT: return createForStatement();
+ case AlfPackage.FOR_CONTROL: return createForControl();
+ case AlfPackage.LOOP_VARIABLE_DEFINITION: return createLoopVariableDefinition();
+ case AlfPackage.BREAK_STATEMENT: return createBreakStatement();
+ case AlfPackage.RETURN_STATEMENT: return createReturnStatement();
+ case AlfPackage.ACCEPT_STATEMENT: return createAcceptStatement();
+ case AlfPackage.SIMPLE_ACCEPT_STATEMENT_COMPLETION: return createSimpleAcceptStatementCompletion();
+ case AlfPackage.COMPOUND_ACCEPT_STATEMENT_COMPLETION: return createCompoundAcceptStatementCompletion();
+ case AlfPackage.ACCEPT_BLOCK: return createAcceptBlock();
+ case AlfPackage.ACCEPT_CLAUSE: return createAcceptClause();
+ case AlfPackage.CLASSIFY_STATEMENT: return createClassifyStatement();
+ case AlfPackage.CLASSIFICATION_CLAUSE: return createClassificationClause();
+ case AlfPackage.CLASSIFICATION_FROM_CLAUSE: return createClassificationFromClause();
+ case AlfPackage.CLASSIFICATION_TO_CLAUSE: return createClassificationToClause();
+ case AlfPackage.RECLASSIFY_ALL_CLAUSE: return createReclassifyAllClause();
+ case AlfPackage.QUALIFIED_NAME_LIST: return createQualifiedNameList();
+ case AlfPackage.INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT: return createInvocationOrAssignementOrDeclarationStatement();
+ case AlfPackage.SUPER_INVOCATION_STATEMENT: return createSuperInvocationStatement();
+ case AlfPackage.THIS_INVOCATION_STATEMENT: return createThisInvocationStatement();
+ case AlfPackage.INSTANCE_CREATION_INVOCATION_STATEMENT: return createInstanceCreationInvocationStatement();
+ case AlfPackage.VARIABLE_DECLARATION_COMPLETION: return createVariableDeclarationCompletion();
+ case AlfPackage.ASSIGNMENT_COMPLETION: return createAssignmentCompletion();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue)
+ {
+ switch (eDataType.getClassifierID())
+ {
+ case AlfPackage.BOOLEAN_VALUE:
+ return createBooleanValueFromString(eDataType, initialValue);
+ case AlfPackage.LINK_OPERATION_KIND:
+ return createLinkOperationKindFromString(eDataType, initialValue);
+ case AlfPackage.SELECT_OR_REJECT_OPERATOR:
+ return createSelectOrRejectOperatorFromString(eDataType, initialValue);
+ case AlfPackage.COLLECT_OR_ITERATE_OPERATOR:
+ return createCollectOrIterateOperatorFromString(eDataType, initialValue);
+ case AlfPackage.FOR_ALL_OR_EXISTS_OR_ONE_OPERATOR:
+ return createForAllOrExistsOrOneOperatorFromString(eDataType, initialValue);
+ case AlfPackage.ANNOTATION_KIND:
+ return createAnnotationKindFromString(eDataType, initialValue);
+ case AlfPackage.ASSIGNMENT_OPERATOR:
+ return createAssignmentOperatorFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue)
+ {
+ switch (eDataType.getClassifierID())
+ {
+ case AlfPackage.BOOLEAN_VALUE:
+ return convertBooleanValueToString(eDataType, instanceValue);
+ case AlfPackage.LINK_OPERATION_KIND:
+ return convertLinkOperationKindToString(eDataType, instanceValue);
+ case AlfPackage.SELECT_OR_REJECT_OPERATOR:
+ return convertSelectOrRejectOperatorToString(eDataType, instanceValue);
+ case AlfPackage.COLLECT_OR_ITERATE_OPERATOR:
+ return convertCollectOrIterateOperatorToString(eDataType, instanceValue);
+ case AlfPackage.FOR_ALL_OR_EXISTS_OR_ONE_OPERATOR:
+ return convertForAllOrExistsOrOneOperatorToString(eDataType, instanceValue);
+ case AlfPackage.ANNOTATION_KIND:
+ return convertAnnotationKindToString(eDataType, instanceValue);
+ case AlfPackage.ASSIGNMENT_OPERATOR:
+ return convertAssignmentOperatorToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Test createTest()
+ {
+ TestImpl test = new TestImpl();
+ return test;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LITERAL createLITERAL()
+ {
+ LITERALImpl literal = new LITERALImpl();
+ return literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BOOLEAN_LITERAL createBOOLEAN_LITERAL()
+ {
+ BOOLEAN_LITERALImpl booleaN_LITERAL = new BOOLEAN_LITERALImpl();
+ return booleaN_LITERAL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NUMBER_LITERAL createNUMBER_LITERAL()
+ {
+ NUMBER_LITERALImpl numbeR_LITERAL = new NUMBER_LITERALImpl();
+ return numbeR_LITERAL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public INTEGER_LITERAL createINTEGER_LITERAL()
+ {
+ INTEGER_LITERALImpl integeR_LITERAL = new INTEGER_LITERALImpl();
+ return integeR_LITERAL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public UNLIMITED_LITERAL createUNLIMITED_LITERAL()
+ {
+ UNLIMITED_LITERALImpl unlimiteD_LITERAL = new UNLIMITED_LITERALImpl();
+ return unlimiteD_LITERAL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public STRING_LITERAL createSTRING_LITERAL()
+ {
+ STRING_LITERALImpl strinG_LITERAL = new STRING_LITERALImpl();
+ return strinG_LITERAL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NameExpression createNameExpression()
+ {
+ NameExpressionImpl nameExpression = new NameExpressionImpl();
+ return nameExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QualifiedNamePath createQualifiedNamePath()
+ {
+ QualifiedNamePathImpl qualifiedNamePath = new QualifiedNamePathImpl();
+ return qualifiedNamePath;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public UnqualifiedName createUnqualifiedName()
+ {
+ UnqualifiedNameImpl unqualifiedName = new UnqualifiedNameImpl();
+ return unqualifiedName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateBinding createTemplateBinding()
+ {
+ TemplateBindingImpl templateBinding = new TemplateBindingImpl();
+ return templateBinding;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NamedTemplateBinding createNamedTemplateBinding()
+ {
+ NamedTemplateBindingImpl namedTemplateBinding = new NamedTemplateBindingImpl();
+ return namedTemplateBinding;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QualifiedNameWithBinding createQualifiedNameWithBinding()
+ {
+ QualifiedNameWithBindingImpl qualifiedNameWithBinding = new QualifiedNameWithBindingImpl();
+ return qualifiedNameWithBinding;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Tuple createTuple()
+ {
+ TupleImpl tuple = new TupleImpl();
+ return tuple;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TupleElement createTupleElement()
+ {
+ TupleElementImpl tupleElement = new TupleElementImpl();
+ return tupleElement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Expression createExpression()
+ {
+ ExpressionImpl expression = new ExpressionImpl();
+ return expression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConditionalTestExpression createConditionalTestExpression()
+ {
+ ConditionalTestExpressionImpl conditionalTestExpression = new ConditionalTestExpressionImpl();
+ return conditionalTestExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConditionalOrExpression createConditionalOrExpression()
+ {
+ ConditionalOrExpressionImpl conditionalOrExpression = new ConditionalOrExpressionImpl();
+ return conditionalOrExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConditionalAndExpression createConditionalAndExpression()
+ {
+ ConditionalAndExpressionImpl conditionalAndExpression = new ConditionalAndExpressionImpl();
+ return conditionalAndExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InclusiveOrExpression createInclusiveOrExpression()
+ {
+ InclusiveOrExpressionImpl inclusiveOrExpression = new InclusiveOrExpressionImpl();
+ return inclusiveOrExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExclusiveOrExpression createExclusiveOrExpression()
+ {
+ ExclusiveOrExpressionImpl exclusiveOrExpression = new ExclusiveOrExpressionImpl();
+ return exclusiveOrExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AndExpression createAndExpression()
+ {
+ AndExpressionImpl andExpression = new AndExpressionImpl();
+ return andExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EqualityExpression createEqualityExpression()
+ {
+ EqualityExpressionImpl equalityExpression = new EqualityExpressionImpl();
+ return equalityExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ClassificationExpression createClassificationExpression()
+ {
+ ClassificationExpressionImpl classificationExpression = new ClassificationExpressionImpl();
+ return classificationExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RelationalExpression createRelationalExpression()
+ {
+ RelationalExpressionImpl relationalExpression = new RelationalExpressionImpl();
+ return relationalExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ShiftExpression createShiftExpression()
+ {
+ ShiftExpressionImpl shiftExpression = new ShiftExpressionImpl();
+ return shiftExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AdditiveExpression createAdditiveExpression()
+ {
+ AdditiveExpressionImpl additiveExpression = new AdditiveExpressionImpl();
+ return additiveExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiplicativeExpression createMultiplicativeExpression()
+ {
+ MultiplicativeExpressionImpl multiplicativeExpression = new MultiplicativeExpressionImpl();
+ return multiplicativeExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public UnaryExpression createUnaryExpression()
+ {
+ UnaryExpressionImpl unaryExpression = new UnaryExpressionImpl();
+ return unaryExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PrimaryExpression createPrimaryExpression()
+ {
+ PrimaryExpressionImpl primaryExpression = new PrimaryExpressionImpl();
+ return primaryExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SuffixExpression createSuffixExpression()
+ {
+ SuffixExpressionImpl suffixExpression = new SuffixExpressionImpl();
+ return suffixExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OperationCallExpression createOperationCallExpression()
+ {
+ OperationCallExpressionImpl operationCallExpression = new OperationCallExpressionImpl();
+ return operationCallExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PropertyCallExpression createPropertyCallExpression()
+ {
+ PropertyCallExpressionImpl propertyCallExpression = new PropertyCallExpressionImpl();
+ return propertyCallExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LinkOperationExpression createLinkOperationExpression()
+ {
+ LinkOperationExpressionImpl linkOperationExpression = new LinkOperationExpressionImpl();
+ return linkOperationExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LinkOperationTuple createLinkOperationTuple()
+ {
+ LinkOperationTupleImpl linkOperationTuple = new LinkOperationTupleImpl();
+ return linkOperationTuple;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LinkOperationTupleElement createLinkOperationTupleElement()
+ {
+ LinkOperationTupleElementImpl linkOperationTupleElement = new LinkOperationTupleElementImpl();
+ return linkOperationTupleElement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SequenceOperationExpression createSequenceOperationExpression()
+ {
+ SequenceOperationExpressionImpl sequenceOperationExpression = new SequenceOperationExpressionImpl();
+ return sequenceOperationExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SequenceReductionExpression createSequenceReductionExpression()
+ {
+ SequenceReductionExpressionImpl sequenceReductionExpression = new SequenceReductionExpressionImpl();
+ return sequenceReductionExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SequenceExpansionExpression createSequenceExpansionExpression()
+ {
+ SequenceExpansionExpressionImpl sequenceExpansionExpression = new SequenceExpansionExpressionImpl();
+ return sequenceExpansionExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SelectOrRejectOperation createSelectOrRejectOperation()
+ {
+ SelectOrRejectOperationImpl selectOrRejectOperation = new SelectOrRejectOperationImpl();
+ return selectOrRejectOperation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CollectOrIterateOperation createCollectOrIterateOperation()
+ {
+ CollectOrIterateOperationImpl collectOrIterateOperation = new CollectOrIterateOperationImpl();
+ return collectOrIterateOperation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ForAllOrExistsOrOneOperation createForAllOrExistsOrOneOperation()
+ {
+ ForAllOrExistsOrOneOperationImpl forAllOrExistsOrOneOperation = new ForAllOrExistsOrOneOperationImpl();
+ return forAllOrExistsOrOneOperation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IsUniqueOperation createIsUniqueOperation()
+ {
+ IsUniqueOperationImpl isUniqueOperation = new IsUniqueOperationImpl();
+ return isUniqueOperation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification createValueSpecification()
+ {
+ ValueSpecificationImpl valueSpecification = new ValueSpecificationImpl();
+ return valueSpecification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NonLiteralValueSpecification createNonLiteralValueSpecification()
+ {
+ NonLiteralValueSpecificationImpl nonLiteralValueSpecification = new NonLiteralValueSpecificationImpl();
+ return nonLiteralValueSpecification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ParenthesizedExpression createParenthesizedExpression()
+ {
+ ParenthesizedExpressionImpl parenthesizedExpression = new ParenthesizedExpressionImpl();
+ return parenthesizedExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NullExpression createNullExpression()
+ {
+ NullExpressionImpl nullExpression = new NullExpressionImpl();
+ return nullExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ThisExpression createThisExpression()
+ {
+ ThisExpressionImpl thisExpression = new ThisExpressionImpl();
+ return thisExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SuperInvocationExpression createSuperInvocationExpression()
+ {
+ SuperInvocationExpressionImpl superInvocationExpression = new SuperInvocationExpressionImpl();
+ return superInvocationExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InstanceCreationExpression createInstanceCreationExpression()
+ {
+ InstanceCreationExpressionImpl instanceCreationExpression = new InstanceCreationExpressionImpl();
+ return instanceCreationExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InstanceCreationTuple createInstanceCreationTuple()
+ {
+ InstanceCreationTupleImpl instanceCreationTuple = new InstanceCreationTupleImpl();
+ return instanceCreationTuple;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InstanceCreationTupleElement createInstanceCreationTupleElement()
+ {
+ InstanceCreationTupleElementImpl instanceCreationTupleElement = new InstanceCreationTupleElementImpl();
+ return instanceCreationTupleElement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SequenceConstructionOrAccessCompletion createSequenceConstructionOrAccessCompletion()
+ {
+ SequenceConstructionOrAccessCompletionImpl sequenceConstructionOrAccessCompletion = new SequenceConstructionOrAccessCompletionImpl();
+ return sequenceConstructionOrAccessCompletion;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AccessCompletion createAccessCompletion()
+ {
+ AccessCompletionImpl accessCompletion = new AccessCompletionImpl();
+ return accessCompletion;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PartialSequenceConstructionCompletion createPartialSequenceConstructionCompletion()
+ {
+ PartialSequenceConstructionCompletionImpl partialSequenceConstructionCompletion = new PartialSequenceConstructionCompletionImpl();
+ return partialSequenceConstructionCompletion;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SequenceConstructionExpression createSequenceConstructionExpression()
+ {
+ SequenceConstructionExpressionImpl sequenceConstructionExpression = new SequenceConstructionExpressionImpl();
+ return sequenceConstructionExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SequenceElement createSequenceElement()
+ {
+ SequenceElementImpl sequenceElement = new SequenceElementImpl();
+ return sequenceElement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ClassExtentExpression createClassExtentExpression()
+ {
+ ClassExtentExpressionImpl classExtentExpression = new ClassExtentExpressionImpl();
+ return classExtentExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Block createBlock()
+ {
+ BlockImpl block = new BlockImpl();
+ return block;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StatementSequence createStatementSequence()
+ {
+ StatementSequenceImpl statementSequence = new StatementSequenceImpl();
+ return statementSequence;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DocumentedStatement createDocumentedStatement()
+ {
+ DocumentedStatementImpl documentedStatement = new DocumentedStatementImpl();
+ return documentedStatement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InlineStatement createInlineStatement()
+ {
+ InlineStatementImpl inlineStatement = new InlineStatementImpl();
+ return inlineStatement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AnnotatedStatement createAnnotatedStatement()
+ {
+ AnnotatedStatementImpl annotatedStatement = new AnnotatedStatementImpl();
+ return annotatedStatement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Statement createStatement()
+ {
+ StatementImpl statement = new StatementImpl();
+ return statement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Annotation createAnnotation()
+ {
+ AnnotationImpl annotation = new AnnotationImpl();
+ return annotation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BlockStatement createBlockStatement()
+ {
+ BlockStatementImpl blockStatement = new BlockStatementImpl();
+ return blockStatement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EmptyStatement createEmptyStatement()
+ {
+ EmptyStatementImpl emptyStatement = new EmptyStatementImpl();
+ return emptyStatement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LocalNameDeclarationStatement createLocalNameDeclarationStatement()
+ {
+ LocalNameDeclarationStatementImpl localNameDeclarationStatement = new LocalNameDeclarationStatementImpl();
+ return localNameDeclarationStatement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IfStatement createIfStatement()
+ {
+ IfStatementImpl ifStatement = new IfStatementImpl();
+ return ifStatement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SequentialClauses createSequentialClauses()
+ {
+ SequentialClausesImpl sequentialClauses = new SequentialClausesImpl();
+ return sequentialClauses;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConcurrentClauses createConcurrentClauses()
+ {
+ ConcurrentClausesImpl concurrentClauses = new ConcurrentClausesImpl();
+ return concurrentClauses;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NonFinalClause createNonFinalClause()
+ {
+ NonFinalClauseImpl nonFinalClause = new NonFinalClauseImpl();
+ return nonFinalClause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FinalClause createFinalClause()
+ {
+ FinalClauseImpl finalClause = new FinalClauseImpl();
+ return finalClause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SwitchStatement createSwitchStatement()
+ {
+ SwitchStatementImpl switchStatement = new SwitchStatementImpl();
+ return switchStatement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SwitchClause createSwitchClause()
+ {
+ SwitchClauseImpl switchClause = new SwitchClauseImpl();
+ return switchClause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SwitchCase createSwitchCase()
+ {
+ SwitchCaseImpl switchCase = new SwitchCaseImpl();
+ return switchCase;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SwitchDefaultClause createSwitchDefaultClause()
+ {
+ SwitchDefaultClauseImpl switchDefaultClause = new SwitchDefaultClauseImpl();
+ return switchDefaultClause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NonEmptyStatementSequence createNonEmptyStatementSequence()
+ {
+ NonEmptyStatementSequenceImpl nonEmptyStatementSequence = new NonEmptyStatementSequenceImpl();
+ return nonEmptyStatementSequence;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public WhileStatement createWhileStatement()
+ {
+ WhileStatementImpl whileStatement = new WhileStatementImpl();
+ return whileStatement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DoStatement createDoStatement()
+ {
+ DoStatementImpl doStatement = new DoStatementImpl();
+ return doStatement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ForStatement createForStatement()
+ {
+ ForStatementImpl forStatement = new ForStatementImpl();
+ return forStatement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ForControl createForControl()
+ {
+ ForControlImpl forControl = new ForControlImpl();
+ return forControl;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LoopVariableDefinition createLoopVariableDefinition()
+ {
+ LoopVariableDefinitionImpl loopVariableDefinition = new LoopVariableDefinitionImpl();
+ return loopVariableDefinition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BreakStatement createBreakStatement()
+ {
+ BreakStatementImpl breakStatement = new BreakStatementImpl();
+ return breakStatement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ReturnStatement createReturnStatement()
+ {
+ ReturnStatementImpl returnStatement = new ReturnStatementImpl();
+ return returnStatement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AcceptStatement createAcceptStatement()
+ {
+ AcceptStatementImpl acceptStatement = new AcceptStatementImpl();
+ return acceptStatement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SimpleAcceptStatementCompletion createSimpleAcceptStatementCompletion()
+ {
+ SimpleAcceptStatementCompletionImpl simpleAcceptStatementCompletion = new SimpleAcceptStatementCompletionImpl();
+ return simpleAcceptStatementCompletion;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CompoundAcceptStatementCompletion createCompoundAcceptStatementCompletion()
+ {
+ CompoundAcceptStatementCompletionImpl compoundAcceptStatementCompletion = new CompoundAcceptStatementCompletionImpl();
+ return compoundAcceptStatementCompletion;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AcceptBlock createAcceptBlock()
+ {
+ AcceptBlockImpl acceptBlock = new AcceptBlockImpl();
+ return acceptBlock;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AcceptClause createAcceptClause()
+ {
+ AcceptClauseImpl acceptClause = new AcceptClauseImpl();
+ return acceptClause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ClassifyStatement createClassifyStatement()
+ {
+ ClassifyStatementImpl classifyStatement = new ClassifyStatementImpl();
+ return classifyStatement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ClassificationClause createClassificationClause()
+ {
+ ClassificationClauseImpl classificationClause = new ClassificationClauseImpl();
+ return classificationClause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ClassificationFromClause createClassificationFromClause()
+ {
+ ClassificationFromClauseImpl classificationFromClause = new ClassificationFromClauseImpl();
+ return classificationFromClause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ClassificationToClause createClassificationToClause()
+ {
+ ClassificationToClauseImpl classificationToClause = new ClassificationToClauseImpl();
+ return classificationToClause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ReclassifyAllClause createReclassifyAllClause()
+ {
+ ReclassifyAllClauseImpl reclassifyAllClause = new ReclassifyAllClauseImpl();
+ return reclassifyAllClause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QualifiedNameList createQualifiedNameList()
+ {
+ QualifiedNameListImpl qualifiedNameList = new QualifiedNameListImpl();
+ return qualifiedNameList;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InvocationOrAssignementOrDeclarationStatement createInvocationOrAssignementOrDeclarationStatement()
+ {
+ InvocationOrAssignementOrDeclarationStatementImpl invocationOrAssignementOrDeclarationStatement = new InvocationOrAssignementOrDeclarationStatementImpl();
+ return invocationOrAssignementOrDeclarationStatement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SuperInvocationStatement createSuperInvocationStatement()
+ {
+ SuperInvocationStatementImpl superInvocationStatement = new SuperInvocationStatementImpl();
+ return superInvocationStatement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ThisInvocationStatement createThisInvocationStatement()
+ {
+ ThisInvocationStatementImpl thisInvocationStatement = new ThisInvocationStatementImpl();
+ return thisInvocationStatement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InstanceCreationInvocationStatement createInstanceCreationInvocationStatement()
+ {
+ InstanceCreationInvocationStatementImpl instanceCreationInvocationStatement = new InstanceCreationInvocationStatementImpl();
+ return instanceCreationInvocationStatement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public VariableDeclarationCompletion createVariableDeclarationCompletion()
+ {
+ VariableDeclarationCompletionImpl variableDeclarationCompletion = new VariableDeclarationCompletionImpl();
+ return variableDeclarationCompletion;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AssignmentCompletion createAssignmentCompletion()
+ {
+ AssignmentCompletionImpl assignmentCompletion = new AssignmentCompletionImpl();
+ return assignmentCompletion;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BooleanValue createBooleanValueFromString(EDataType eDataType, String initialValue)
+ {
+ BooleanValue result = BooleanValue.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertBooleanValueToString(EDataType eDataType, Object instanceValue)
+ {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LinkOperationKind createLinkOperationKindFromString(EDataType eDataType, String initialValue)
+ {
+ LinkOperationKind result = LinkOperationKind.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertLinkOperationKindToString(EDataType eDataType, Object instanceValue)
+ {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SelectOrRejectOperator createSelectOrRejectOperatorFromString(EDataType eDataType, String initialValue)
+ {
+ SelectOrRejectOperator result = SelectOrRejectOperator.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertSelectOrRejectOperatorToString(EDataType eDataType, Object instanceValue)
+ {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CollectOrIterateOperator createCollectOrIterateOperatorFromString(EDataType eDataType, String initialValue)
+ {
+ CollectOrIterateOperator result = CollectOrIterateOperator.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertCollectOrIterateOperatorToString(EDataType eDataType, Object instanceValue)
+ {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ForAllOrExistsOrOneOperator createForAllOrExistsOrOneOperatorFromString(EDataType eDataType, String initialValue)
+ {
+ ForAllOrExistsOrOneOperator result = ForAllOrExistsOrOneOperator.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertForAllOrExistsOrOneOperatorToString(EDataType eDataType, Object instanceValue)
+ {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AnnotationKind createAnnotationKindFromString(EDataType eDataType, String initialValue)
+ {
+ AnnotationKind result = AnnotationKind.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertAnnotationKindToString(EDataType eDataType, Object instanceValue)
+ {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AssignmentOperator createAssignmentOperatorFromString(EDataType eDataType, String initialValue)
+ {
+ AssignmentOperator result = AssignmentOperator.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertAssignmentOperatorToString(EDataType eDataType, Object instanceValue)
+ {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AlfPackage getAlfPackage()
+ {
+ return (AlfPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static AlfPackage getPackage()
+ {
+ return AlfPackage.eINSTANCE;
+ }
+
+} //AlfFactoryImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AlfPackageImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AlfPackageImpl.java
new file mode 100644
index 00000000000..08d8d9c820a
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AlfPackageImpl.java
@@ -0,0 +1,4614 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.alf.alf.AcceptBlock;
+import org.eclipse.papyrus.alf.alf.AcceptClause;
+import org.eclipse.papyrus.alf.alf.AcceptStatement;
+import org.eclipse.papyrus.alf.alf.AccessCompletion;
+import org.eclipse.papyrus.alf.alf.AdditiveExpression;
+import org.eclipse.papyrus.alf.alf.AlfFactory;
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.AndExpression;
+import org.eclipse.papyrus.alf.alf.AnnotatedStatement;
+import org.eclipse.papyrus.alf.alf.Annotation;
+import org.eclipse.papyrus.alf.alf.AnnotationKind;
+import org.eclipse.papyrus.alf.alf.AssignmentCompletion;
+import org.eclipse.papyrus.alf.alf.AssignmentOperator;
+import org.eclipse.papyrus.alf.alf.Block;
+import org.eclipse.papyrus.alf.alf.BlockStatement;
+import org.eclipse.papyrus.alf.alf.BooleanValue;
+import org.eclipse.papyrus.alf.alf.BreakStatement;
+import org.eclipse.papyrus.alf.alf.ClassExtentExpression;
+import org.eclipse.papyrus.alf.alf.ClassificationClause;
+import org.eclipse.papyrus.alf.alf.ClassificationExpression;
+import org.eclipse.papyrus.alf.alf.ClassificationFromClause;
+import org.eclipse.papyrus.alf.alf.ClassificationToClause;
+import org.eclipse.papyrus.alf.alf.ClassifyStatement;
+import org.eclipse.papyrus.alf.alf.CollectOrIterateOperation;
+import org.eclipse.papyrus.alf.alf.CollectOrIterateOperator;
+import org.eclipse.papyrus.alf.alf.CompoundAcceptStatementCompletion;
+import org.eclipse.papyrus.alf.alf.ConcurrentClauses;
+import org.eclipse.papyrus.alf.alf.ConditionalAndExpression;
+import org.eclipse.papyrus.alf.alf.ConditionalOrExpression;
+import org.eclipse.papyrus.alf.alf.ConditionalTestExpression;
+import org.eclipse.papyrus.alf.alf.DoStatement;
+import org.eclipse.papyrus.alf.alf.DocumentedStatement;
+import org.eclipse.papyrus.alf.alf.EmptyStatement;
+import org.eclipse.papyrus.alf.alf.EqualityExpression;
+import org.eclipse.papyrus.alf.alf.ExclusiveOrExpression;
+import org.eclipse.papyrus.alf.alf.Expression;
+import org.eclipse.papyrus.alf.alf.FinalClause;
+import org.eclipse.papyrus.alf.alf.ForAllOrExistsOrOneOperation;
+import org.eclipse.papyrus.alf.alf.ForAllOrExistsOrOneOperator;
+import org.eclipse.papyrus.alf.alf.ForControl;
+import org.eclipse.papyrus.alf.alf.ForStatement;
+import org.eclipse.papyrus.alf.alf.IfStatement;
+import org.eclipse.papyrus.alf.alf.InclusiveOrExpression;
+import org.eclipse.papyrus.alf.alf.InlineStatement;
+import org.eclipse.papyrus.alf.alf.InstanceCreationExpression;
+import org.eclipse.papyrus.alf.alf.InstanceCreationInvocationStatement;
+import org.eclipse.papyrus.alf.alf.InstanceCreationTuple;
+import org.eclipse.papyrus.alf.alf.InstanceCreationTupleElement;
+import org.eclipse.papyrus.alf.alf.InvocationOrAssignementOrDeclarationStatement;
+import org.eclipse.papyrus.alf.alf.IsUniqueOperation;
+import org.eclipse.papyrus.alf.alf.LinkOperationExpression;
+import org.eclipse.papyrus.alf.alf.LinkOperationKind;
+import org.eclipse.papyrus.alf.alf.LinkOperationTuple;
+import org.eclipse.papyrus.alf.alf.LinkOperationTupleElement;
+import org.eclipse.papyrus.alf.alf.LocalNameDeclarationStatement;
+import org.eclipse.papyrus.alf.alf.LoopVariableDefinition;
+import org.eclipse.papyrus.alf.alf.MultiplicativeExpression;
+import org.eclipse.papyrus.alf.alf.NameExpression;
+import org.eclipse.papyrus.alf.alf.NamedTemplateBinding;
+import org.eclipse.papyrus.alf.alf.NonEmptyStatementSequence;
+import org.eclipse.papyrus.alf.alf.NonFinalClause;
+import org.eclipse.papyrus.alf.alf.NonLiteralValueSpecification;
+import org.eclipse.papyrus.alf.alf.NullExpression;
+import org.eclipse.papyrus.alf.alf.OperationCallExpression;
+import org.eclipse.papyrus.alf.alf.ParenthesizedExpression;
+import org.eclipse.papyrus.alf.alf.PartialSequenceConstructionCompletion;
+import org.eclipse.papyrus.alf.alf.PrimaryExpression;
+import org.eclipse.papyrus.alf.alf.PropertyCallExpression;
+import org.eclipse.papyrus.alf.alf.QualifiedNameList;
+import org.eclipse.papyrus.alf.alf.QualifiedNamePath;
+import org.eclipse.papyrus.alf.alf.QualifiedNameWithBinding;
+import org.eclipse.papyrus.alf.alf.ReclassifyAllClause;
+import org.eclipse.papyrus.alf.alf.RelationalExpression;
+import org.eclipse.papyrus.alf.alf.ReturnStatement;
+import org.eclipse.papyrus.alf.alf.SelectOrRejectOperation;
+import org.eclipse.papyrus.alf.alf.SelectOrRejectOperator;
+import org.eclipse.papyrus.alf.alf.SequenceConstructionExpression;
+import org.eclipse.papyrus.alf.alf.SequenceConstructionOrAccessCompletion;
+import org.eclipse.papyrus.alf.alf.SequenceElement;
+import org.eclipse.papyrus.alf.alf.SequenceExpansionExpression;
+import org.eclipse.papyrus.alf.alf.SequenceOperationExpression;
+import org.eclipse.papyrus.alf.alf.SequenceReductionExpression;
+import org.eclipse.papyrus.alf.alf.SequentialClauses;
+import org.eclipse.papyrus.alf.alf.ShiftExpression;
+import org.eclipse.papyrus.alf.alf.SimpleAcceptStatementCompletion;
+import org.eclipse.papyrus.alf.alf.Statement;
+import org.eclipse.papyrus.alf.alf.StatementSequence;
+import org.eclipse.papyrus.alf.alf.SuffixExpression;
+import org.eclipse.papyrus.alf.alf.SuperInvocationExpression;
+import org.eclipse.papyrus.alf.alf.SuperInvocationStatement;
+import org.eclipse.papyrus.alf.alf.SwitchCase;
+import org.eclipse.papyrus.alf.alf.SwitchClause;
+import org.eclipse.papyrus.alf.alf.SwitchDefaultClause;
+import org.eclipse.papyrus.alf.alf.SwitchStatement;
+import org.eclipse.papyrus.alf.alf.TemplateBinding;
+import org.eclipse.papyrus.alf.alf.Test;
+import org.eclipse.papyrus.alf.alf.ThisExpression;
+import org.eclipse.papyrus.alf.alf.ThisInvocationStatement;
+import org.eclipse.papyrus.alf.alf.Tuple;
+import org.eclipse.papyrus.alf.alf.TupleElement;
+import org.eclipse.papyrus.alf.alf.UnaryExpression;
+import org.eclipse.papyrus.alf.alf.UnqualifiedName;
+import org.eclipse.papyrus.alf.alf.ValueSpecification;
+import org.eclipse.papyrus.alf.alf.VariableDeclarationCompletion;
+import org.eclipse.papyrus.alf.alf.WhileStatement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class AlfPackageImpl extends EPackageImpl implements AlfPackage
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass testEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass literalEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass booleaN_LITERALEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass numbeR_LITERALEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass integeR_LITERALEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass unlimiteD_LITERALEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass strinG_LITERALEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass nameExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass qualifiedNamePathEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass unqualifiedNameEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass templateBindingEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass namedTemplateBindingEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass qualifiedNameWithBindingEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass tupleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass tupleElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass expressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass conditionalTestExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass conditionalOrExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass conditionalAndExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass inclusiveOrExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass exclusiveOrExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass andExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass equalityExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass classificationExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass relationalExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass shiftExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass additiveExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass multiplicativeExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass unaryExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass primaryExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass suffixExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass operationCallExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass propertyCallExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass linkOperationExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass linkOperationTupleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass linkOperationTupleElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass sequenceOperationExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass sequenceReductionExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass sequenceExpansionExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass selectOrRejectOperationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass collectOrIterateOperationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass forAllOrExistsOrOneOperationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass isUniqueOperationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass valueSpecificationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass nonLiteralValueSpecificationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass parenthesizedExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass nullExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass thisExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass superInvocationExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass instanceCreationExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass instanceCreationTupleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass instanceCreationTupleElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass sequenceConstructionOrAccessCompletionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass accessCompletionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass partialSequenceConstructionCompletionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass sequenceConstructionExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass sequenceElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass classExtentExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass blockEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass statementSequenceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass documentedStatementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass inlineStatementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass annotatedStatementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass statementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass annotationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass blockStatementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass emptyStatementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass localNameDeclarationStatementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass ifStatementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass sequentialClausesEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass concurrentClausesEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass nonFinalClauseEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass finalClauseEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass switchStatementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass switchClauseEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass switchCaseEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass switchDefaultClauseEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass nonEmptyStatementSequenceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass whileStatementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass doStatementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass forStatementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass forControlEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass loopVariableDefinitionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass breakStatementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass returnStatementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass acceptStatementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass simpleAcceptStatementCompletionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass compoundAcceptStatementCompletionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass acceptBlockEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass acceptClauseEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass classifyStatementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass classificationClauseEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass classificationFromClauseEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass classificationToClauseEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass reclassifyAllClauseEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass qualifiedNameListEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass invocationOrAssignementOrDeclarationStatementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass superInvocationStatementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass thisInvocationStatementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass instanceCreationInvocationStatementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass variableDeclarationCompletionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass assignmentCompletionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum booleanValueEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum linkOperationKindEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum selectOrRejectOperatorEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum collectOrIterateOperatorEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum forAllOrExistsOrOneOperatorEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum annotationKindEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum assignmentOperatorEEnum = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private AlfPackageImpl()
+ {
+ super(eNS_URI, AlfFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link AlfPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static AlfPackage init()
+ {
+ if (isInited) return (AlfPackage)EPackage.Registry.INSTANCE.getEPackage(AlfPackage.eNS_URI);
+
+ // Obtain or create and register package
+ AlfPackageImpl theAlfPackage = (AlfPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof AlfPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new AlfPackageImpl());
+
+ isInited = true;
+
+ // Create package meta-data objects
+ theAlfPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theAlfPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theAlfPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(AlfPackage.eNS_URI, theAlfPackage);
+ return theAlfPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTest()
+ {
+ return testEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTest_Expression()
+ {
+ return (EReference)testEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTest_AssignExpression()
+ {
+ return (EReference)testEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTest_Statements()
+ {
+ return (EReference)testEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTest_Block()
+ {
+ return (EReference)testEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLITERAL()
+ {
+ return literalEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getBOOLEAN_LITERAL()
+ {
+ return booleaN_LITERALEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getBOOLEAN_LITERAL_Value()
+ {
+ return (EAttribute)booleaN_LITERALEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getNUMBER_LITERAL()
+ {
+ return numbeR_LITERALEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getNUMBER_LITERAL_Value()
+ {
+ return (EAttribute)numbeR_LITERALEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getINTEGER_LITERAL()
+ {
+ return integeR_LITERALEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getUNLIMITED_LITERAL()
+ {
+ return unlimiteD_LITERALEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSTRING_LITERAL()
+ {
+ return strinG_LITERALEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSTRING_LITERAL_Value()
+ {
+ return (EAttribute)strinG_LITERALEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getNameExpression()
+ {
+ return nameExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getNameExpression_PrefixOp()
+ {
+ return (EAttribute)nameExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getNameExpression_Path()
+ {
+ return (EReference)nameExpressionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getNameExpression_Id()
+ {
+ return (EAttribute)nameExpressionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getNameExpression_InvocationCompletion()
+ {
+ return (EReference)nameExpressionEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getNameExpression_SequenceConstructionCompletion()
+ {
+ return (EReference)nameExpressionEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getNameExpression_PostfixOp()
+ {
+ return (EAttribute)nameExpressionEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getNameExpression_Suffix()
+ {
+ return (EReference)nameExpressionEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getQualifiedNamePath()
+ {
+ return qualifiedNamePathEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getQualifiedNamePath_Namespace()
+ {
+ return (EReference)qualifiedNamePathEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getUnqualifiedName()
+ {
+ return unqualifiedNameEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getUnqualifiedName_Name()
+ {
+ return (EAttribute)unqualifiedNameEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getUnqualifiedName_TemplateBinding()
+ {
+ return (EReference)unqualifiedNameEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTemplateBinding()
+ {
+ return templateBindingEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTemplateBinding_Bindings()
+ {
+ return (EReference)templateBindingEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getNamedTemplateBinding()
+ {
+ return namedTemplateBindingEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getNamedTemplateBinding_Formal()
+ {
+ return (EAttribute)namedTemplateBindingEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getNamedTemplateBinding_Actual()
+ {
+ return (EReference)namedTemplateBindingEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getQualifiedNameWithBinding()
+ {
+ return qualifiedNameWithBindingEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getQualifiedNameWithBinding_Id()
+ {
+ return (EAttribute)qualifiedNameWithBindingEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getQualifiedNameWithBinding_Binding()
+ {
+ return (EReference)qualifiedNameWithBindingEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getQualifiedNameWithBinding_Remaining()
+ {
+ return (EReference)qualifiedNameWithBindingEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTuple()
+ {
+ return tupleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTuple_TupleElements()
+ {
+ return (EReference)tupleEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTupleElement()
+ {
+ return tupleElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTupleElement_Argument()
+ {
+ return (EReference)tupleElementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getExpression()
+ {
+ return expressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getConditionalTestExpression()
+ {
+ return conditionalTestExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConditionalTestExpression_Exp()
+ {
+ return (EReference)conditionalTestExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConditionalTestExpression_WhenTrue()
+ {
+ return (EReference)conditionalTestExpressionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConditionalTestExpression_WhenFalse()
+ {
+ return (EReference)conditionalTestExpressionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getConditionalOrExpression()
+ {
+ return conditionalOrExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConditionalOrExpression_Exp()
+ {
+ return (EReference)conditionalOrExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getConditionalAndExpression()
+ {
+ return conditionalAndExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConditionalAndExpression_Exp()
+ {
+ return (EReference)conditionalAndExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInclusiveOrExpression()
+ {
+ return inclusiveOrExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInclusiveOrExpression_Exp()
+ {
+ return (EReference)inclusiveOrExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getExclusiveOrExpression()
+ {
+ return exclusiveOrExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getExclusiveOrExpression_Exp()
+ {
+ return (EReference)exclusiveOrExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAndExpression()
+ {
+ return andExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAndExpression_Exp()
+ {
+ return (EReference)andExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEqualityExpression()
+ {
+ return equalityExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getEqualityExpression_Exp()
+ {
+ return (EReference)equalityExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEqualityExpression_Op()
+ {
+ return (EAttribute)equalityExpressionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getClassificationExpression()
+ {
+ return classificationExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClassificationExpression_Exp()
+ {
+ return (EReference)classificationExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getClassificationExpression_Op()
+ {
+ return (EAttribute)classificationExpressionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClassificationExpression_TypeName()
+ {
+ return (EReference)classificationExpressionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getRelationalExpression()
+ {
+ return relationalExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRelationalExpression_Left()
+ {
+ return (EReference)relationalExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getRelationalExpression_Op()
+ {
+ return (EAttribute)relationalExpressionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRelationalExpression_Right()
+ {
+ return (EReference)relationalExpressionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getShiftExpression()
+ {
+ return shiftExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getShiftExpression_Exp()
+ {
+ return (EReference)shiftExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getShiftExpression_Op()
+ {
+ return (EAttribute)shiftExpressionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAdditiveExpression()
+ {
+ return additiveExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAdditiveExpression_Exp()
+ {
+ return (EReference)additiveExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAdditiveExpression_Op()
+ {
+ return (EAttribute)additiveExpressionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMultiplicativeExpression()
+ {
+ return multiplicativeExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMultiplicativeExpression_Exp()
+ {
+ return (EReference)multiplicativeExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMultiplicativeExpression_Op()
+ {
+ return (EAttribute)multiplicativeExpressionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getUnaryExpression()
+ {
+ return unaryExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getUnaryExpression_Op()
+ {
+ return (EAttribute)unaryExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getUnaryExpression_Exp()
+ {
+ return (EReference)unaryExpressionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPrimaryExpression()
+ {
+ return primaryExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPrimaryExpression_Prefix()
+ {
+ return (EReference)primaryExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSuffixExpression()
+ {
+ return suffixExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getOperationCallExpression()
+ {
+ return operationCallExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getOperationCallExpression_OperationName()
+ {
+ return (EAttribute)operationCallExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getOperationCallExpression_Tuple()
+ {
+ return (EReference)operationCallExpressionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getOperationCallExpression_Suffix()
+ {
+ return (EReference)operationCallExpressionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPropertyCallExpression()
+ {
+ return propertyCallExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPropertyCallExpression_PropertyName()
+ {
+ return (EAttribute)propertyCallExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPropertyCallExpression_Index()
+ {
+ return (EReference)propertyCallExpressionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPropertyCallExpression_Suffix()
+ {
+ return (EReference)propertyCallExpressionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLinkOperationExpression()
+ {
+ return linkOperationExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLinkOperationExpression_Kind()
+ {
+ return (EAttribute)linkOperationExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLinkOperationExpression_Tuple()
+ {
+ return (EReference)linkOperationExpressionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLinkOperationTuple()
+ {
+ return linkOperationTupleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLinkOperationTuple_LinkOperationTupleElement()
+ {
+ return (EReference)linkOperationTupleEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLinkOperationTupleElement()
+ {
+ return linkOperationTupleElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLinkOperationTupleElement_Role()
+ {
+ return (EAttribute)linkOperationTupleElementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLinkOperationTupleElement_RoleIndex()
+ {
+ return (EReference)linkOperationTupleElementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLinkOperationTupleElement_Object()
+ {
+ return (EReference)linkOperationTupleElementEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSequenceOperationExpression()
+ {
+ return sequenceOperationExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSequenceOperationExpression_OperationName()
+ {
+ return (EReference)sequenceOperationExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSequenceOperationExpression_Tuple()
+ {
+ return (EReference)sequenceOperationExpressionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSequenceOperationExpression_Suffix()
+ {
+ return (EReference)sequenceOperationExpressionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSequenceReductionExpression()
+ {
+ return sequenceReductionExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSequenceReductionExpression_IsOrdered()
+ {
+ return (EAttribute)sequenceReductionExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSequenceReductionExpression_Behavior()
+ {
+ return (EReference)sequenceReductionExpressionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSequenceReductionExpression_Suffix()
+ {
+ return (EReference)sequenceReductionExpressionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSequenceExpansionExpression()
+ {
+ return sequenceExpansionExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSequenceExpansionExpression_Name()
+ {
+ return (EAttribute)sequenceExpansionExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSequenceExpansionExpression_Expr()
+ {
+ return (EReference)sequenceExpansionExpressionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSequenceExpansionExpression_Suffix()
+ {
+ return (EReference)sequenceExpansionExpressionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSelectOrRejectOperation()
+ {
+ return selectOrRejectOperationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSelectOrRejectOperation_Op()
+ {
+ return (EAttribute)selectOrRejectOperationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCollectOrIterateOperation()
+ {
+ return collectOrIterateOperationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCollectOrIterateOperation_Op()
+ {
+ return (EAttribute)collectOrIterateOperationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getForAllOrExistsOrOneOperation()
+ {
+ return forAllOrExistsOrOneOperationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getForAllOrExistsOrOneOperation_Op()
+ {
+ return (EAttribute)forAllOrExistsOrOneOperationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIsUniqueOperation()
+ {
+ return isUniqueOperationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getValueSpecification()
+ {
+ return valueSpecificationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getNonLiteralValueSpecification()
+ {
+ return nonLiteralValueSpecificationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getParenthesizedExpression()
+ {
+ return parenthesizedExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getParenthesizedExpression_ExpOrTypeCast()
+ {
+ return (EReference)parenthesizedExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getParenthesizedExpression_Casted()
+ {
+ return (EReference)parenthesizedExpressionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getParenthesizedExpression_Suffix()
+ {
+ return (EReference)parenthesizedExpressionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getNullExpression()
+ {
+ return nullExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getThisExpression()
+ {
+ return thisExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getThisExpression_Suffix()
+ {
+ return (EReference)thisExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSuperInvocationExpression()
+ {
+ return superInvocationExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSuperInvocationExpression_Tuple()
+ {
+ return (EReference)superInvocationExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSuperInvocationExpression_OperationName()
+ {
+ return (EReference)superInvocationExpressionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInstanceCreationExpression()
+ {
+ return instanceCreationExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInstanceCreationExpression_Constructor()
+ {
+ return (EReference)instanceCreationExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInstanceCreationExpression_Tuple()
+ {
+ return (EReference)instanceCreationExpressionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInstanceCreationExpression_Suffix()
+ {
+ return (EReference)instanceCreationExpressionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInstanceCreationTuple()
+ {
+ return instanceCreationTupleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInstanceCreationTuple_InstanceCreationTupleElement()
+ {
+ return (EReference)instanceCreationTupleEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInstanceCreationTupleElement()
+ {
+ return instanceCreationTupleElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getInstanceCreationTupleElement_Role()
+ {
+ return (EAttribute)instanceCreationTupleElementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInstanceCreationTupleElement_Object()
+ {
+ return (EReference)instanceCreationTupleElementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSequenceConstructionOrAccessCompletion()
+ {
+ return sequenceConstructionOrAccessCompletionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSequenceConstructionOrAccessCompletion_MultiplicityIndicator()
+ {
+ return (EAttribute)sequenceConstructionOrAccessCompletionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSequenceConstructionOrAccessCompletion_AccessCompletion()
+ {
+ return (EReference)sequenceConstructionOrAccessCompletionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSequenceConstructionOrAccessCompletion_SequenceCompletion()
+ {
+ return (EReference)sequenceConstructionOrAccessCompletionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSequenceConstructionOrAccessCompletion_Expression()
+ {
+ return (EReference)sequenceConstructionOrAccessCompletionEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAccessCompletion()
+ {
+ return accessCompletionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAccessCompletion_AccessIndex()
+ {
+ return (EReference)accessCompletionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPartialSequenceConstructionCompletion()
+ {
+ return partialSequenceConstructionCompletionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPartialSequenceConstructionCompletion_Expression()
+ {
+ return (EReference)partialSequenceConstructionCompletionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSequenceConstructionExpression()
+ {
+ return sequenceConstructionExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSequenceConstructionExpression_SequenceElement()
+ {
+ return (EReference)sequenceConstructionExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSequenceConstructionExpression_RangeUpper()
+ {
+ return (EReference)sequenceConstructionExpressionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSequenceElement()
+ {
+ return sequenceElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getClassExtentExpression()
+ {
+ return classExtentExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getBlock()
+ {
+ return blockEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getBlock_Sequence()
+ {
+ return (EReference)blockEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getStatementSequence()
+ {
+ return statementSequenceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStatementSequence_Statements()
+ {
+ return (EReference)statementSequenceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDocumentedStatement()
+ {
+ return documentedStatementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDocumentedStatement_Comment()
+ {
+ return (EAttribute)documentedStatementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDocumentedStatement_Statement()
+ {
+ return (EReference)documentedStatementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInlineStatement()
+ {
+ return inlineStatementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getInlineStatement_LangageName()
+ {
+ return (EAttribute)inlineStatementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getInlineStatement_Body()
+ {
+ return (EAttribute)inlineStatementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAnnotatedStatement()
+ {
+ return annotatedStatementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAnnotatedStatement_Annotation()
+ {
+ return (EReference)annotatedStatementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAnnotatedStatement_Statement()
+ {
+ return (EReference)annotatedStatementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getStatement()
+ {
+ return statementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAnnotation()
+ {
+ return annotationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAnnotation_Kind()
+ {
+ return (EAttribute)annotationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAnnotation_Args()
+ {
+ return (EAttribute)annotationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getBlockStatement()
+ {
+ return blockStatementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getBlockStatement_Block()
+ {
+ return (EReference)blockStatementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEmptyStatement()
+ {
+ return emptyStatementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLocalNameDeclarationStatement()
+ {
+ return localNameDeclarationStatementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLocalNameDeclarationStatement_VarName()
+ {
+ return (EAttribute)localNameDeclarationStatementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLocalNameDeclarationStatement_Type()
+ {
+ return (EReference)localNameDeclarationStatementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLocalNameDeclarationStatement_MultiplicityIndicator()
+ {
+ return (EAttribute)localNameDeclarationStatementEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLocalNameDeclarationStatement_Init()
+ {
+ return (EReference)localNameDeclarationStatementEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIfStatement()
+ {
+ return ifStatementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getIfStatement_SequentialClausses()
+ {
+ return (EReference)ifStatementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getIfStatement_FinalClause()
+ {
+ return (EReference)ifStatementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSequentialClauses()
+ {
+ return sequentialClausesEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSequentialClauses_ConccurentClauses()
+ {
+ return (EReference)sequentialClausesEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getConcurrentClauses()
+ {
+ return concurrentClausesEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConcurrentClauses_NonFinalClause()
+ {
+ return (EReference)concurrentClausesEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getNonFinalClause()
+ {
+ return nonFinalClauseEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getNonFinalClause_Condition()
+ {
+ return (EReference)nonFinalClauseEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getNonFinalClause_Block()
+ {
+ return (EReference)nonFinalClauseEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFinalClause()
+ {
+ return finalClauseEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFinalClause_Block()
+ {
+ return (EReference)finalClauseEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSwitchStatement()
+ {
+ return switchStatementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSwitchStatement_Expression()
+ {
+ return (EReference)switchStatementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSwitchStatement_SwitchClause()
+ {
+ return (EReference)switchStatementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSwitchStatement_DefaultClause()
+ {
+ return (EReference)switchStatementEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSwitchClause()
+ {
+ return switchClauseEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSwitchClause_SwitchCase()
+ {
+ return (EReference)switchClauseEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSwitchClause_StatementSequence()
+ {
+ return (EReference)switchClauseEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSwitchCase()
+ {
+ return switchCaseEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSwitchCase_Expression()
+ {
+ return (EReference)switchCaseEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSwitchDefaultClause()
+ {
+ return switchDefaultClauseEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSwitchDefaultClause_StatementSequence()
+ {
+ return (EReference)switchDefaultClauseEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getNonEmptyStatementSequence()
+ {
+ return nonEmptyStatementSequenceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getNonEmptyStatementSequence_Statement()
+ {
+ return (EReference)nonEmptyStatementSequenceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getWhileStatement()
+ {
+ return whileStatementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getWhileStatement_Condition()
+ {
+ return (EReference)whileStatementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getWhileStatement_Block()
+ {
+ return (EReference)whileStatementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDoStatement()
+ {
+ return doStatementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDoStatement_Block()
+ {
+ return (EReference)doStatementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDoStatement_Condition()
+ {
+ return (EReference)doStatementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getForStatement()
+ {
+ return forStatementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getForStatement_Control()
+ {
+ return (EReference)forStatementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getForStatement_Block()
+ {
+ return (EReference)forStatementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getForControl()
+ {
+ return forControlEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getForControl_LoopVariableDefinition()
+ {
+ return (EReference)forControlEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLoopVariableDefinition()
+ {
+ return loopVariableDefinitionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLoopVariableDefinition_Name()
+ {
+ return (EAttribute)loopVariableDefinitionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLoopVariableDefinition_Expression1()
+ {
+ return (EReference)loopVariableDefinitionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLoopVariableDefinition_Expression2()
+ {
+ return (EReference)loopVariableDefinitionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLoopVariableDefinition_Type()
+ {
+ return (EReference)loopVariableDefinitionEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLoopVariableDefinition_Expression()
+ {
+ return (EReference)loopVariableDefinitionEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getBreakStatement()
+ {
+ return breakStatementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getReturnStatement()
+ {
+ return returnStatementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getReturnStatement_Expression()
+ {
+ return (EReference)returnStatementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAcceptStatement()
+ {
+ return acceptStatementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAcceptStatement_Clause()
+ {
+ return (EReference)acceptStatementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAcceptStatement_SimpleAccept()
+ {
+ return (EReference)acceptStatementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAcceptStatement_CompoundAccept()
+ {
+ return (EReference)acceptStatementEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSimpleAcceptStatementCompletion()
+ {
+ return simpleAcceptStatementCompletionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCompoundAcceptStatementCompletion()
+ {
+ return compoundAcceptStatementCompletionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCompoundAcceptStatementCompletion_Block()
+ {
+ return (EReference)compoundAcceptStatementCompletionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCompoundAcceptStatementCompletion_AcceptBlock()
+ {
+ return (EReference)compoundAcceptStatementCompletionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAcceptBlock()
+ {
+ return acceptBlockEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAcceptBlock_Clause()
+ {
+ return (EReference)acceptBlockEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAcceptBlock_Block()
+ {
+ return (EReference)acceptBlockEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAcceptClause()
+ {
+ return acceptClauseEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAcceptClause_Name()
+ {
+ return (EAttribute)acceptClauseEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAcceptClause_QualifiedNameList()
+ {
+ return (EReference)acceptClauseEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getClassifyStatement()
+ {
+ return classifyStatementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClassifyStatement_Expression()
+ {
+ return (EReference)classifyStatementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClassifyStatement_Clause()
+ {
+ return (EReference)classifyStatementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getClassificationClause()
+ {
+ return classificationClauseEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClassificationClause_ClassifyFromClause()
+ {
+ return (EReference)classificationClauseEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClassificationClause_ClassifyToClause()
+ {
+ return (EReference)classificationClauseEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClassificationClause_ReclassyAllClause()
+ {
+ return (EReference)classificationClauseEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getClassificationFromClause()
+ {
+ return classificationFromClauseEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClassificationFromClause_QualifiedNameList()
+ {
+ return (EReference)classificationFromClauseEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getClassificationToClause()
+ {
+ return classificationToClauseEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClassificationToClause_QualifiedNameList()
+ {
+ return (EReference)classificationToClauseEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getReclassifyAllClause()
+ {
+ return reclassifyAllClauseEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getQualifiedNameList()
+ {
+ return qualifiedNameListEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getQualifiedNameList_QualifiedName()
+ {
+ return (EReference)qualifiedNameListEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInvocationOrAssignementOrDeclarationStatement()
+ {
+ return invocationOrAssignementOrDeclarationStatementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInvocationOrAssignementOrDeclarationStatement_TypePart_OR_assignedPart_OR_invocationPart()
+ {
+ return (EReference)invocationOrAssignementOrDeclarationStatementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInvocationOrAssignementOrDeclarationStatement_VariableDeclarationCompletion()
+ {
+ return (EReference)invocationOrAssignementOrDeclarationStatementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInvocationOrAssignementOrDeclarationStatement_AssignmentCompletion()
+ {
+ return (EReference)invocationOrAssignementOrDeclarationStatementEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSuperInvocationStatement()
+ {
+ return superInvocationStatementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSuperInvocationStatement__super()
+ {
+ return (EReference)superInvocationStatementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getThisInvocationStatement()
+ {
+ return thisInvocationStatementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getThisInvocationStatement__this()
+ {
+ return (EReference)thisInvocationStatementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getThisInvocationStatement_AssignmentCompletion()
+ {
+ return (EReference)thisInvocationStatementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInstanceCreationInvocationStatement()
+ {
+ return instanceCreationInvocationStatementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInstanceCreationInvocationStatement__new()
+ {
+ return (EReference)instanceCreationInvocationStatementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getVariableDeclarationCompletion()
+ {
+ return variableDeclarationCompletionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getVariableDeclarationCompletion_MultiplicityIndicator()
+ {
+ return (EAttribute)variableDeclarationCompletionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getVariableDeclarationCompletion_VariableName()
+ {
+ return (EAttribute)variableDeclarationCompletionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getVariableDeclarationCompletion_InitValue()
+ {
+ return (EReference)variableDeclarationCompletionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAssignmentCompletion()
+ {
+ return assignmentCompletionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAssignmentCompletion_Op()
+ {
+ return (EAttribute)assignmentCompletionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAssignmentCompletion_RightHandSide()
+ {
+ return (EReference)assignmentCompletionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getBooleanValue()
+ {
+ return booleanValueEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getLinkOperationKind()
+ {
+ return linkOperationKindEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getSelectOrRejectOperator()
+ {
+ return selectOrRejectOperatorEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getCollectOrIterateOperator()
+ {
+ return collectOrIterateOperatorEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getForAllOrExistsOrOneOperator()
+ {
+ return forAllOrExistsOrOneOperatorEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getAnnotationKind()
+ {
+ return annotationKindEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getAssignmentOperator()
+ {
+ return assignmentOperatorEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AlfFactory getAlfFactory()
+ {
+ return (AlfFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents()
+ {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ testEClass = createEClass(TEST);
+ createEReference(testEClass, TEST__EXPRESSION);
+ createEReference(testEClass, TEST__ASSIGN_EXPRESSION);
+ createEReference(testEClass, TEST__STATEMENTS);
+ createEReference(testEClass, TEST__BLOCK);
+
+ literalEClass = createEClass(LITERAL);
+
+ booleaN_LITERALEClass = createEClass(BOOLEAN_LITERAL);
+ createEAttribute(booleaN_LITERALEClass, BOOLEAN_LITERAL__VALUE);
+
+ numbeR_LITERALEClass = createEClass(NUMBER_LITERAL);
+ createEAttribute(numbeR_LITERALEClass, NUMBER_LITERAL__VALUE);
+
+ integeR_LITERALEClass = createEClass(INTEGER_LITERAL);
+
+ unlimiteD_LITERALEClass = createEClass(UNLIMITED_LITERAL);
+
+ strinG_LITERALEClass = createEClass(STRING_LITERAL);
+ createEAttribute(strinG_LITERALEClass, STRING_LITERAL__VALUE);
+
+ nameExpressionEClass = createEClass(NAME_EXPRESSION);
+ createEAttribute(nameExpressionEClass, NAME_EXPRESSION__PREFIX_OP);
+ createEReference(nameExpressionEClass, NAME_EXPRESSION__PATH);
+ createEAttribute(nameExpressionEClass, NAME_EXPRESSION__ID);
+ createEReference(nameExpressionEClass, NAME_EXPRESSION__INVOCATION_COMPLETION);
+ createEReference(nameExpressionEClass, NAME_EXPRESSION__SEQUENCE_CONSTRUCTION_COMPLETION);
+ createEAttribute(nameExpressionEClass, NAME_EXPRESSION__POSTFIX_OP);
+ createEReference(nameExpressionEClass, NAME_EXPRESSION__SUFFIX);
+
+ qualifiedNamePathEClass = createEClass(QUALIFIED_NAME_PATH);
+ createEReference(qualifiedNamePathEClass, QUALIFIED_NAME_PATH__NAMESPACE);
+
+ unqualifiedNameEClass = createEClass(UNQUALIFIED_NAME);
+ createEAttribute(unqualifiedNameEClass, UNQUALIFIED_NAME__NAME);
+ createEReference(unqualifiedNameEClass, UNQUALIFIED_NAME__TEMPLATE_BINDING);
+
+ templateBindingEClass = createEClass(TEMPLATE_BINDING);
+ createEReference(templateBindingEClass, TEMPLATE_BINDING__BINDINGS);
+
+ namedTemplateBindingEClass = createEClass(NAMED_TEMPLATE_BINDING);
+ createEAttribute(namedTemplateBindingEClass, NAMED_TEMPLATE_BINDING__FORMAL);
+ createEReference(namedTemplateBindingEClass, NAMED_TEMPLATE_BINDING__ACTUAL);
+
+ qualifiedNameWithBindingEClass = createEClass(QUALIFIED_NAME_WITH_BINDING);
+ createEAttribute(qualifiedNameWithBindingEClass, QUALIFIED_NAME_WITH_BINDING__ID);
+ createEReference(qualifiedNameWithBindingEClass, QUALIFIED_NAME_WITH_BINDING__BINDING);
+ createEReference(qualifiedNameWithBindingEClass, QUALIFIED_NAME_WITH_BINDING__REMAINING);
+
+ tupleEClass = createEClass(TUPLE);
+ createEReference(tupleEClass, TUPLE__TUPLE_ELEMENTS);
+
+ tupleElementEClass = createEClass(TUPLE_ELEMENT);
+ createEReference(tupleElementEClass, TUPLE_ELEMENT__ARGUMENT);
+
+ expressionEClass = createEClass(EXPRESSION);
+
+ conditionalTestExpressionEClass = createEClass(CONDITIONAL_TEST_EXPRESSION);
+ createEReference(conditionalTestExpressionEClass, CONDITIONAL_TEST_EXPRESSION__EXP);
+ createEReference(conditionalTestExpressionEClass, CONDITIONAL_TEST_EXPRESSION__WHEN_TRUE);
+ createEReference(conditionalTestExpressionEClass, CONDITIONAL_TEST_EXPRESSION__WHEN_FALSE);
+
+ conditionalOrExpressionEClass = createEClass(CONDITIONAL_OR_EXPRESSION);
+ createEReference(conditionalOrExpressionEClass, CONDITIONAL_OR_EXPRESSION__EXP);
+
+ conditionalAndExpressionEClass = createEClass(CONDITIONAL_AND_EXPRESSION);
+ createEReference(conditionalAndExpressionEClass, CONDITIONAL_AND_EXPRESSION__EXP);
+
+ inclusiveOrExpressionEClass = createEClass(INCLUSIVE_OR_EXPRESSION);
+ createEReference(inclusiveOrExpressionEClass, INCLUSIVE_OR_EXPRESSION__EXP);
+
+ exclusiveOrExpressionEClass = createEClass(EXCLUSIVE_OR_EXPRESSION);
+ createEReference(exclusiveOrExpressionEClass, EXCLUSIVE_OR_EXPRESSION__EXP);
+
+ andExpressionEClass = createEClass(AND_EXPRESSION);
+ createEReference(andExpressionEClass, AND_EXPRESSION__EXP);
+
+ equalityExpressionEClass = createEClass(EQUALITY_EXPRESSION);
+ createEReference(equalityExpressionEClass, EQUALITY_EXPRESSION__EXP);
+ createEAttribute(equalityExpressionEClass, EQUALITY_EXPRESSION__OP);
+
+ classificationExpressionEClass = createEClass(CLASSIFICATION_EXPRESSION);
+ createEReference(classificationExpressionEClass, CLASSIFICATION_EXPRESSION__EXP);
+ createEAttribute(classificationExpressionEClass, CLASSIFICATION_EXPRESSION__OP);
+ createEReference(classificationExpressionEClass, CLASSIFICATION_EXPRESSION__TYPE_NAME);
+
+ relationalExpressionEClass = createEClass(RELATIONAL_EXPRESSION);
+ createEReference(relationalExpressionEClass, RELATIONAL_EXPRESSION__LEFT);
+ createEAttribute(relationalExpressionEClass, RELATIONAL_EXPRESSION__OP);
+ createEReference(relationalExpressionEClass, RELATIONAL_EXPRESSION__RIGHT);
+
+ shiftExpressionEClass = createEClass(SHIFT_EXPRESSION);
+ createEReference(shiftExpressionEClass, SHIFT_EXPRESSION__EXP);
+ createEAttribute(shiftExpressionEClass, SHIFT_EXPRESSION__OP);
+
+ additiveExpressionEClass = createEClass(ADDITIVE_EXPRESSION);
+ createEReference(additiveExpressionEClass, ADDITIVE_EXPRESSION__EXP);
+ createEAttribute(additiveExpressionEClass, ADDITIVE_EXPRESSION__OP);
+
+ multiplicativeExpressionEClass = createEClass(MULTIPLICATIVE_EXPRESSION);
+ createEReference(multiplicativeExpressionEClass, MULTIPLICATIVE_EXPRESSION__EXP);
+ createEAttribute(multiplicativeExpressionEClass, MULTIPLICATIVE_EXPRESSION__OP);
+
+ unaryExpressionEClass = createEClass(UNARY_EXPRESSION);
+ createEAttribute(unaryExpressionEClass, UNARY_EXPRESSION__OP);
+ createEReference(unaryExpressionEClass, UNARY_EXPRESSION__EXP);
+
+ primaryExpressionEClass = createEClass(PRIMARY_EXPRESSION);
+ createEReference(primaryExpressionEClass, PRIMARY_EXPRESSION__PREFIX);
+
+ suffixExpressionEClass = createEClass(SUFFIX_EXPRESSION);
+
+ operationCallExpressionEClass = createEClass(OPERATION_CALL_EXPRESSION);
+ createEAttribute(operationCallExpressionEClass, OPERATION_CALL_EXPRESSION__OPERATION_NAME);
+ createEReference(operationCallExpressionEClass, OPERATION_CALL_EXPRESSION__TUPLE);
+ createEReference(operationCallExpressionEClass, OPERATION_CALL_EXPRESSION__SUFFIX);
+
+ propertyCallExpressionEClass = createEClass(PROPERTY_CALL_EXPRESSION);
+ createEAttribute(propertyCallExpressionEClass, PROPERTY_CALL_EXPRESSION__PROPERTY_NAME);
+ createEReference(propertyCallExpressionEClass, PROPERTY_CALL_EXPRESSION__INDEX);
+ createEReference(propertyCallExpressionEClass, PROPERTY_CALL_EXPRESSION__SUFFIX);
+
+ linkOperationExpressionEClass = createEClass(LINK_OPERATION_EXPRESSION);
+ createEAttribute(linkOperationExpressionEClass, LINK_OPERATION_EXPRESSION__KIND);
+ createEReference(linkOperationExpressionEClass, LINK_OPERATION_EXPRESSION__TUPLE);
+
+ linkOperationTupleEClass = createEClass(LINK_OPERATION_TUPLE);
+ createEReference(linkOperationTupleEClass, LINK_OPERATION_TUPLE__LINK_OPERATION_TUPLE_ELEMENT);
+
+ linkOperationTupleElementEClass = createEClass(LINK_OPERATION_TUPLE_ELEMENT);
+ createEAttribute(linkOperationTupleElementEClass, LINK_OPERATION_TUPLE_ELEMENT__ROLE);
+ createEReference(linkOperationTupleElementEClass, LINK_OPERATION_TUPLE_ELEMENT__ROLE_INDEX);
+ createEReference(linkOperationTupleElementEClass, LINK_OPERATION_TUPLE_ELEMENT__OBJECT);
+
+ sequenceOperationExpressionEClass = createEClass(SEQUENCE_OPERATION_EXPRESSION);
+ createEReference(sequenceOperationExpressionEClass, SEQUENCE_OPERATION_EXPRESSION__OPERATION_NAME);
+ createEReference(sequenceOperationExpressionEClass, SEQUENCE_OPERATION_EXPRESSION__TUPLE);
+ createEReference(sequenceOperationExpressionEClass, SEQUENCE_OPERATION_EXPRESSION__SUFFIX);
+
+ sequenceReductionExpressionEClass = createEClass(SEQUENCE_REDUCTION_EXPRESSION);
+ createEAttribute(sequenceReductionExpressionEClass, SEQUENCE_REDUCTION_EXPRESSION__IS_ORDERED);
+ createEReference(sequenceReductionExpressionEClass, SEQUENCE_REDUCTION_EXPRESSION__BEHAVIOR);
+ createEReference(sequenceReductionExpressionEClass, SEQUENCE_REDUCTION_EXPRESSION__SUFFIX);
+
+ sequenceExpansionExpressionEClass = createEClass(SEQUENCE_EXPANSION_EXPRESSION);
+ createEAttribute(sequenceExpansionExpressionEClass, SEQUENCE_EXPANSION_EXPRESSION__NAME);
+ createEReference(sequenceExpansionExpressionEClass, SEQUENCE_EXPANSION_EXPRESSION__EXPR);
+ createEReference(sequenceExpansionExpressionEClass, SEQUENCE_EXPANSION_EXPRESSION__SUFFIX);
+
+ selectOrRejectOperationEClass = createEClass(SELECT_OR_REJECT_OPERATION);
+ createEAttribute(selectOrRejectOperationEClass, SELECT_OR_REJECT_OPERATION__OP);
+
+ collectOrIterateOperationEClass = createEClass(COLLECT_OR_ITERATE_OPERATION);
+ createEAttribute(collectOrIterateOperationEClass, COLLECT_OR_ITERATE_OPERATION__OP);
+
+ forAllOrExistsOrOneOperationEClass = createEClass(FOR_ALL_OR_EXISTS_OR_ONE_OPERATION);
+ createEAttribute(forAllOrExistsOrOneOperationEClass, FOR_ALL_OR_EXISTS_OR_ONE_OPERATION__OP);
+
+ isUniqueOperationEClass = createEClass(IS_UNIQUE_OPERATION);
+
+ valueSpecificationEClass = createEClass(VALUE_SPECIFICATION);
+
+ nonLiteralValueSpecificationEClass = createEClass(NON_LITERAL_VALUE_SPECIFICATION);
+
+ parenthesizedExpressionEClass = createEClass(PARENTHESIZED_EXPRESSION);
+ createEReference(parenthesizedExpressionEClass, PARENTHESIZED_EXPRESSION__EXP_OR_TYPE_CAST);
+ createEReference(parenthesizedExpressionEClass, PARENTHESIZED_EXPRESSION__CASTED);
+ createEReference(parenthesizedExpressionEClass, PARENTHESIZED_EXPRESSION__SUFFIX);
+
+ nullExpressionEClass = createEClass(NULL_EXPRESSION);
+
+ thisExpressionEClass = createEClass(THIS_EXPRESSION);
+ createEReference(thisExpressionEClass, THIS_EXPRESSION__SUFFIX);
+
+ superInvocationExpressionEClass = createEClass(SUPER_INVOCATION_EXPRESSION);
+ createEReference(superInvocationExpressionEClass, SUPER_INVOCATION_EXPRESSION__TUPLE);
+ createEReference(superInvocationExpressionEClass, SUPER_INVOCATION_EXPRESSION__OPERATION_NAME);
+
+ instanceCreationExpressionEClass = createEClass(INSTANCE_CREATION_EXPRESSION);
+ createEReference(instanceCreationExpressionEClass, INSTANCE_CREATION_EXPRESSION__CONSTRUCTOR);
+ createEReference(instanceCreationExpressionEClass, INSTANCE_CREATION_EXPRESSION__TUPLE);
+ createEReference(instanceCreationExpressionEClass, INSTANCE_CREATION_EXPRESSION__SUFFIX);
+
+ instanceCreationTupleEClass = createEClass(INSTANCE_CREATION_TUPLE);
+ createEReference(instanceCreationTupleEClass, INSTANCE_CREATION_TUPLE__INSTANCE_CREATION_TUPLE_ELEMENT);
+
+ instanceCreationTupleElementEClass = createEClass(INSTANCE_CREATION_TUPLE_ELEMENT);
+ createEAttribute(instanceCreationTupleElementEClass, INSTANCE_CREATION_TUPLE_ELEMENT__ROLE);
+ createEReference(instanceCreationTupleElementEClass, INSTANCE_CREATION_TUPLE_ELEMENT__OBJECT);
+
+ sequenceConstructionOrAccessCompletionEClass = createEClass(SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION);
+ createEAttribute(sequenceConstructionOrAccessCompletionEClass, SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__MULTIPLICITY_INDICATOR);
+ createEReference(sequenceConstructionOrAccessCompletionEClass, SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__ACCESS_COMPLETION);
+ createEReference(sequenceConstructionOrAccessCompletionEClass, SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__SEQUENCE_COMPLETION);
+ createEReference(sequenceConstructionOrAccessCompletionEClass, SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__EXPRESSION);
+
+ accessCompletionEClass = createEClass(ACCESS_COMPLETION);
+ createEReference(accessCompletionEClass, ACCESS_COMPLETION__ACCESS_INDEX);
+
+ partialSequenceConstructionCompletionEClass = createEClass(PARTIAL_SEQUENCE_CONSTRUCTION_COMPLETION);
+ createEReference(partialSequenceConstructionCompletionEClass, PARTIAL_SEQUENCE_CONSTRUCTION_COMPLETION__EXPRESSION);
+
+ sequenceConstructionExpressionEClass = createEClass(SEQUENCE_CONSTRUCTION_EXPRESSION);
+ createEReference(sequenceConstructionExpressionEClass, SEQUENCE_CONSTRUCTION_EXPRESSION__SEQUENCE_ELEMENT);
+ createEReference(sequenceConstructionExpressionEClass, SEQUENCE_CONSTRUCTION_EXPRESSION__RANGE_UPPER);
+
+ sequenceElementEClass = createEClass(SEQUENCE_ELEMENT);
+
+ classExtentExpressionEClass = createEClass(CLASS_EXTENT_EXPRESSION);
+
+ blockEClass = createEClass(BLOCK);
+ createEReference(blockEClass, BLOCK__SEQUENCE);
+
+ statementSequenceEClass = createEClass(STATEMENT_SEQUENCE);
+ createEReference(statementSequenceEClass, STATEMENT_SEQUENCE__STATEMENTS);
+
+ documentedStatementEClass = createEClass(DOCUMENTED_STATEMENT);
+ createEAttribute(documentedStatementEClass, DOCUMENTED_STATEMENT__COMMENT);
+ createEReference(documentedStatementEClass, DOCUMENTED_STATEMENT__STATEMENT);
+
+ inlineStatementEClass = createEClass(INLINE_STATEMENT);
+ createEAttribute(inlineStatementEClass, INLINE_STATEMENT__LANGAGE_NAME);
+ createEAttribute(inlineStatementEClass, INLINE_STATEMENT__BODY);
+
+ annotatedStatementEClass = createEClass(ANNOTATED_STATEMENT);
+ createEReference(annotatedStatementEClass, ANNOTATED_STATEMENT__ANNOTATION);
+ createEReference(annotatedStatementEClass, ANNOTATED_STATEMENT__STATEMENT);
+
+ statementEClass = createEClass(STATEMENT);
+
+ annotationEClass = createEClass(ANNOTATION);
+ createEAttribute(annotationEClass, ANNOTATION__KIND);
+ createEAttribute(annotationEClass, ANNOTATION__ARGS);
+
+ blockStatementEClass = createEClass(BLOCK_STATEMENT);
+ createEReference(blockStatementEClass, BLOCK_STATEMENT__BLOCK);
+
+ emptyStatementEClass = createEClass(EMPTY_STATEMENT);
+
+ localNameDeclarationStatementEClass = createEClass(LOCAL_NAME_DECLARATION_STATEMENT);
+ createEAttribute(localNameDeclarationStatementEClass, LOCAL_NAME_DECLARATION_STATEMENT__VAR_NAME);
+ createEReference(localNameDeclarationStatementEClass, LOCAL_NAME_DECLARATION_STATEMENT__TYPE);
+ createEAttribute(localNameDeclarationStatementEClass, LOCAL_NAME_DECLARATION_STATEMENT__MULTIPLICITY_INDICATOR);
+ createEReference(localNameDeclarationStatementEClass, LOCAL_NAME_DECLARATION_STATEMENT__INIT);
+
+ ifStatementEClass = createEClass(IF_STATEMENT);
+ createEReference(ifStatementEClass, IF_STATEMENT__SEQUENTIAL_CLAUSSES);
+ createEReference(ifStatementEClass, IF_STATEMENT__FINAL_CLAUSE);
+
+ sequentialClausesEClass = createEClass(SEQUENTIAL_CLAUSES);
+ createEReference(sequentialClausesEClass, SEQUENTIAL_CLAUSES__CONCCURENT_CLAUSES);
+
+ concurrentClausesEClass = createEClass(CONCURRENT_CLAUSES);
+ createEReference(concurrentClausesEClass, CONCURRENT_CLAUSES__NON_FINAL_CLAUSE);
+
+ nonFinalClauseEClass = createEClass(NON_FINAL_CLAUSE);
+ createEReference(nonFinalClauseEClass, NON_FINAL_CLAUSE__CONDITION);
+ createEReference(nonFinalClauseEClass, NON_FINAL_CLAUSE__BLOCK);
+
+ finalClauseEClass = createEClass(FINAL_CLAUSE);
+ createEReference(finalClauseEClass, FINAL_CLAUSE__BLOCK);
+
+ switchStatementEClass = createEClass(SWITCH_STATEMENT);
+ createEReference(switchStatementEClass, SWITCH_STATEMENT__EXPRESSION);
+ createEReference(switchStatementEClass, SWITCH_STATEMENT__SWITCH_CLAUSE);
+ createEReference(switchStatementEClass, SWITCH_STATEMENT__DEFAULT_CLAUSE);
+
+ switchClauseEClass = createEClass(SWITCH_CLAUSE);
+ createEReference(switchClauseEClass, SWITCH_CLAUSE__SWITCH_CASE);
+ createEReference(switchClauseEClass, SWITCH_CLAUSE__STATEMENT_SEQUENCE);
+
+ switchCaseEClass = createEClass(SWITCH_CASE);
+ createEReference(switchCaseEClass, SWITCH_CASE__EXPRESSION);
+
+ switchDefaultClauseEClass = createEClass(SWITCH_DEFAULT_CLAUSE);
+ createEReference(switchDefaultClauseEClass, SWITCH_DEFAULT_CLAUSE__STATEMENT_SEQUENCE);
+
+ nonEmptyStatementSequenceEClass = createEClass(NON_EMPTY_STATEMENT_SEQUENCE);
+ createEReference(nonEmptyStatementSequenceEClass, NON_EMPTY_STATEMENT_SEQUENCE__STATEMENT);
+
+ whileStatementEClass = createEClass(WHILE_STATEMENT);
+ createEReference(whileStatementEClass, WHILE_STATEMENT__CONDITION);
+ createEReference(whileStatementEClass, WHILE_STATEMENT__BLOCK);
+
+ doStatementEClass = createEClass(DO_STATEMENT);
+ createEReference(doStatementEClass, DO_STATEMENT__BLOCK);
+ createEReference(doStatementEClass, DO_STATEMENT__CONDITION);
+
+ forStatementEClass = createEClass(FOR_STATEMENT);
+ createEReference(forStatementEClass, FOR_STATEMENT__CONTROL);
+ createEReference(forStatementEClass, FOR_STATEMENT__BLOCK);
+
+ forControlEClass = createEClass(FOR_CONTROL);
+ createEReference(forControlEClass, FOR_CONTROL__LOOP_VARIABLE_DEFINITION);
+
+ loopVariableDefinitionEClass = createEClass(LOOP_VARIABLE_DEFINITION);
+ createEAttribute(loopVariableDefinitionEClass, LOOP_VARIABLE_DEFINITION__NAME);
+ createEReference(loopVariableDefinitionEClass, LOOP_VARIABLE_DEFINITION__EXPRESSION1);
+ createEReference(loopVariableDefinitionEClass, LOOP_VARIABLE_DEFINITION__EXPRESSION2);
+ createEReference(loopVariableDefinitionEClass, LOOP_VARIABLE_DEFINITION__TYPE);
+ createEReference(loopVariableDefinitionEClass, LOOP_VARIABLE_DEFINITION__EXPRESSION);
+
+ breakStatementEClass = createEClass(BREAK_STATEMENT);
+
+ returnStatementEClass = createEClass(RETURN_STATEMENT);
+ createEReference(returnStatementEClass, RETURN_STATEMENT__EXPRESSION);
+
+ acceptStatementEClass = createEClass(ACCEPT_STATEMENT);
+ createEReference(acceptStatementEClass, ACCEPT_STATEMENT__CLAUSE);
+ createEReference(acceptStatementEClass, ACCEPT_STATEMENT__SIMPLE_ACCEPT);
+ createEReference(acceptStatementEClass, ACCEPT_STATEMENT__COMPOUND_ACCEPT);
+
+ simpleAcceptStatementCompletionEClass = createEClass(SIMPLE_ACCEPT_STATEMENT_COMPLETION);
+
+ compoundAcceptStatementCompletionEClass = createEClass(COMPOUND_ACCEPT_STATEMENT_COMPLETION);
+ createEReference(compoundAcceptStatementCompletionEClass, COMPOUND_ACCEPT_STATEMENT_COMPLETION__BLOCK);
+ createEReference(compoundAcceptStatementCompletionEClass, COMPOUND_ACCEPT_STATEMENT_COMPLETION__ACCEPT_BLOCK);
+
+ acceptBlockEClass = createEClass(ACCEPT_BLOCK);
+ createEReference(acceptBlockEClass, ACCEPT_BLOCK__CLAUSE);
+ createEReference(acceptBlockEClass, ACCEPT_BLOCK__BLOCK);
+
+ acceptClauseEClass = createEClass(ACCEPT_CLAUSE);
+ createEAttribute(acceptClauseEClass, ACCEPT_CLAUSE__NAME);
+ createEReference(acceptClauseEClass, ACCEPT_CLAUSE__QUALIFIED_NAME_LIST);
+
+ classifyStatementEClass = createEClass(CLASSIFY_STATEMENT);
+ createEReference(classifyStatementEClass, CLASSIFY_STATEMENT__EXPRESSION);
+ createEReference(classifyStatementEClass, CLASSIFY_STATEMENT__CLAUSE);
+
+ classificationClauseEClass = createEClass(CLASSIFICATION_CLAUSE);
+ createEReference(classificationClauseEClass, CLASSIFICATION_CLAUSE__CLASSIFY_FROM_CLAUSE);
+ createEReference(classificationClauseEClass, CLASSIFICATION_CLAUSE__CLASSIFY_TO_CLAUSE);
+ createEReference(classificationClauseEClass, CLASSIFICATION_CLAUSE__RECLASSY_ALL_CLAUSE);
+
+ classificationFromClauseEClass = createEClass(CLASSIFICATION_FROM_CLAUSE);
+ createEReference(classificationFromClauseEClass, CLASSIFICATION_FROM_CLAUSE__QUALIFIED_NAME_LIST);
+
+ classificationToClauseEClass = createEClass(CLASSIFICATION_TO_CLAUSE);
+ createEReference(classificationToClauseEClass, CLASSIFICATION_TO_CLAUSE__QUALIFIED_NAME_LIST);
+
+ reclassifyAllClauseEClass = createEClass(RECLASSIFY_ALL_CLAUSE);
+
+ qualifiedNameListEClass = createEClass(QUALIFIED_NAME_LIST);
+ createEReference(qualifiedNameListEClass, QUALIFIED_NAME_LIST__QUALIFIED_NAME);
+
+ invocationOrAssignementOrDeclarationStatementEClass = createEClass(INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT);
+ createEReference(invocationOrAssignementOrDeclarationStatementEClass, INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__TYPE_PART_OR_ASSIGNED_PART_OR_INVOCATION_PART);
+ createEReference(invocationOrAssignementOrDeclarationStatementEClass, INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__VARIABLE_DECLARATION_COMPLETION);
+ createEReference(invocationOrAssignementOrDeclarationStatementEClass, INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__ASSIGNMENT_COMPLETION);
+
+ superInvocationStatementEClass = createEClass(SUPER_INVOCATION_STATEMENT);
+ createEReference(superInvocationStatementEClass, SUPER_INVOCATION_STATEMENT__SUPER);
+
+ thisInvocationStatementEClass = createEClass(THIS_INVOCATION_STATEMENT);
+ createEReference(thisInvocationStatementEClass, THIS_INVOCATION_STATEMENT__THIS);
+ createEReference(thisInvocationStatementEClass, THIS_INVOCATION_STATEMENT__ASSIGNMENT_COMPLETION);
+
+ instanceCreationInvocationStatementEClass = createEClass(INSTANCE_CREATION_INVOCATION_STATEMENT);
+ createEReference(instanceCreationInvocationStatementEClass, INSTANCE_CREATION_INVOCATION_STATEMENT__NEW);
+
+ variableDeclarationCompletionEClass = createEClass(VARIABLE_DECLARATION_COMPLETION);
+ createEAttribute(variableDeclarationCompletionEClass, VARIABLE_DECLARATION_COMPLETION__MULTIPLICITY_INDICATOR);
+ createEAttribute(variableDeclarationCompletionEClass, VARIABLE_DECLARATION_COMPLETION__VARIABLE_NAME);
+ createEReference(variableDeclarationCompletionEClass, VARIABLE_DECLARATION_COMPLETION__INIT_VALUE);
+
+ assignmentCompletionEClass = createEClass(ASSIGNMENT_COMPLETION);
+ createEAttribute(assignmentCompletionEClass, ASSIGNMENT_COMPLETION__OP);
+ createEReference(assignmentCompletionEClass, ASSIGNMENT_COMPLETION__RIGHT_HAND_SIDE);
+
+ // Create enums
+ booleanValueEEnum = createEEnum(BOOLEAN_VALUE);
+ linkOperationKindEEnum = createEEnum(LINK_OPERATION_KIND);
+ selectOrRejectOperatorEEnum = createEEnum(SELECT_OR_REJECT_OPERATOR);
+ collectOrIterateOperatorEEnum = createEEnum(COLLECT_OR_ITERATE_OPERATOR);
+ forAllOrExistsOrOneOperatorEEnum = createEEnum(FOR_ALL_OR_EXISTS_OR_ONE_OPERATOR);
+ annotationKindEEnum = createEEnum(ANNOTATION_KIND);
+ assignmentOperatorEEnum = createEEnum(ASSIGNMENT_OPERATOR);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents()
+ {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ literalEClass.getESuperTypes().add(this.getValueSpecification());
+ booleaN_LITERALEClass.getESuperTypes().add(this.getLITERAL());
+ numbeR_LITERALEClass.getESuperTypes().add(this.getLITERAL());
+ integeR_LITERALEClass.getESuperTypes().add(this.getNUMBER_LITERAL());
+ unlimiteD_LITERALEClass.getESuperTypes().add(this.getNUMBER_LITERAL());
+ strinG_LITERALEClass.getESuperTypes().add(this.getLITERAL());
+ nameExpressionEClass.getESuperTypes().add(this.getValueSpecification());
+ nameExpressionEClass.getESuperTypes().add(this.getNonLiteralValueSpecification());
+ expressionEClass.getESuperTypes().add(this.getSequenceElement());
+ conditionalTestExpressionEClass.getESuperTypes().add(this.getExpression());
+ operationCallExpressionEClass.getESuperTypes().add(this.getSuffixExpression());
+ propertyCallExpressionEClass.getESuperTypes().add(this.getSuffixExpression());
+ linkOperationExpressionEClass.getESuperTypes().add(this.getSuffixExpression());
+ sequenceOperationExpressionEClass.getESuperTypes().add(this.getSuffixExpression());
+ sequenceReductionExpressionEClass.getESuperTypes().add(this.getSuffixExpression());
+ sequenceExpansionExpressionEClass.getESuperTypes().add(this.getSuffixExpression());
+ selectOrRejectOperationEClass.getESuperTypes().add(this.getSequenceExpansionExpression());
+ collectOrIterateOperationEClass.getESuperTypes().add(this.getSequenceExpansionExpression());
+ forAllOrExistsOrOneOperationEClass.getESuperTypes().add(this.getSequenceExpansionExpression());
+ isUniqueOperationEClass.getESuperTypes().add(this.getSequenceExpansionExpression());
+ parenthesizedExpressionEClass.getESuperTypes().add(this.getValueSpecification());
+ parenthesizedExpressionEClass.getESuperTypes().add(this.getNonLiteralValueSpecification());
+ nullExpressionEClass.getESuperTypes().add(this.getValueSpecification());
+ thisExpressionEClass.getESuperTypes().add(this.getValueSpecification());
+ thisExpressionEClass.getESuperTypes().add(this.getNonLiteralValueSpecification());
+ superInvocationExpressionEClass.getESuperTypes().add(this.getValueSpecification());
+ superInvocationExpressionEClass.getESuperTypes().add(this.getNonLiteralValueSpecification());
+ instanceCreationExpressionEClass.getESuperTypes().add(this.getValueSpecification());
+ instanceCreationExpressionEClass.getESuperTypes().add(this.getNonLiteralValueSpecification());
+ sequenceConstructionExpressionEClass.getESuperTypes().add(this.getSequenceElement());
+ classExtentExpressionEClass.getESuperTypes().add(this.getSuffixExpression());
+ inlineStatementEClass.getESuperTypes().add(this.getStatement());
+ annotatedStatementEClass.getESuperTypes().add(this.getStatement());
+ blockStatementEClass.getESuperTypes().add(this.getStatement());
+ emptyStatementEClass.getESuperTypes().add(this.getStatement());
+ localNameDeclarationStatementEClass.getESuperTypes().add(this.getStatement());
+ ifStatementEClass.getESuperTypes().add(this.getStatement());
+ switchStatementEClass.getESuperTypes().add(this.getStatement());
+ whileStatementEClass.getESuperTypes().add(this.getStatement());
+ doStatementEClass.getESuperTypes().add(this.getStatement());
+ forStatementEClass.getESuperTypes().add(this.getStatement());
+ breakStatementEClass.getESuperTypes().add(this.getStatement());
+ returnStatementEClass.getESuperTypes().add(this.getStatement());
+ acceptStatementEClass.getESuperTypes().add(this.getStatement());
+ classifyStatementEClass.getESuperTypes().add(this.getStatement());
+ invocationOrAssignementOrDeclarationStatementEClass.getESuperTypes().add(this.getStatement());
+ superInvocationStatementEClass.getESuperTypes().add(this.getStatement());
+ thisInvocationStatementEClass.getESuperTypes().add(this.getStatement());
+ instanceCreationInvocationStatementEClass.getESuperTypes().add(this.getStatement());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(testEClass, Test.class, "Test", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getTest_Expression(), this.getExpression(), null, "expression", null, 0, -1, Test.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTest_AssignExpression(), this.getAssignmentCompletion(), null, "assignExpression", null, 0, -1, Test.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTest_Statements(), this.getStatement(), null, "statements", null, 0, -1, Test.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTest_Block(), this.getBlock(), null, "block", null, 0, 1, Test.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(literalEClass, org.eclipse.papyrus.alf.alf.LITERAL.class, "LITERAL", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(booleaN_LITERALEClass, org.eclipse.papyrus.alf.alf.BOOLEAN_LITERAL.class, "BOOLEAN_LITERAL", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getBOOLEAN_LITERAL_Value(), this.getBooleanValue(), "value", null, 0, 1, org.eclipse.papyrus.alf.alf.BOOLEAN_LITERAL.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(numbeR_LITERALEClass, org.eclipse.papyrus.alf.alf.NUMBER_LITERAL.class, "NUMBER_LITERAL", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getNUMBER_LITERAL_Value(), ecorePackage.getEString(), "value", null, 0, 1, org.eclipse.papyrus.alf.alf.NUMBER_LITERAL.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(integeR_LITERALEClass, org.eclipse.papyrus.alf.alf.INTEGER_LITERAL.class, "INTEGER_LITERAL", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(unlimiteD_LITERALEClass, org.eclipse.papyrus.alf.alf.UNLIMITED_LITERAL.class, "UNLIMITED_LITERAL", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(strinG_LITERALEClass, org.eclipse.papyrus.alf.alf.STRING_LITERAL.class, "STRING_LITERAL", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getSTRING_LITERAL_Value(), ecorePackage.getEString(), "value", null, 0, 1, org.eclipse.papyrus.alf.alf.STRING_LITERAL.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(nameExpressionEClass, NameExpression.class, "NameExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getNameExpression_PrefixOp(), ecorePackage.getEString(), "prefixOp", null, 0, 1, NameExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getNameExpression_Path(), this.getQualifiedNamePath(), null, "path", null, 0, 1, NameExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getNameExpression_Id(), ecorePackage.getEString(), "id", null, 0, 1, NameExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getNameExpression_InvocationCompletion(), this.getTuple(), null, "invocationCompletion", null, 0, 1, NameExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getNameExpression_SequenceConstructionCompletion(), this.getSequenceConstructionOrAccessCompletion(), null, "sequenceConstructionCompletion", null, 0, 1, NameExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getNameExpression_PostfixOp(), ecorePackage.getEString(), "postfixOp", null, 0, 1, NameExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getNameExpression_Suffix(), this.getSuffixExpression(), null, "suffix", null, 0, 1, NameExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(qualifiedNamePathEClass, QualifiedNamePath.class, "QualifiedNamePath", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getQualifiedNamePath_Namespace(), this.getUnqualifiedName(), null, "namespace", null, 0, -1, QualifiedNamePath.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(unqualifiedNameEClass, UnqualifiedName.class, "UnqualifiedName", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getUnqualifiedName_Name(), ecorePackage.getEString(), "name", null, 0, 1, UnqualifiedName.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getUnqualifiedName_TemplateBinding(), this.getTemplateBinding(), null, "templateBinding", null, 0, 1, UnqualifiedName.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(templateBindingEClass, TemplateBinding.class, "TemplateBinding", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getTemplateBinding_Bindings(), this.getNamedTemplateBinding(), null, "bindings", null, 0, -1, TemplateBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(namedTemplateBindingEClass, NamedTemplateBinding.class, "NamedTemplateBinding", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getNamedTemplateBinding_Formal(), ecorePackage.getEString(), "formal", null, 0, 1, NamedTemplateBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getNamedTemplateBinding_Actual(), this.getQualifiedNameWithBinding(), null, "actual", null, 0, 1, NamedTemplateBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(qualifiedNameWithBindingEClass, QualifiedNameWithBinding.class, "QualifiedNameWithBinding", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getQualifiedNameWithBinding_Id(), ecorePackage.getEString(), "id", null, 0, 1, QualifiedNameWithBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getQualifiedNameWithBinding_Binding(), this.getTemplateBinding(), null, "binding", null, 0, 1, QualifiedNameWithBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getQualifiedNameWithBinding_Remaining(), this.getQualifiedNameWithBinding(), null, "remaining", null, 0, 1, QualifiedNameWithBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(tupleEClass, Tuple.class, "Tuple", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getTuple_TupleElements(), this.getTupleElement(), null, "tupleElements", null, 0, -1, Tuple.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(tupleElementEClass, TupleElement.class, "TupleElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getTupleElement_Argument(), this.getExpression(), null, "argument", null, 0, 1, TupleElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(expressionEClass, Expression.class, "Expression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(conditionalTestExpressionEClass, ConditionalTestExpression.class, "ConditionalTestExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getConditionalTestExpression_Exp(), this.getConditionalOrExpression(), null, "exp", null, 0, 1, ConditionalTestExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getConditionalTestExpression_WhenTrue(), this.getConditionalTestExpression(), null, "whenTrue", null, 0, 1, ConditionalTestExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getConditionalTestExpression_WhenFalse(), this.getConditionalTestExpression(), null, "whenFalse", null, 0, 1, ConditionalTestExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(conditionalOrExpressionEClass, ConditionalOrExpression.class, "ConditionalOrExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getConditionalOrExpression_Exp(), this.getConditionalAndExpression(), null, "exp", null, 0, -1, ConditionalOrExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(conditionalAndExpressionEClass, ConditionalAndExpression.class, "ConditionalAndExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getConditionalAndExpression_Exp(), this.getInclusiveOrExpression(), null, "exp", null, 0, -1, ConditionalAndExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(inclusiveOrExpressionEClass, InclusiveOrExpression.class, "InclusiveOrExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getInclusiveOrExpression_Exp(), this.getExclusiveOrExpression(), null, "exp", null, 0, -1, InclusiveOrExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(exclusiveOrExpressionEClass, ExclusiveOrExpression.class, "ExclusiveOrExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getExclusiveOrExpression_Exp(), this.getAndExpression(), null, "exp", null, 0, -1, ExclusiveOrExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(andExpressionEClass, AndExpression.class, "AndExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getAndExpression_Exp(), this.getEqualityExpression(), null, "exp", null, 0, -1, AndExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(equalityExpressionEClass, EqualityExpression.class, "EqualityExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getEqualityExpression_Exp(), this.getClassificationExpression(), null, "exp", null, 0, -1, EqualityExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEqualityExpression_Op(), ecorePackage.getEString(), "op", null, 0, -1, EqualityExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(classificationExpressionEClass, ClassificationExpression.class, "ClassificationExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getClassificationExpression_Exp(), this.getRelationalExpression(), null, "exp", null, 0, 1, ClassificationExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getClassificationExpression_Op(), ecorePackage.getEString(), "op", null, 0, 1, ClassificationExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getClassificationExpression_TypeName(), this.getNameExpression(), null, "typeName", null, 0, 1, ClassificationExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(relationalExpressionEClass, RelationalExpression.class, "RelationalExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getRelationalExpression_Left(), this.getShiftExpression(), null, "left", null, 0, 1, RelationalExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getRelationalExpression_Op(), ecorePackage.getEString(), "op", null, 0, 1, RelationalExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getRelationalExpression_Right(), this.getShiftExpression(), null, "right", null, 0, 1, RelationalExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(shiftExpressionEClass, ShiftExpression.class, "ShiftExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getShiftExpression_Exp(), this.getAdditiveExpression(), null, "exp", null, 0, -1, ShiftExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getShiftExpression_Op(), ecorePackage.getEString(), "op", null, 0, 1, ShiftExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(additiveExpressionEClass, AdditiveExpression.class, "AdditiveExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getAdditiveExpression_Exp(), this.getMultiplicativeExpression(), null, "exp", null, 0, -1, AdditiveExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getAdditiveExpression_Op(), ecorePackage.getEString(), "op", null, 0, -1, AdditiveExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(multiplicativeExpressionEClass, MultiplicativeExpression.class, "MultiplicativeExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getMultiplicativeExpression_Exp(), this.getUnaryExpression(), null, "exp", null, 0, -1, MultiplicativeExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getMultiplicativeExpression_Op(), ecorePackage.getEString(), "op", null, 0, -1, MultiplicativeExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(unaryExpressionEClass, UnaryExpression.class, "UnaryExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getUnaryExpression_Op(), ecorePackage.getEString(), "op", null, 0, 1, UnaryExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getUnaryExpression_Exp(), this.getPrimaryExpression(), null, "exp", null, 0, 1, UnaryExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(primaryExpressionEClass, PrimaryExpression.class, "PrimaryExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getPrimaryExpression_Prefix(), this.getValueSpecification(), null, "prefix", null, 0, 1, PrimaryExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(suffixExpressionEClass, SuffixExpression.class, "SuffixExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(operationCallExpressionEClass, OperationCallExpression.class, "OperationCallExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getOperationCallExpression_OperationName(), ecorePackage.getEString(), "operationName", null, 0, 1, OperationCallExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getOperationCallExpression_Tuple(), this.getTuple(), null, "tuple", null, 0, 1, OperationCallExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getOperationCallExpression_Suffix(), this.getSuffixExpression(), null, "suffix", null, 0, 1, OperationCallExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(propertyCallExpressionEClass, PropertyCallExpression.class, "PropertyCallExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getPropertyCallExpression_PropertyName(), ecorePackage.getEString(), "propertyName", null, 0, 1, PropertyCallExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getPropertyCallExpression_Index(), this.getExpression(), null, "index", null, 0, 1, PropertyCallExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getPropertyCallExpression_Suffix(), this.getSuffixExpression(), null, "suffix", null, 0, 1, PropertyCallExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(linkOperationExpressionEClass, LinkOperationExpression.class, "LinkOperationExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getLinkOperationExpression_Kind(), this.getLinkOperationKind(), "kind", null, 0, 1, LinkOperationExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getLinkOperationExpression_Tuple(), this.getLinkOperationTuple(), null, "tuple", null, 0, 1, LinkOperationExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(linkOperationTupleEClass, LinkOperationTuple.class, "LinkOperationTuple", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getLinkOperationTuple_LinkOperationTupleElement(), this.getLinkOperationTupleElement(), null, "linkOperationTupleElement", null, 0, -1, LinkOperationTuple.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(linkOperationTupleElementEClass, LinkOperationTupleElement.class, "LinkOperationTupleElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getLinkOperationTupleElement_Role(), ecorePackage.getEString(), "role", null, 0, 1, LinkOperationTupleElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getLinkOperationTupleElement_RoleIndex(), this.getExpression(), null, "roleIndex", null, 0, 1, LinkOperationTupleElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getLinkOperationTupleElement_Object(), this.getExpression(), null, "object", null, 0, 1, LinkOperationTupleElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(sequenceOperationExpressionEClass, SequenceOperationExpression.class, "SequenceOperationExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getSequenceOperationExpression_OperationName(), this.getQualifiedNameWithBinding(), null, "operationName", null, 0, 1, SequenceOperationExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSequenceOperationExpression_Tuple(), this.getTuple(), null, "tuple", null, 0, 1, SequenceOperationExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSequenceOperationExpression_Suffix(), this.getSuffixExpression(), null, "suffix", null, 0, 1, SequenceOperationExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(sequenceReductionExpressionEClass, SequenceReductionExpression.class, "SequenceReductionExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getSequenceReductionExpression_IsOrdered(), ecorePackage.getEBoolean(), "isOrdered", null, 0, 1, SequenceReductionExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSequenceReductionExpression_Behavior(), this.getQualifiedNameWithBinding(), null, "behavior", null, 0, 1, SequenceReductionExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSequenceReductionExpression_Suffix(), this.getSuffixExpression(), null, "suffix", null, 0, 1, SequenceReductionExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(sequenceExpansionExpressionEClass, SequenceExpansionExpression.class, "SequenceExpansionExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getSequenceExpansionExpression_Name(), ecorePackage.getEString(), "name", null, 0, 1, SequenceExpansionExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSequenceExpansionExpression_Expr(), this.getExpression(), null, "expr", null, 0, 1, SequenceExpansionExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSequenceExpansionExpression_Suffix(), this.getSuffixExpression(), null, "suffix", null, 0, 1, SequenceExpansionExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(selectOrRejectOperationEClass, SelectOrRejectOperation.class, "SelectOrRejectOperation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getSelectOrRejectOperation_Op(), this.getSelectOrRejectOperator(), "op", null, 0, 1, SelectOrRejectOperation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(collectOrIterateOperationEClass, CollectOrIterateOperation.class, "CollectOrIterateOperation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getCollectOrIterateOperation_Op(), this.getCollectOrIterateOperator(), "op", null, 0, 1, CollectOrIterateOperation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(forAllOrExistsOrOneOperationEClass, ForAllOrExistsOrOneOperation.class, "ForAllOrExistsOrOneOperation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getForAllOrExistsOrOneOperation_Op(), this.getForAllOrExistsOrOneOperator(), "op", null, 0, 1, ForAllOrExistsOrOneOperation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(isUniqueOperationEClass, IsUniqueOperation.class, "IsUniqueOperation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(valueSpecificationEClass, ValueSpecification.class, "ValueSpecification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(nonLiteralValueSpecificationEClass, NonLiteralValueSpecification.class, "NonLiteralValueSpecification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(parenthesizedExpressionEClass, ParenthesizedExpression.class, "ParenthesizedExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getParenthesizedExpression_ExpOrTypeCast(), this.getExpression(), null, "expOrTypeCast", null, 0, 1, ParenthesizedExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getParenthesizedExpression_Casted(), this.getNonLiteralValueSpecification(), null, "casted", null, 0, 1, ParenthesizedExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getParenthesizedExpression_Suffix(), this.getSuffixExpression(), null, "suffix", null, 0, 1, ParenthesizedExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(nullExpressionEClass, NullExpression.class, "NullExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(thisExpressionEClass, ThisExpression.class, "ThisExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getThisExpression_Suffix(), this.getSuffixExpression(), null, "suffix", null, 0, 1, ThisExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(superInvocationExpressionEClass, SuperInvocationExpression.class, "SuperInvocationExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getSuperInvocationExpression_Tuple(), this.getTuple(), null, "tuple", null, 0, 1, SuperInvocationExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSuperInvocationExpression_OperationName(), this.getQualifiedNameWithBinding(), null, "operationName", null, 0, 1, SuperInvocationExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(instanceCreationExpressionEClass, InstanceCreationExpression.class, "InstanceCreationExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getInstanceCreationExpression_Constructor(), this.getQualifiedNameWithBinding(), null, "constructor", null, 0, 1, InstanceCreationExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getInstanceCreationExpression_Tuple(), this.getInstanceCreationTuple(), null, "tuple", null, 0, 1, InstanceCreationExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getInstanceCreationExpression_Suffix(), this.getSuffixExpression(), null, "suffix", null, 0, 1, InstanceCreationExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(instanceCreationTupleEClass, InstanceCreationTuple.class, "InstanceCreationTuple", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getInstanceCreationTuple_InstanceCreationTupleElement(), this.getInstanceCreationTupleElement(), null, "instanceCreationTupleElement", null, 0, -1, InstanceCreationTuple.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(instanceCreationTupleElementEClass, InstanceCreationTupleElement.class, "InstanceCreationTupleElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getInstanceCreationTupleElement_Role(), ecorePackage.getEString(), "role", null, 0, 1, InstanceCreationTupleElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getInstanceCreationTupleElement_Object(), this.getExpression(), null, "object", null, 0, 1, InstanceCreationTupleElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(sequenceConstructionOrAccessCompletionEClass, SequenceConstructionOrAccessCompletion.class, "SequenceConstructionOrAccessCompletion", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getSequenceConstructionOrAccessCompletion_MultiplicityIndicator(), ecorePackage.getEBoolean(), "multiplicityIndicator", null, 0, 1, SequenceConstructionOrAccessCompletion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSequenceConstructionOrAccessCompletion_AccessCompletion(), this.getAccessCompletion(), null, "accessCompletion", null, 0, 1, SequenceConstructionOrAccessCompletion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSequenceConstructionOrAccessCompletion_SequenceCompletion(), this.getPartialSequenceConstructionCompletion(), null, "sequenceCompletion", null, 0, 1, SequenceConstructionOrAccessCompletion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSequenceConstructionOrAccessCompletion_Expression(), this.getSequenceConstructionExpression(), null, "expression", null, 0, 1, SequenceConstructionOrAccessCompletion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(accessCompletionEClass, AccessCompletion.class, "AccessCompletion", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getAccessCompletion_AccessIndex(), this.getExpression(), null, "accessIndex", null, 0, 1, AccessCompletion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(partialSequenceConstructionCompletionEClass, PartialSequenceConstructionCompletion.class, "PartialSequenceConstructionCompletion", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getPartialSequenceConstructionCompletion_Expression(), this.getSequenceConstructionExpression(), null, "expression", null, 0, 1, PartialSequenceConstructionCompletion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(sequenceConstructionExpressionEClass, SequenceConstructionExpression.class, "SequenceConstructionExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getSequenceConstructionExpression_SequenceElement(), this.getSequenceElement(), null, "sequenceElement", null, 0, -1, SequenceConstructionExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSequenceConstructionExpression_RangeUpper(), this.getExpression(), null, "rangeUpper", null, 0, 1, SequenceConstructionExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(sequenceElementEClass, SequenceElement.class, "SequenceElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(classExtentExpressionEClass, ClassExtentExpression.class, "ClassExtentExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(blockEClass, Block.class, "Block", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getBlock_Sequence(), this.getStatementSequence(), null, "sequence", null, 0, 1, Block.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(statementSequenceEClass, StatementSequence.class, "StatementSequence", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getStatementSequence_Statements(), this.getDocumentedStatement(), null, "statements", null, 0, -1, StatementSequence.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(documentedStatementEClass, DocumentedStatement.class, "DocumentedStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getDocumentedStatement_Comment(), ecorePackage.getEString(), "comment", null, 0, 1, DocumentedStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentedStatement_Statement(), this.getStatement(), null, "statement", null, 0, 1, DocumentedStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(inlineStatementEClass, InlineStatement.class, "InlineStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getInlineStatement_LangageName(), ecorePackage.getEString(), "langageName", null, 0, 1, InlineStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getInlineStatement_Body(), ecorePackage.getEString(), "body", null, 0, 1, InlineStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(annotatedStatementEClass, AnnotatedStatement.class, "AnnotatedStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getAnnotatedStatement_Annotation(), this.getAnnotation(), null, "annotation", null, 0, 1, AnnotatedStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getAnnotatedStatement_Statement(), this.getStatement(), null, "statement", null, 0, 1, AnnotatedStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(statementEClass, Statement.class, "Statement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(annotationEClass, Annotation.class, "Annotation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getAnnotation_Kind(), this.getAnnotationKind(), "kind", null, 0, 1, Annotation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getAnnotation_Args(), ecorePackage.getEString(), "args", null, 0, -1, Annotation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(blockStatementEClass, BlockStatement.class, "BlockStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getBlockStatement_Block(), this.getBlock(), null, "block", null, 0, 1, BlockStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(emptyStatementEClass, EmptyStatement.class, "EmptyStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(localNameDeclarationStatementEClass, LocalNameDeclarationStatement.class, "LocalNameDeclarationStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getLocalNameDeclarationStatement_VarName(), ecorePackage.getEString(), "varName", null, 0, 1, LocalNameDeclarationStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getLocalNameDeclarationStatement_Type(), this.getQualifiedNameWithBinding(), null, "type", null, 0, 1, LocalNameDeclarationStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getLocalNameDeclarationStatement_MultiplicityIndicator(), ecorePackage.getEBoolean(), "multiplicityIndicator", null, 0, 1, LocalNameDeclarationStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getLocalNameDeclarationStatement_Init(), this.getSequenceElement(), null, "init", null, 0, 1, LocalNameDeclarationStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(ifStatementEClass, IfStatement.class, "IfStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getIfStatement_SequentialClausses(), this.getSequentialClauses(), null, "sequentialClausses", null, 0, 1, IfStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getIfStatement_FinalClause(), this.getFinalClause(), null, "finalClause", null, 0, 1, IfStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(sequentialClausesEClass, SequentialClauses.class, "SequentialClauses", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getSequentialClauses_ConccurentClauses(), this.getConcurrentClauses(), null, "conccurentClauses", null, 0, -1, SequentialClauses.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(concurrentClausesEClass, ConcurrentClauses.class, "ConcurrentClauses", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getConcurrentClauses_NonFinalClause(), this.getNonFinalClause(), null, "nonFinalClause", null, 0, -1, ConcurrentClauses.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(nonFinalClauseEClass, NonFinalClause.class, "NonFinalClause", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getNonFinalClause_Condition(), this.getExpression(), null, "condition", null, 0, 1, NonFinalClause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getNonFinalClause_Block(), this.getBlock(), null, "block", null, 0, 1, NonFinalClause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(finalClauseEClass, FinalClause.class, "FinalClause", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getFinalClause_Block(), this.getBlock(), null, "block", null, 0, 1, FinalClause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(switchStatementEClass, SwitchStatement.class, "SwitchStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getSwitchStatement_Expression(), this.getExpression(), null, "expression", null, 0, 1, SwitchStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSwitchStatement_SwitchClause(), this.getSwitchClause(), null, "switchClause", null, 0, -1, SwitchStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSwitchStatement_DefaultClause(), this.getSwitchDefaultClause(), null, "defaultClause", null, 0, 1, SwitchStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(switchClauseEClass, SwitchClause.class, "SwitchClause", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getSwitchClause_SwitchCase(), this.getSwitchCase(), null, "switchCase", null, 0, -1, SwitchClause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSwitchClause_StatementSequence(), this.getNonEmptyStatementSequence(), null, "statementSequence", null, 0, 1, SwitchClause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(switchCaseEClass, SwitchCase.class, "SwitchCase", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getSwitchCase_Expression(), this.getExpression(), null, "expression", null, 0, 1, SwitchCase.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(switchDefaultClauseEClass, SwitchDefaultClause.class, "SwitchDefaultClause", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getSwitchDefaultClause_StatementSequence(), this.getNonEmptyStatementSequence(), null, "statementSequence", null, 0, 1, SwitchDefaultClause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(nonEmptyStatementSequenceEClass, NonEmptyStatementSequence.class, "NonEmptyStatementSequence", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getNonEmptyStatementSequence_Statement(), this.getDocumentedStatement(), null, "statement", null, 0, -1, NonEmptyStatementSequence.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(whileStatementEClass, WhileStatement.class, "WhileStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getWhileStatement_Condition(), this.getExpression(), null, "condition", null, 0, 1, WhileStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getWhileStatement_Block(), this.getBlock(), null, "block", null, 0, 1, WhileStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(doStatementEClass, DoStatement.class, "DoStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getDoStatement_Block(), this.getBlock(), null, "block", null, 0, 1, DoStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDoStatement_Condition(), this.getExpression(), null, "condition", null, 0, 1, DoStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(forStatementEClass, ForStatement.class, "ForStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getForStatement_Control(), this.getForControl(), null, "control", null, 0, 1, ForStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getForStatement_Block(), this.getBlock(), null, "block", null, 0, 1, ForStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(forControlEClass, ForControl.class, "ForControl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getForControl_LoopVariableDefinition(), this.getLoopVariableDefinition(), null, "loopVariableDefinition", null, 0, -1, ForControl.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(loopVariableDefinitionEClass, LoopVariableDefinition.class, "LoopVariableDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getLoopVariableDefinition_Name(), ecorePackage.getEString(), "name", null, 0, 1, LoopVariableDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getLoopVariableDefinition_Expression1(), this.getExpression(), null, "expression1", null, 0, 1, LoopVariableDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getLoopVariableDefinition_Expression2(), this.getExpression(), null, "expression2", null, 0, 1, LoopVariableDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getLoopVariableDefinition_Type(), this.getQualifiedNameWithBinding(), null, "type", null, 0, 1, LoopVariableDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getLoopVariableDefinition_Expression(), this.getExpression(), null, "expression", null, 0, 1, LoopVariableDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(breakStatementEClass, BreakStatement.class, "BreakStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(returnStatementEClass, ReturnStatement.class, "ReturnStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getReturnStatement_Expression(), this.getExpression(), null, "expression", null, 0, 1, ReturnStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(acceptStatementEClass, AcceptStatement.class, "AcceptStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getAcceptStatement_Clause(), this.getAcceptClause(), null, "clause", null, 0, 1, AcceptStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getAcceptStatement_SimpleAccept(), this.getSimpleAcceptStatementCompletion(), null, "simpleAccept", null, 0, 1, AcceptStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getAcceptStatement_CompoundAccept(), this.getCompoundAcceptStatementCompletion(), null, "compoundAccept", null, 0, 1, AcceptStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(simpleAcceptStatementCompletionEClass, SimpleAcceptStatementCompletion.class, "SimpleAcceptStatementCompletion", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(compoundAcceptStatementCompletionEClass, CompoundAcceptStatementCompletion.class, "CompoundAcceptStatementCompletion", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getCompoundAcceptStatementCompletion_Block(), this.getBlock(), null, "block", null, 0, 1, CompoundAcceptStatementCompletion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getCompoundAcceptStatementCompletion_AcceptBlock(), this.getAcceptBlock(), null, "acceptBlock", null, 0, -1, CompoundAcceptStatementCompletion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(acceptBlockEClass, AcceptBlock.class, "AcceptBlock", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getAcceptBlock_Clause(), this.getAcceptClause(), null, "clause", null, 0, 1, AcceptBlock.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getAcceptBlock_Block(), this.getBlock(), null, "block", null, 0, 1, AcceptBlock.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(acceptClauseEClass, AcceptClause.class, "AcceptClause", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getAcceptClause_Name(), ecorePackage.getEString(), "name", null, 0, 1, AcceptClause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getAcceptClause_QualifiedNameList(), this.getQualifiedNameList(), null, "qualifiedNameList", null, 0, 1, AcceptClause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(classifyStatementEClass, ClassifyStatement.class, "ClassifyStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getClassifyStatement_Expression(), this.getExpression(), null, "expression", null, 0, 1, ClassifyStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getClassifyStatement_Clause(), this.getClassificationClause(), null, "clause", null, 0, 1, ClassifyStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(classificationClauseEClass, ClassificationClause.class, "ClassificationClause", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getClassificationClause_ClassifyFromClause(), this.getClassificationFromClause(), null, "classifyFromClause", null, 0, 1, ClassificationClause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getClassificationClause_ClassifyToClause(), this.getClassificationToClause(), null, "classifyToClause", null, 0, 1, ClassificationClause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getClassificationClause_ReclassyAllClause(), this.getReclassifyAllClause(), null, "reclassyAllClause", null, 0, 1, ClassificationClause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(classificationFromClauseEClass, ClassificationFromClause.class, "ClassificationFromClause", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getClassificationFromClause_QualifiedNameList(), this.getQualifiedNameList(), null, "qualifiedNameList", null, 0, 1, ClassificationFromClause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(classificationToClauseEClass, ClassificationToClause.class, "ClassificationToClause", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getClassificationToClause_QualifiedNameList(), this.getQualifiedNameList(), null, "qualifiedNameList", null, 0, 1, ClassificationToClause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(reclassifyAllClauseEClass, ReclassifyAllClause.class, "ReclassifyAllClause", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(qualifiedNameListEClass, QualifiedNameList.class, "QualifiedNameList", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getQualifiedNameList_QualifiedName(), this.getQualifiedNameWithBinding(), null, "qualifiedName", null, 0, -1, QualifiedNameList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(invocationOrAssignementOrDeclarationStatementEClass, InvocationOrAssignementOrDeclarationStatement.class, "InvocationOrAssignementOrDeclarationStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getInvocationOrAssignementOrDeclarationStatement_TypePart_OR_assignedPart_OR_invocationPart(), this.getNameExpression(), null, "typePart_OR_assignedPart_OR_invocationPart", null, 0, 1, InvocationOrAssignementOrDeclarationStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getInvocationOrAssignementOrDeclarationStatement_VariableDeclarationCompletion(), this.getVariableDeclarationCompletion(), null, "variableDeclarationCompletion", null, 0, 1, InvocationOrAssignementOrDeclarationStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getInvocationOrAssignementOrDeclarationStatement_AssignmentCompletion(), this.getAssignmentCompletion(), null, "assignmentCompletion", null, 0, 1, InvocationOrAssignementOrDeclarationStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(superInvocationStatementEClass, SuperInvocationStatement.class, "SuperInvocationStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getSuperInvocationStatement__super(), this.getSuperInvocationExpression(), null, "_super", null, 0, 1, SuperInvocationStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(thisInvocationStatementEClass, ThisInvocationStatement.class, "ThisInvocationStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getThisInvocationStatement__this(), this.getThisExpression(), null, "_this", null, 0, 1, ThisInvocationStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getThisInvocationStatement_AssignmentCompletion(), this.getAssignmentCompletion(), null, "assignmentCompletion", null, 0, 1, ThisInvocationStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(instanceCreationInvocationStatementEClass, InstanceCreationInvocationStatement.class, "InstanceCreationInvocationStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getInstanceCreationInvocationStatement__new(), this.getInstanceCreationExpression(), null, "_new", null, 0, 1, InstanceCreationInvocationStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(variableDeclarationCompletionEClass, VariableDeclarationCompletion.class, "VariableDeclarationCompletion", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getVariableDeclarationCompletion_MultiplicityIndicator(), ecorePackage.getEBoolean(), "multiplicityIndicator", null, 0, 1, VariableDeclarationCompletion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getVariableDeclarationCompletion_VariableName(), ecorePackage.getEString(), "variableName", null, 0, 1, VariableDeclarationCompletion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getVariableDeclarationCompletion_InitValue(), this.getAssignmentCompletion(), null, "initValue", null, 0, 1, VariableDeclarationCompletion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(assignmentCompletionEClass, AssignmentCompletion.class, "AssignmentCompletion", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getAssignmentCompletion_Op(), this.getAssignmentOperator(), "op", null, 0, 1, AssignmentCompletion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getAssignmentCompletion_RightHandSide(), this.getSequenceElement(), null, "rightHandSide", null, 0, 1, AssignmentCompletion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Initialize enums and add enum literals
+ initEEnum(booleanValueEEnum, BooleanValue.class, "BooleanValue");
+ addEEnumLiteral(booleanValueEEnum, BooleanValue.TRUE);
+ addEEnumLiteral(booleanValueEEnum, BooleanValue.FALSE);
+
+ initEEnum(linkOperationKindEEnum, LinkOperationKind.class, "LinkOperationKind");
+ addEEnumLiteral(linkOperationKindEEnum, LinkOperationKind.CREATE);
+ addEEnumLiteral(linkOperationKindEEnum, LinkOperationKind.DESTROY);
+ addEEnumLiteral(linkOperationKindEEnum, LinkOperationKind.CLEAR);
+
+ initEEnum(selectOrRejectOperatorEEnum, SelectOrRejectOperator.class, "SelectOrRejectOperator");
+ addEEnumLiteral(selectOrRejectOperatorEEnum, SelectOrRejectOperator.SELECT);
+ addEEnumLiteral(selectOrRejectOperatorEEnum, SelectOrRejectOperator.REJECT);
+
+ initEEnum(collectOrIterateOperatorEEnum, CollectOrIterateOperator.class, "CollectOrIterateOperator");
+ addEEnumLiteral(collectOrIterateOperatorEEnum, CollectOrIterateOperator.COLLECT);
+ addEEnumLiteral(collectOrIterateOperatorEEnum, CollectOrIterateOperator.ITERATE);
+
+ initEEnum(forAllOrExistsOrOneOperatorEEnum, ForAllOrExistsOrOneOperator.class, "ForAllOrExistsOrOneOperator");
+ addEEnumLiteral(forAllOrExistsOrOneOperatorEEnum, ForAllOrExistsOrOneOperator.FORALL);
+ addEEnumLiteral(forAllOrExistsOrOneOperatorEEnum, ForAllOrExistsOrOneOperator.EXISTS);
+ addEEnumLiteral(forAllOrExistsOrOneOperatorEEnum, ForAllOrExistsOrOneOperator.ONE);
+
+ initEEnum(annotationKindEEnum, AnnotationKind.class, "AnnotationKind");
+ addEEnumLiteral(annotationKindEEnum, AnnotationKind.ISOLATED);
+ addEEnumLiteral(annotationKindEEnum, AnnotationKind.DETERMINED);
+ addEEnumLiteral(annotationKindEEnum, AnnotationKind.ASSURED);
+ addEEnumLiteral(annotationKindEEnum, AnnotationKind.PARALLEL);
+
+ initEEnum(assignmentOperatorEEnum, AssignmentOperator.class, "AssignmentOperator");
+ addEEnumLiteral(assignmentOperatorEEnum, AssignmentOperator.ASSIGN);
+ addEEnumLiteral(assignmentOperatorEEnum, AssignmentOperator.PLUSASSIGN);
+ addEEnumLiteral(assignmentOperatorEEnum, AssignmentOperator.MINUSASSIGN);
+ addEEnumLiteral(assignmentOperatorEEnum, AssignmentOperator.MULTASSIGN);
+ addEEnumLiteral(assignmentOperatorEEnum, AssignmentOperator.MODASSIGN);
+ addEEnumLiteral(assignmentOperatorEEnum, AssignmentOperator.DIVASSIGN);
+ addEEnumLiteral(assignmentOperatorEEnum, AssignmentOperator.ANDASSIGN);
+ addEEnumLiteral(assignmentOperatorEEnum, AssignmentOperator.ORASSIGN);
+ addEEnumLiteral(assignmentOperatorEEnum, AssignmentOperator.XORASSIGN);
+ addEEnumLiteral(assignmentOperatorEEnum, AssignmentOperator.LSHIFTASSIGN);
+ addEEnumLiteral(assignmentOperatorEEnum, AssignmentOperator.RSHIFTASSIGN);
+ addEEnumLiteral(assignmentOperatorEEnum, AssignmentOperator.URSHIFTASSIGN);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //AlfPackageImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AndExpressionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AndExpressionImpl.java
new file mode 100644
index 00000000000..dcc2aff71a9
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AndExpressionImpl.java
@@ -0,0 +1,171 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.AndExpression;
+import org.eclipse.papyrus.alf.alf.EqualityExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>And Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.AndExpressionImpl#getExp <em>Exp</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AndExpressionImpl extends MinimalEObjectImpl.Container implements AndExpression
+{
+ /**
+ * The cached value of the '{@link #getExp() <em>Exp</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExp()
+ * @generated
+ * @ordered
+ */
+ protected EList<EqualityExpression> exp;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AndExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.AND_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<EqualityExpression> getExp()
+ {
+ if (exp == null)
+ {
+ exp = new EObjectContainmentEList<EqualityExpression>(EqualityExpression.class, this, AlfPackage.AND_EXPRESSION__EXP);
+ }
+ return exp;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.AND_EXPRESSION__EXP:
+ return ((InternalEList<?>)getExp()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.AND_EXPRESSION__EXP:
+ return getExp();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.AND_EXPRESSION__EXP:
+ getExp().clear();
+ getExp().addAll((Collection<? extends EqualityExpression>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.AND_EXPRESSION__EXP:
+ getExp().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.AND_EXPRESSION__EXP:
+ return exp != null && !exp.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //AndExpressionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AnnotatedStatementImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AnnotatedStatementImpl.java
new file mode 100644
index 00000000000..8171473e8bc
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AnnotatedStatementImpl.java
@@ -0,0 +1,269 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.AnnotatedStatement;
+import org.eclipse.papyrus.alf.alf.Annotation;
+import org.eclipse.papyrus.alf.alf.Statement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Annotated Statement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.AnnotatedStatementImpl#getAnnotation <em>Annotation</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.AnnotatedStatementImpl#getStatement <em>Statement</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AnnotatedStatementImpl extends StatementImpl implements AnnotatedStatement
+{
+ /**
+ * The cached value of the '{@link #getAnnotation() <em>Annotation</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAnnotation()
+ * @generated
+ * @ordered
+ */
+ protected Annotation annotation;
+
+ /**
+ * The cached value of the '{@link #getStatement() <em>Statement</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStatement()
+ * @generated
+ * @ordered
+ */
+ protected Statement statement;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AnnotatedStatementImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.ANNOTATED_STATEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Annotation getAnnotation()
+ {
+ return annotation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetAnnotation(Annotation newAnnotation, NotificationChain msgs)
+ {
+ Annotation oldAnnotation = annotation;
+ annotation = newAnnotation;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.ANNOTATED_STATEMENT__ANNOTATION, oldAnnotation, newAnnotation);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAnnotation(Annotation newAnnotation)
+ {
+ if (newAnnotation != annotation)
+ {
+ NotificationChain msgs = null;
+ if (annotation != null)
+ msgs = ((InternalEObject)annotation).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.ANNOTATED_STATEMENT__ANNOTATION, null, msgs);
+ if (newAnnotation != null)
+ msgs = ((InternalEObject)newAnnotation).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.ANNOTATED_STATEMENT__ANNOTATION, null, msgs);
+ msgs = basicSetAnnotation(newAnnotation, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.ANNOTATED_STATEMENT__ANNOTATION, newAnnotation, newAnnotation));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Statement getStatement()
+ {
+ return statement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetStatement(Statement newStatement, NotificationChain msgs)
+ {
+ Statement oldStatement = statement;
+ statement = newStatement;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.ANNOTATED_STATEMENT__STATEMENT, oldStatement, newStatement);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStatement(Statement newStatement)
+ {
+ if (newStatement != statement)
+ {
+ NotificationChain msgs = null;
+ if (statement != null)
+ msgs = ((InternalEObject)statement).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.ANNOTATED_STATEMENT__STATEMENT, null, msgs);
+ if (newStatement != null)
+ msgs = ((InternalEObject)newStatement).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.ANNOTATED_STATEMENT__STATEMENT, null, msgs);
+ msgs = basicSetStatement(newStatement, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.ANNOTATED_STATEMENT__STATEMENT, newStatement, newStatement));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ANNOTATED_STATEMENT__ANNOTATION:
+ return basicSetAnnotation(null, msgs);
+ case AlfPackage.ANNOTATED_STATEMENT__STATEMENT:
+ return basicSetStatement(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ANNOTATED_STATEMENT__ANNOTATION:
+ return getAnnotation();
+ case AlfPackage.ANNOTATED_STATEMENT__STATEMENT:
+ return getStatement();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ANNOTATED_STATEMENT__ANNOTATION:
+ setAnnotation((Annotation)newValue);
+ return;
+ case AlfPackage.ANNOTATED_STATEMENT__STATEMENT:
+ setStatement((Statement)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ANNOTATED_STATEMENT__ANNOTATION:
+ setAnnotation((Annotation)null);
+ return;
+ case AlfPackage.ANNOTATED_STATEMENT__STATEMENT:
+ setStatement((Statement)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ANNOTATED_STATEMENT__ANNOTATION:
+ return annotation != null;
+ case AlfPackage.ANNOTATED_STATEMENT__STATEMENT:
+ return statement != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //AnnotatedStatementImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AnnotationImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AnnotationImpl.java
new file mode 100644
index 00000000000..f8cd5945343
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AnnotationImpl.java
@@ -0,0 +1,227 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EDataTypeEList;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.Annotation;
+import org.eclipse.papyrus.alf.alf.AnnotationKind;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Annotation</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.AnnotationImpl#getKind <em>Kind</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.AnnotationImpl#getArgs <em>Args</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AnnotationImpl extends MinimalEObjectImpl.Container implements Annotation
+{
+ /**
+ * The default value of the '{@link #getKind() <em>Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getKind()
+ * @generated
+ * @ordered
+ */
+ protected static final AnnotationKind KIND_EDEFAULT = AnnotationKind.ISOLATED;
+
+ /**
+ * The cached value of the '{@link #getKind() <em>Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getKind()
+ * @generated
+ * @ordered
+ */
+ protected AnnotationKind kind = KIND_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getArgs() <em>Args</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getArgs()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> args;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AnnotationImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.ANNOTATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AnnotationKind getKind()
+ {
+ return kind;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setKind(AnnotationKind newKind)
+ {
+ AnnotationKind oldKind = kind;
+ kind = newKind == null ? KIND_EDEFAULT : newKind;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.ANNOTATION__KIND, oldKind, kind));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<String> getArgs()
+ {
+ if (args == null)
+ {
+ args = new EDataTypeEList<String>(String.class, this, AlfPackage.ANNOTATION__ARGS);
+ }
+ return args;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ANNOTATION__KIND:
+ return getKind();
+ case AlfPackage.ANNOTATION__ARGS:
+ return getArgs();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ANNOTATION__KIND:
+ setKind((AnnotationKind)newValue);
+ return;
+ case AlfPackage.ANNOTATION__ARGS:
+ getArgs().clear();
+ getArgs().addAll((Collection<? extends String>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ANNOTATION__KIND:
+ setKind(KIND_EDEFAULT);
+ return;
+ case AlfPackage.ANNOTATION__ARGS:
+ getArgs().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ANNOTATION__KIND:
+ return kind != KIND_EDEFAULT;
+ case AlfPackage.ANNOTATION__ARGS:
+ return args != null && !args.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (kind: ");
+ result.append(kind);
+ result.append(", args: ");
+ result.append(args);
+ result.append(')');
+ return result.toString();
+ }
+
+} //AnnotationImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AssignmentCompletionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AssignmentCompletionImpl.java
new file mode 100644
index 00000000000..ff330fc8736
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/AssignmentCompletionImpl.java
@@ -0,0 +1,270 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.AssignmentCompletion;
+import org.eclipse.papyrus.alf.alf.AssignmentOperator;
+import org.eclipse.papyrus.alf.alf.SequenceElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Assignment Completion</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.AssignmentCompletionImpl#getOp <em>Op</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.AssignmentCompletionImpl#getRightHandSide <em>Right Hand Side</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AssignmentCompletionImpl extends MinimalEObjectImpl.Container implements AssignmentCompletion
+{
+ /**
+ * The default value of the '{@link #getOp() <em>Op</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOp()
+ * @generated
+ * @ordered
+ */
+ protected static final AssignmentOperator OP_EDEFAULT = AssignmentOperator.ASSIGN;
+
+ /**
+ * The cached value of the '{@link #getOp() <em>Op</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOp()
+ * @generated
+ * @ordered
+ */
+ protected AssignmentOperator op = OP_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getRightHandSide() <em>Right Hand Side</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRightHandSide()
+ * @generated
+ * @ordered
+ */
+ protected SequenceElement rightHandSide;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AssignmentCompletionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.ASSIGNMENT_COMPLETION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AssignmentOperator getOp()
+ {
+ return op;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOp(AssignmentOperator newOp)
+ {
+ AssignmentOperator oldOp = op;
+ op = newOp == null ? OP_EDEFAULT : newOp;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.ASSIGNMENT_COMPLETION__OP, oldOp, op));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SequenceElement getRightHandSide()
+ {
+ return rightHandSide;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetRightHandSide(SequenceElement newRightHandSide, NotificationChain msgs)
+ {
+ SequenceElement oldRightHandSide = rightHandSide;
+ rightHandSide = newRightHandSide;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.ASSIGNMENT_COMPLETION__RIGHT_HAND_SIDE, oldRightHandSide, newRightHandSide);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRightHandSide(SequenceElement newRightHandSide)
+ {
+ if (newRightHandSide != rightHandSide)
+ {
+ NotificationChain msgs = null;
+ if (rightHandSide != null)
+ msgs = ((InternalEObject)rightHandSide).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.ASSIGNMENT_COMPLETION__RIGHT_HAND_SIDE, null, msgs);
+ if (newRightHandSide != null)
+ msgs = ((InternalEObject)newRightHandSide).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.ASSIGNMENT_COMPLETION__RIGHT_HAND_SIDE, null, msgs);
+ msgs = basicSetRightHandSide(newRightHandSide, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.ASSIGNMENT_COMPLETION__RIGHT_HAND_SIDE, newRightHandSide, newRightHandSide));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ASSIGNMENT_COMPLETION__RIGHT_HAND_SIDE:
+ return basicSetRightHandSide(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ASSIGNMENT_COMPLETION__OP:
+ return getOp();
+ case AlfPackage.ASSIGNMENT_COMPLETION__RIGHT_HAND_SIDE:
+ return getRightHandSide();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ASSIGNMENT_COMPLETION__OP:
+ setOp((AssignmentOperator)newValue);
+ return;
+ case AlfPackage.ASSIGNMENT_COMPLETION__RIGHT_HAND_SIDE:
+ setRightHandSide((SequenceElement)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ASSIGNMENT_COMPLETION__OP:
+ setOp(OP_EDEFAULT);
+ return;
+ case AlfPackage.ASSIGNMENT_COMPLETION__RIGHT_HAND_SIDE:
+ setRightHandSide((SequenceElement)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.ASSIGNMENT_COMPLETION__OP:
+ return op != OP_EDEFAULT;
+ case AlfPackage.ASSIGNMENT_COMPLETION__RIGHT_HAND_SIDE:
+ return rightHandSide != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (op: ");
+ result.append(op);
+ result.append(')');
+ return result.toString();
+ }
+
+} //AssignmentCompletionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/BOOLEAN_LITERALImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/BOOLEAN_LITERALImpl.java
new file mode 100644
index 00000000000..51e05dc169b
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/BOOLEAN_LITERALImpl.java
@@ -0,0 +1,181 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.BOOLEAN_LITERAL;
+import org.eclipse.papyrus.alf.alf.BooleanValue;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>BOOLEAN LITERAL</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.BOOLEAN_LITERALImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class BOOLEAN_LITERALImpl extends LITERALImpl implements BOOLEAN_LITERAL
+{
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final BooleanValue VALUE_EDEFAULT = BooleanValue.TRUE;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected BooleanValue value = VALUE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BOOLEAN_LITERALImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.BOOLEAN_LITERAL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BooleanValue getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(BooleanValue newValue)
+ {
+ BooleanValue oldValue = value;
+ value = newValue == null ? VALUE_EDEFAULT : newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.BOOLEAN_LITERAL__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.BOOLEAN_LITERAL__VALUE:
+ return getValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.BOOLEAN_LITERAL__VALUE:
+ setValue((BooleanValue)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.BOOLEAN_LITERAL__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.BOOLEAN_LITERAL__VALUE:
+ return value != VALUE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (value: ");
+ result.append(value);
+ result.append(')');
+ return result.toString();
+ }
+
+} //BOOLEAN_LITERALImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/BlockImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/BlockImpl.java
new file mode 100644
index 00000000000..ab0d619509f
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/BlockImpl.java
@@ -0,0 +1,198 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.Block;
+import org.eclipse.papyrus.alf.alf.StatementSequence;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Block</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.BlockImpl#getSequence <em>Sequence</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class BlockImpl extends MinimalEObjectImpl.Container implements Block
+{
+ /**
+ * The cached value of the '{@link #getSequence() <em>Sequence</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSequence()
+ * @generated
+ * @ordered
+ */
+ protected StatementSequence sequence;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BlockImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.BLOCK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StatementSequence getSequence()
+ {
+ return sequence;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSequence(StatementSequence newSequence, NotificationChain msgs)
+ {
+ StatementSequence oldSequence = sequence;
+ sequence = newSequence;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.BLOCK__SEQUENCE, oldSequence, newSequence);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSequence(StatementSequence newSequence)
+ {
+ if (newSequence != sequence)
+ {
+ NotificationChain msgs = null;
+ if (sequence != null)
+ msgs = ((InternalEObject)sequence).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.BLOCK__SEQUENCE, null, msgs);
+ if (newSequence != null)
+ msgs = ((InternalEObject)newSequence).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.BLOCK__SEQUENCE, null, msgs);
+ msgs = basicSetSequence(newSequence, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.BLOCK__SEQUENCE, newSequence, newSequence));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.BLOCK__SEQUENCE:
+ return basicSetSequence(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.BLOCK__SEQUENCE:
+ return getSequence();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.BLOCK__SEQUENCE:
+ setSequence((StatementSequence)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.BLOCK__SEQUENCE:
+ setSequence((StatementSequence)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.BLOCK__SEQUENCE:
+ return sequence != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //BlockImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/BlockStatementImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/BlockStatementImpl.java
new file mode 100644
index 00000000000..f71d17e3bee
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/BlockStatementImpl.java
@@ -0,0 +1,197 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.Block;
+import org.eclipse.papyrus.alf.alf.BlockStatement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Block Statement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.BlockStatementImpl#getBlock <em>Block</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class BlockStatementImpl extends StatementImpl implements BlockStatement
+{
+ /**
+ * The cached value of the '{@link #getBlock() <em>Block</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBlock()
+ * @generated
+ * @ordered
+ */
+ protected Block block;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BlockStatementImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.BLOCK_STATEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Block getBlock()
+ {
+ return block;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetBlock(Block newBlock, NotificationChain msgs)
+ {
+ Block oldBlock = block;
+ block = newBlock;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.BLOCK_STATEMENT__BLOCK, oldBlock, newBlock);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBlock(Block newBlock)
+ {
+ if (newBlock != block)
+ {
+ NotificationChain msgs = null;
+ if (block != null)
+ msgs = ((InternalEObject)block).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.BLOCK_STATEMENT__BLOCK, null, msgs);
+ if (newBlock != null)
+ msgs = ((InternalEObject)newBlock).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.BLOCK_STATEMENT__BLOCK, null, msgs);
+ msgs = basicSetBlock(newBlock, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.BLOCK_STATEMENT__BLOCK, newBlock, newBlock));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.BLOCK_STATEMENT__BLOCK:
+ return basicSetBlock(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.BLOCK_STATEMENT__BLOCK:
+ return getBlock();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.BLOCK_STATEMENT__BLOCK:
+ setBlock((Block)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.BLOCK_STATEMENT__BLOCK:
+ setBlock((Block)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.BLOCK_STATEMENT__BLOCK:
+ return block != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //BlockStatementImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/BreakStatementImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/BreakStatementImpl.java
new file mode 100644
index 00000000000..2caa373fff8
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/BreakStatementImpl.java
@@ -0,0 +1,46 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.BreakStatement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Break Statement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class BreakStatementImpl extends StatementImpl implements BreakStatement
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BreakStatementImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.BREAK_STATEMENT;
+ }
+
+} //BreakStatementImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ClassExtentExpressionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ClassExtentExpressionImpl.java
new file mode 100644
index 00000000000..6192229e8c4
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ClassExtentExpressionImpl.java
@@ -0,0 +1,46 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.ClassExtentExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Class Extent Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class ClassExtentExpressionImpl extends SuffixExpressionImpl implements ClassExtentExpression
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ClassExtentExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.CLASS_EXTENT_EXPRESSION;
+ }
+
+} //ClassExtentExpressionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ClassificationClauseImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ClassificationClauseImpl.java
new file mode 100644
index 00000000000..661f851070f
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ClassificationClauseImpl.java
@@ -0,0 +1,342 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.ClassificationClause;
+import org.eclipse.papyrus.alf.alf.ClassificationFromClause;
+import org.eclipse.papyrus.alf.alf.ClassificationToClause;
+import org.eclipse.papyrus.alf.alf.ReclassifyAllClause;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Classification Clause</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.ClassificationClauseImpl#getClassifyFromClause <em>Classify From Clause</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.ClassificationClauseImpl#getClassifyToClause <em>Classify To Clause</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.ClassificationClauseImpl#getReclassyAllClause <em>Reclassy All Clause</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ClassificationClauseImpl extends MinimalEObjectImpl.Container implements ClassificationClause
+{
+ /**
+ * The cached value of the '{@link #getClassifyFromClause() <em>Classify From Clause</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getClassifyFromClause()
+ * @generated
+ * @ordered
+ */
+ protected ClassificationFromClause classifyFromClause;
+
+ /**
+ * The cached value of the '{@link #getClassifyToClause() <em>Classify To Clause</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getClassifyToClause()
+ * @generated
+ * @ordered
+ */
+ protected ClassificationToClause classifyToClause;
+
+ /**
+ * The cached value of the '{@link #getReclassyAllClause() <em>Reclassy All Clause</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getReclassyAllClause()
+ * @generated
+ * @ordered
+ */
+ protected ReclassifyAllClause reclassyAllClause;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ClassificationClauseImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.CLASSIFICATION_CLAUSE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ClassificationFromClause getClassifyFromClause()
+ {
+ return classifyFromClause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetClassifyFromClause(ClassificationFromClause newClassifyFromClause, NotificationChain msgs)
+ {
+ ClassificationFromClause oldClassifyFromClause = classifyFromClause;
+ classifyFromClause = newClassifyFromClause;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.CLASSIFICATION_CLAUSE__CLASSIFY_FROM_CLAUSE, oldClassifyFromClause, newClassifyFromClause);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setClassifyFromClause(ClassificationFromClause newClassifyFromClause)
+ {
+ if (newClassifyFromClause != classifyFromClause)
+ {
+ NotificationChain msgs = null;
+ if (classifyFromClause != null)
+ msgs = ((InternalEObject)classifyFromClause).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.CLASSIFICATION_CLAUSE__CLASSIFY_FROM_CLAUSE, null, msgs);
+ if (newClassifyFromClause != null)
+ msgs = ((InternalEObject)newClassifyFromClause).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.CLASSIFICATION_CLAUSE__CLASSIFY_FROM_CLAUSE, null, msgs);
+ msgs = basicSetClassifyFromClause(newClassifyFromClause, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.CLASSIFICATION_CLAUSE__CLASSIFY_FROM_CLAUSE, newClassifyFromClause, newClassifyFromClause));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ClassificationToClause getClassifyToClause()
+ {
+ return classifyToClause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetClassifyToClause(ClassificationToClause newClassifyToClause, NotificationChain msgs)
+ {
+ ClassificationToClause oldClassifyToClause = classifyToClause;
+ classifyToClause = newClassifyToClause;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.CLASSIFICATION_CLAUSE__CLASSIFY_TO_CLAUSE, oldClassifyToClause, newClassifyToClause);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setClassifyToClause(ClassificationToClause newClassifyToClause)
+ {
+ if (newClassifyToClause != classifyToClause)
+ {
+ NotificationChain msgs = null;
+ if (classifyToClause != null)
+ msgs = ((InternalEObject)classifyToClause).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.CLASSIFICATION_CLAUSE__CLASSIFY_TO_CLAUSE, null, msgs);
+ if (newClassifyToClause != null)
+ msgs = ((InternalEObject)newClassifyToClause).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.CLASSIFICATION_CLAUSE__CLASSIFY_TO_CLAUSE, null, msgs);
+ msgs = basicSetClassifyToClause(newClassifyToClause, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.CLASSIFICATION_CLAUSE__CLASSIFY_TO_CLAUSE, newClassifyToClause, newClassifyToClause));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ReclassifyAllClause getReclassyAllClause()
+ {
+ return reclassyAllClause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetReclassyAllClause(ReclassifyAllClause newReclassyAllClause, NotificationChain msgs)
+ {
+ ReclassifyAllClause oldReclassyAllClause = reclassyAllClause;
+ reclassyAllClause = newReclassyAllClause;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.CLASSIFICATION_CLAUSE__RECLASSY_ALL_CLAUSE, oldReclassyAllClause, newReclassyAllClause);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setReclassyAllClause(ReclassifyAllClause newReclassyAllClause)
+ {
+ if (newReclassyAllClause != reclassyAllClause)
+ {
+ NotificationChain msgs = null;
+ if (reclassyAllClause != null)
+ msgs = ((InternalEObject)reclassyAllClause).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.CLASSIFICATION_CLAUSE__RECLASSY_ALL_CLAUSE, null, msgs);
+ if (newReclassyAllClause != null)
+ msgs = ((InternalEObject)newReclassyAllClause).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.CLASSIFICATION_CLAUSE__RECLASSY_ALL_CLAUSE, null, msgs);
+ msgs = basicSetReclassyAllClause(newReclassyAllClause, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.CLASSIFICATION_CLAUSE__RECLASSY_ALL_CLAUSE, newReclassyAllClause, newReclassyAllClause));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CLASSIFICATION_CLAUSE__CLASSIFY_FROM_CLAUSE:
+ return basicSetClassifyFromClause(null, msgs);
+ case AlfPackage.CLASSIFICATION_CLAUSE__CLASSIFY_TO_CLAUSE:
+ return basicSetClassifyToClause(null, msgs);
+ case AlfPackage.CLASSIFICATION_CLAUSE__RECLASSY_ALL_CLAUSE:
+ return basicSetReclassyAllClause(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CLASSIFICATION_CLAUSE__CLASSIFY_FROM_CLAUSE:
+ return getClassifyFromClause();
+ case AlfPackage.CLASSIFICATION_CLAUSE__CLASSIFY_TO_CLAUSE:
+ return getClassifyToClause();
+ case AlfPackage.CLASSIFICATION_CLAUSE__RECLASSY_ALL_CLAUSE:
+ return getReclassyAllClause();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CLASSIFICATION_CLAUSE__CLASSIFY_FROM_CLAUSE:
+ setClassifyFromClause((ClassificationFromClause)newValue);
+ return;
+ case AlfPackage.CLASSIFICATION_CLAUSE__CLASSIFY_TO_CLAUSE:
+ setClassifyToClause((ClassificationToClause)newValue);
+ return;
+ case AlfPackage.CLASSIFICATION_CLAUSE__RECLASSY_ALL_CLAUSE:
+ setReclassyAllClause((ReclassifyAllClause)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CLASSIFICATION_CLAUSE__CLASSIFY_FROM_CLAUSE:
+ setClassifyFromClause((ClassificationFromClause)null);
+ return;
+ case AlfPackage.CLASSIFICATION_CLAUSE__CLASSIFY_TO_CLAUSE:
+ setClassifyToClause((ClassificationToClause)null);
+ return;
+ case AlfPackage.CLASSIFICATION_CLAUSE__RECLASSY_ALL_CLAUSE:
+ setReclassyAllClause((ReclassifyAllClause)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CLASSIFICATION_CLAUSE__CLASSIFY_FROM_CLAUSE:
+ return classifyFromClause != null;
+ case AlfPackage.CLASSIFICATION_CLAUSE__CLASSIFY_TO_CLAUSE:
+ return classifyToClause != null;
+ case AlfPackage.CLASSIFICATION_CLAUSE__RECLASSY_ALL_CLAUSE:
+ return reclassyAllClause != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ClassificationClauseImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ClassificationExpressionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ClassificationExpressionImpl.java
new file mode 100644
index 00000000000..7d7f6896ee1
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ClassificationExpressionImpl.java
@@ -0,0 +1,341 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.ClassificationExpression;
+import org.eclipse.papyrus.alf.alf.NameExpression;
+import org.eclipse.papyrus.alf.alf.RelationalExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Classification Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.ClassificationExpressionImpl#getExp <em>Exp</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.ClassificationExpressionImpl#getOp <em>Op</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.ClassificationExpressionImpl#getTypeName <em>Type Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ClassificationExpressionImpl extends MinimalEObjectImpl.Container implements ClassificationExpression
+{
+ /**
+ * The cached value of the '{@link #getExp() <em>Exp</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExp()
+ * @generated
+ * @ordered
+ */
+ protected RelationalExpression exp;
+
+ /**
+ * The default value of the '{@link #getOp() <em>Op</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOp()
+ * @generated
+ * @ordered
+ */
+ protected static final String OP_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getOp() <em>Op</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOp()
+ * @generated
+ * @ordered
+ */
+ protected String op = OP_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getTypeName() <em>Type Name</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTypeName()
+ * @generated
+ * @ordered
+ */
+ protected NameExpression typeName;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ClassificationExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.CLASSIFICATION_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RelationalExpression getExp()
+ {
+ return exp;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetExp(RelationalExpression newExp, NotificationChain msgs)
+ {
+ RelationalExpression oldExp = exp;
+ exp = newExp;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.CLASSIFICATION_EXPRESSION__EXP, oldExp, newExp);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExp(RelationalExpression newExp)
+ {
+ if (newExp != exp)
+ {
+ NotificationChain msgs = null;
+ if (exp != null)
+ msgs = ((InternalEObject)exp).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.CLASSIFICATION_EXPRESSION__EXP, null, msgs);
+ if (newExp != null)
+ msgs = ((InternalEObject)newExp).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.CLASSIFICATION_EXPRESSION__EXP, null, msgs);
+ msgs = basicSetExp(newExp, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.CLASSIFICATION_EXPRESSION__EXP, newExp, newExp));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getOp()
+ {
+ return op;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOp(String newOp)
+ {
+ String oldOp = op;
+ op = newOp;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.CLASSIFICATION_EXPRESSION__OP, oldOp, op));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NameExpression getTypeName()
+ {
+ return typeName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetTypeName(NameExpression newTypeName, NotificationChain msgs)
+ {
+ NameExpression oldTypeName = typeName;
+ typeName = newTypeName;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.CLASSIFICATION_EXPRESSION__TYPE_NAME, oldTypeName, newTypeName);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTypeName(NameExpression newTypeName)
+ {
+ if (newTypeName != typeName)
+ {
+ NotificationChain msgs = null;
+ if (typeName != null)
+ msgs = ((InternalEObject)typeName).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.CLASSIFICATION_EXPRESSION__TYPE_NAME, null, msgs);
+ if (newTypeName != null)
+ msgs = ((InternalEObject)newTypeName).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.CLASSIFICATION_EXPRESSION__TYPE_NAME, null, msgs);
+ msgs = basicSetTypeName(newTypeName, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.CLASSIFICATION_EXPRESSION__TYPE_NAME, newTypeName, newTypeName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CLASSIFICATION_EXPRESSION__EXP:
+ return basicSetExp(null, msgs);
+ case AlfPackage.CLASSIFICATION_EXPRESSION__TYPE_NAME:
+ return basicSetTypeName(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CLASSIFICATION_EXPRESSION__EXP:
+ return getExp();
+ case AlfPackage.CLASSIFICATION_EXPRESSION__OP:
+ return getOp();
+ case AlfPackage.CLASSIFICATION_EXPRESSION__TYPE_NAME:
+ return getTypeName();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CLASSIFICATION_EXPRESSION__EXP:
+ setExp((RelationalExpression)newValue);
+ return;
+ case AlfPackage.CLASSIFICATION_EXPRESSION__OP:
+ setOp((String)newValue);
+ return;
+ case AlfPackage.CLASSIFICATION_EXPRESSION__TYPE_NAME:
+ setTypeName((NameExpression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CLASSIFICATION_EXPRESSION__EXP:
+ setExp((RelationalExpression)null);
+ return;
+ case AlfPackage.CLASSIFICATION_EXPRESSION__OP:
+ setOp(OP_EDEFAULT);
+ return;
+ case AlfPackage.CLASSIFICATION_EXPRESSION__TYPE_NAME:
+ setTypeName((NameExpression)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CLASSIFICATION_EXPRESSION__EXP:
+ return exp != null;
+ case AlfPackage.CLASSIFICATION_EXPRESSION__OP:
+ return OP_EDEFAULT == null ? op != null : !OP_EDEFAULT.equals(op);
+ case AlfPackage.CLASSIFICATION_EXPRESSION__TYPE_NAME:
+ return typeName != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (op: ");
+ result.append(op);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ClassificationExpressionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ClassificationFromClauseImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ClassificationFromClauseImpl.java
new file mode 100644
index 00000000000..f4157af36f4
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ClassificationFromClauseImpl.java
@@ -0,0 +1,198 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.ClassificationFromClause;
+import org.eclipse.papyrus.alf.alf.QualifiedNameList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Classification From Clause</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.ClassificationFromClauseImpl#getQualifiedNameList <em>Qualified Name List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ClassificationFromClauseImpl extends MinimalEObjectImpl.Container implements ClassificationFromClause
+{
+ /**
+ * The cached value of the '{@link #getQualifiedNameList() <em>Qualified Name List</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getQualifiedNameList()
+ * @generated
+ * @ordered
+ */
+ protected QualifiedNameList qualifiedNameList;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ClassificationFromClauseImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.CLASSIFICATION_FROM_CLAUSE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QualifiedNameList getQualifiedNameList()
+ {
+ return qualifiedNameList;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetQualifiedNameList(QualifiedNameList newQualifiedNameList, NotificationChain msgs)
+ {
+ QualifiedNameList oldQualifiedNameList = qualifiedNameList;
+ qualifiedNameList = newQualifiedNameList;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.CLASSIFICATION_FROM_CLAUSE__QUALIFIED_NAME_LIST, oldQualifiedNameList, newQualifiedNameList);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setQualifiedNameList(QualifiedNameList newQualifiedNameList)
+ {
+ if (newQualifiedNameList != qualifiedNameList)
+ {
+ NotificationChain msgs = null;
+ if (qualifiedNameList != null)
+ msgs = ((InternalEObject)qualifiedNameList).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.CLASSIFICATION_FROM_CLAUSE__QUALIFIED_NAME_LIST, null, msgs);
+ if (newQualifiedNameList != null)
+ msgs = ((InternalEObject)newQualifiedNameList).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.CLASSIFICATION_FROM_CLAUSE__QUALIFIED_NAME_LIST, null, msgs);
+ msgs = basicSetQualifiedNameList(newQualifiedNameList, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.CLASSIFICATION_FROM_CLAUSE__QUALIFIED_NAME_LIST, newQualifiedNameList, newQualifiedNameList));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CLASSIFICATION_FROM_CLAUSE__QUALIFIED_NAME_LIST:
+ return basicSetQualifiedNameList(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CLASSIFICATION_FROM_CLAUSE__QUALIFIED_NAME_LIST:
+ return getQualifiedNameList();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CLASSIFICATION_FROM_CLAUSE__QUALIFIED_NAME_LIST:
+ setQualifiedNameList((QualifiedNameList)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CLASSIFICATION_FROM_CLAUSE__QUALIFIED_NAME_LIST:
+ setQualifiedNameList((QualifiedNameList)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CLASSIFICATION_FROM_CLAUSE__QUALIFIED_NAME_LIST:
+ return qualifiedNameList != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ClassificationFromClauseImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ClassificationToClauseImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ClassificationToClauseImpl.java
new file mode 100644
index 00000000000..46aec7a9820
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ClassificationToClauseImpl.java
@@ -0,0 +1,198 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.ClassificationToClause;
+import org.eclipse.papyrus.alf.alf.QualifiedNameList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Classification To Clause</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.ClassificationToClauseImpl#getQualifiedNameList <em>Qualified Name List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ClassificationToClauseImpl extends MinimalEObjectImpl.Container implements ClassificationToClause
+{
+ /**
+ * The cached value of the '{@link #getQualifiedNameList() <em>Qualified Name List</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getQualifiedNameList()
+ * @generated
+ * @ordered
+ */
+ protected QualifiedNameList qualifiedNameList;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ClassificationToClauseImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.CLASSIFICATION_TO_CLAUSE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QualifiedNameList getQualifiedNameList()
+ {
+ return qualifiedNameList;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetQualifiedNameList(QualifiedNameList newQualifiedNameList, NotificationChain msgs)
+ {
+ QualifiedNameList oldQualifiedNameList = qualifiedNameList;
+ qualifiedNameList = newQualifiedNameList;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.CLASSIFICATION_TO_CLAUSE__QUALIFIED_NAME_LIST, oldQualifiedNameList, newQualifiedNameList);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setQualifiedNameList(QualifiedNameList newQualifiedNameList)
+ {
+ if (newQualifiedNameList != qualifiedNameList)
+ {
+ NotificationChain msgs = null;
+ if (qualifiedNameList != null)
+ msgs = ((InternalEObject)qualifiedNameList).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.CLASSIFICATION_TO_CLAUSE__QUALIFIED_NAME_LIST, null, msgs);
+ if (newQualifiedNameList != null)
+ msgs = ((InternalEObject)newQualifiedNameList).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.CLASSIFICATION_TO_CLAUSE__QUALIFIED_NAME_LIST, null, msgs);
+ msgs = basicSetQualifiedNameList(newQualifiedNameList, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.CLASSIFICATION_TO_CLAUSE__QUALIFIED_NAME_LIST, newQualifiedNameList, newQualifiedNameList));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CLASSIFICATION_TO_CLAUSE__QUALIFIED_NAME_LIST:
+ return basicSetQualifiedNameList(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CLASSIFICATION_TO_CLAUSE__QUALIFIED_NAME_LIST:
+ return getQualifiedNameList();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CLASSIFICATION_TO_CLAUSE__QUALIFIED_NAME_LIST:
+ setQualifiedNameList((QualifiedNameList)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CLASSIFICATION_TO_CLAUSE__QUALIFIED_NAME_LIST:
+ setQualifiedNameList((QualifiedNameList)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CLASSIFICATION_TO_CLAUSE__QUALIFIED_NAME_LIST:
+ return qualifiedNameList != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ClassificationToClauseImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ClassifyStatementImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ClassifyStatementImpl.java
new file mode 100644
index 00000000000..bc57338a6b1
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ClassifyStatementImpl.java
@@ -0,0 +1,269 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.ClassificationClause;
+import org.eclipse.papyrus.alf.alf.ClassifyStatement;
+import org.eclipse.papyrus.alf.alf.Expression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Classify Statement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.ClassifyStatementImpl#getExpression <em>Expression</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.ClassifyStatementImpl#getClause <em>Clause</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ClassifyStatementImpl extends StatementImpl implements ClassifyStatement
+{
+ /**
+ * The cached value of the '{@link #getExpression() <em>Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExpression()
+ * @generated
+ * @ordered
+ */
+ protected Expression expression;
+
+ /**
+ * The cached value of the '{@link #getClause() <em>Clause</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getClause()
+ * @generated
+ * @ordered
+ */
+ protected ClassificationClause clause;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ClassifyStatementImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.CLASSIFY_STATEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Expression getExpression()
+ {
+ return expression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetExpression(Expression newExpression, NotificationChain msgs)
+ {
+ Expression oldExpression = expression;
+ expression = newExpression;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.CLASSIFY_STATEMENT__EXPRESSION, oldExpression, newExpression);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExpression(Expression newExpression)
+ {
+ if (newExpression != expression)
+ {
+ NotificationChain msgs = null;
+ if (expression != null)
+ msgs = ((InternalEObject)expression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.CLASSIFY_STATEMENT__EXPRESSION, null, msgs);
+ if (newExpression != null)
+ msgs = ((InternalEObject)newExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.CLASSIFY_STATEMENT__EXPRESSION, null, msgs);
+ msgs = basicSetExpression(newExpression, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.CLASSIFY_STATEMENT__EXPRESSION, newExpression, newExpression));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ClassificationClause getClause()
+ {
+ return clause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetClause(ClassificationClause newClause, NotificationChain msgs)
+ {
+ ClassificationClause oldClause = clause;
+ clause = newClause;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.CLASSIFY_STATEMENT__CLAUSE, oldClause, newClause);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setClause(ClassificationClause newClause)
+ {
+ if (newClause != clause)
+ {
+ NotificationChain msgs = null;
+ if (clause != null)
+ msgs = ((InternalEObject)clause).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.CLASSIFY_STATEMENT__CLAUSE, null, msgs);
+ if (newClause != null)
+ msgs = ((InternalEObject)newClause).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.CLASSIFY_STATEMENT__CLAUSE, null, msgs);
+ msgs = basicSetClause(newClause, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.CLASSIFY_STATEMENT__CLAUSE, newClause, newClause));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CLASSIFY_STATEMENT__EXPRESSION:
+ return basicSetExpression(null, msgs);
+ case AlfPackage.CLASSIFY_STATEMENT__CLAUSE:
+ return basicSetClause(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CLASSIFY_STATEMENT__EXPRESSION:
+ return getExpression();
+ case AlfPackage.CLASSIFY_STATEMENT__CLAUSE:
+ return getClause();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CLASSIFY_STATEMENT__EXPRESSION:
+ setExpression((Expression)newValue);
+ return;
+ case AlfPackage.CLASSIFY_STATEMENT__CLAUSE:
+ setClause((ClassificationClause)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CLASSIFY_STATEMENT__EXPRESSION:
+ setExpression((Expression)null);
+ return;
+ case AlfPackage.CLASSIFY_STATEMENT__CLAUSE:
+ setClause((ClassificationClause)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CLASSIFY_STATEMENT__EXPRESSION:
+ return expression != null;
+ case AlfPackage.CLASSIFY_STATEMENT__CLAUSE:
+ return clause != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ClassifyStatementImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/CollectOrIterateOperationImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/CollectOrIterateOperationImpl.java
new file mode 100644
index 00000000000..0f30962dd8c
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/CollectOrIterateOperationImpl.java
@@ -0,0 +1,181 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.CollectOrIterateOperation;
+import org.eclipse.papyrus.alf.alf.CollectOrIterateOperator;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Collect Or Iterate Operation</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.CollectOrIterateOperationImpl#getOp <em>Op</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CollectOrIterateOperationImpl extends SequenceExpansionExpressionImpl implements CollectOrIterateOperation
+{
+ /**
+ * The default value of the '{@link #getOp() <em>Op</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOp()
+ * @generated
+ * @ordered
+ */
+ protected static final CollectOrIterateOperator OP_EDEFAULT = CollectOrIterateOperator.COLLECT;
+
+ /**
+ * The cached value of the '{@link #getOp() <em>Op</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOp()
+ * @generated
+ * @ordered
+ */
+ protected CollectOrIterateOperator op = OP_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CollectOrIterateOperationImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.COLLECT_OR_ITERATE_OPERATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CollectOrIterateOperator getOp()
+ {
+ return op;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOp(CollectOrIterateOperator newOp)
+ {
+ CollectOrIterateOperator oldOp = op;
+ op = newOp == null ? OP_EDEFAULT : newOp;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.COLLECT_OR_ITERATE_OPERATION__OP, oldOp, op));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.COLLECT_OR_ITERATE_OPERATION__OP:
+ return getOp();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.COLLECT_OR_ITERATE_OPERATION__OP:
+ setOp((CollectOrIterateOperator)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.COLLECT_OR_ITERATE_OPERATION__OP:
+ setOp(OP_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.COLLECT_OR_ITERATE_OPERATION__OP:
+ return op != OP_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (op: ");
+ result.append(op);
+ result.append(')');
+ return result.toString();
+ }
+
+} //CollectOrIterateOperationImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/CompoundAcceptStatementCompletionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/CompoundAcceptStatementCompletionImpl.java
new file mode 100644
index 00000000000..09a3fd22475
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/CompoundAcceptStatementCompletionImpl.java
@@ -0,0 +1,245 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.alf.alf.AcceptBlock;
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.Block;
+import org.eclipse.papyrus.alf.alf.CompoundAcceptStatementCompletion;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Compound Accept Statement Completion</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.CompoundAcceptStatementCompletionImpl#getBlock <em>Block</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.CompoundAcceptStatementCompletionImpl#getAcceptBlock <em>Accept Block</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CompoundAcceptStatementCompletionImpl extends MinimalEObjectImpl.Container implements CompoundAcceptStatementCompletion
+{
+ /**
+ * The cached value of the '{@link #getBlock() <em>Block</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBlock()
+ * @generated
+ * @ordered
+ */
+ protected Block block;
+
+ /**
+ * The cached value of the '{@link #getAcceptBlock() <em>Accept Block</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAcceptBlock()
+ * @generated
+ * @ordered
+ */
+ protected EList<AcceptBlock> acceptBlock;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CompoundAcceptStatementCompletionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.COMPOUND_ACCEPT_STATEMENT_COMPLETION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Block getBlock()
+ {
+ return block;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetBlock(Block newBlock, NotificationChain msgs)
+ {
+ Block oldBlock = block;
+ block = newBlock;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.COMPOUND_ACCEPT_STATEMENT_COMPLETION__BLOCK, oldBlock, newBlock);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBlock(Block newBlock)
+ {
+ if (newBlock != block)
+ {
+ NotificationChain msgs = null;
+ if (block != null)
+ msgs = ((InternalEObject)block).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.COMPOUND_ACCEPT_STATEMENT_COMPLETION__BLOCK, null, msgs);
+ if (newBlock != null)
+ msgs = ((InternalEObject)newBlock).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.COMPOUND_ACCEPT_STATEMENT_COMPLETION__BLOCK, null, msgs);
+ msgs = basicSetBlock(newBlock, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.COMPOUND_ACCEPT_STATEMENT_COMPLETION__BLOCK, newBlock, newBlock));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<AcceptBlock> getAcceptBlock()
+ {
+ if (acceptBlock == null)
+ {
+ acceptBlock = new EObjectContainmentEList<AcceptBlock>(AcceptBlock.class, this, AlfPackage.COMPOUND_ACCEPT_STATEMENT_COMPLETION__ACCEPT_BLOCK);
+ }
+ return acceptBlock;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.COMPOUND_ACCEPT_STATEMENT_COMPLETION__BLOCK:
+ return basicSetBlock(null, msgs);
+ case AlfPackage.COMPOUND_ACCEPT_STATEMENT_COMPLETION__ACCEPT_BLOCK:
+ return ((InternalEList<?>)getAcceptBlock()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.COMPOUND_ACCEPT_STATEMENT_COMPLETION__BLOCK:
+ return getBlock();
+ case AlfPackage.COMPOUND_ACCEPT_STATEMENT_COMPLETION__ACCEPT_BLOCK:
+ return getAcceptBlock();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.COMPOUND_ACCEPT_STATEMENT_COMPLETION__BLOCK:
+ setBlock((Block)newValue);
+ return;
+ case AlfPackage.COMPOUND_ACCEPT_STATEMENT_COMPLETION__ACCEPT_BLOCK:
+ getAcceptBlock().clear();
+ getAcceptBlock().addAll((Collection<? extends AcceptBlock>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.COMPOUND_ACCEPT_STATEMENT_COMPLETION__BLOCK:
+ setBlock((Block)null);
+ return;
+ case AlfPackage.COMPOUND_ACCEPT_STATEMENT_COMPLETION__ACCEPT_BLOCK:
+ getAcceptBlock().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.COMPOUND_ACCEPT_STATEMENT_COMPLETION__BLOCK:
+ return block != null;
+ case AlfPackage.COMPOUND_ACCEPT_STATEMENT_COMPLETION__ACCEPT_BLOCK:
+ return acceptBlock != null && !acceptBlock.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //CompoundAcceptStatementCompletionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ConcurrentClausesImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ConcurrentClausesImpl.java
new file mode 100644
index 00000000000..89d8149ff7e
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ConcurrentClausesImpl.java
@@ -0,0 +1,171 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.ConcurrentClauses;
+import org.eclipse.papyrus.alf.alf.NonFinalClause;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Concurrent Clauses</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.ConcurrentClausesImpl#getNonFinalClause <em>Non Final Clause</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ConcurrentClausesImpl extends MinimalEObjectImpl.Container implements ConcurrentClauses
+{
+ /**
+ * The cached value of the '{@link #getNonFinalClause() <em>Non Final Clause</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNonFinalClause()
+ * @generated
+ * @ordered
+ */
+ protected EList<NonFinalClause> nonFinalClause;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConcurrentClausesImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.CONCURRENT_CLAUSES;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<NonFinalClause> getNonFinalClause()
+ {
+ if (nonFinalClause == null)
+ {
+ nonFinalClause = new EObjectContainmentEList<NonFinalClause>(NonFinalClause.class, this, AlfPackage.CONCURRENT_CLAUSES__NON_FINAL_CLAUSE);
+ }
+ return nonFinalClause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CONCURRENT_CLAUSES__NON_FINAL_CLAUSE:
+ return ((InternalEList<?>)getNonFinalClause()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CONCURRENT_CLAUSES__NON_FINAL_CLAUSE:
+ return getNonFinalClause();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CONCURRENT_CLAUSES__NON_FINAL_CLAUSE:
+ getNonFinalClause().clear();
+ getNonFinalClause().addAll((Collection<? extends NonFinalClause>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CONCURRENT_CLAUSES__NON_FINAL_CLAUSE:
+ getNonFinalClause().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CONCURRENT_CLAUSES__NON_FINAL_CLAUSE:
+ return nonFinalClause != null && !nonFinalClause.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ConcurrentClausesImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ConditionalAndExpressionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ConditionalAndExpressionImpl.java
new file mode 100644
index 00000000000..f37249427c5
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ConditionalAndExpressionImpl.java
@@ -0,0 +1,171 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.ConditionalAndExpression;
+import org.eclipse.papyrus.alf.alf.InclusiveOrExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Conditional And Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.ConditionalAndExpressionImpl#getExp <em>Exp</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ConditionalAndExpressionImpl extends MinimalEObjectImpl.Container implements ConditionalAndExpression
+{
+ /**
+ * The cached value of the '{@link #getExp() <em>Exp</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExp()
+ * @generated
+ * @ordered
+ */
+ protected EList<InclusiveOrExpression> exp;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConditionalAndExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.CONDITIONAL_AND_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<InclusiveOrExpression> getExp()
+ {
+ if (exp == null)
+ {
+ exp = new EObjectContainmentEList<InclusiveOrExpression>(InclusiveOrExpression.class, this, AlfPackage.CONDITIONAL_AND_EXPRESSION__EXP);
+ }
+ return exp;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CONDITIONAL_AND_EXPRESSION__EXP:
+ return ((InternalEList<?>)getExp()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CONDITIONAL_AND_EXPRESSION__EXP:
+ return getExp();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CONDITIONAL_AND_EXPRESSION__EXP:
+ getExp().clear();
+ getExp().addAll((Collection<? extends InclusiveOrExpression>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CONDITIONAL_AND_EXPRESSION__EXP:
+ getExp().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CONDITIONAL_AND_EXPRESSION__EXP:
+ return exp != null && !exp.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ConditionalAndExpressionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ConditionalOrExpressionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ConditionalOrExpressionImpl.java
new file mode 100644
index 00000000000..173a515b0e7
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ConditionalOrExpressionImpl.java
@@ -0,0 +1,171 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.ConditionalAndExpression;
+import org.eclipse.papyrus.alf.alf.ConditionalOrExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Conditional Or Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.ConditionalOrExpressionImpl#getExp <em>Exp</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ConditionalOrExpressionImpl extends MinimalEObjectImpl.Container implements ConditionalOrExpression
+{
+ /**
+ * The cached value of the '{@link #getExp() <em>Exp</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExp()
+ * @generated
+ * @ordered
+ */
+ protected EList<ConditionalAndExpression> exp;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConditionalOrExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.CONDITIONAL_OR_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ConditionalAndExpression> getExp()
+ {
+ if (exp == null)
+ {
+ exp = new EObjectContainmentEList<ConditionalAndExpression>(ConditionalAndExpression.class, this, AlfPackage.CONDITIONAL_OR_EXPRESSION__EXP);
+ }
+ return exp;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CONDITIONAL_OR_EXPRESSION__EXP:
+ return ((InternalEList<?>)getExp()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CONDITIONAL_OR_EXPRESSION__EXP:
+ return getExp();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CONDITIONAL_OR_EXPRESSION__EXP:
+ getExp().clear();
+ getExp().addAll((Collection<? extends ConditionalAndExpression>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CONDITIONAL_OR_EXPRESSION__EXP:
+ getExp().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CONDITIONAL_OR_EXPRESSION__EXP:
+ return exp != null && !exp.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ConditionalOrExpressionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ConditionalTestExpressionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ConditionalTestExpressionImpl.java
new file mode 100644
index 00000000000..b0bfc93f962
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ConditionalTestExpressionImpl.java
@@ -0,0 +1,339 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.ConditionalOrExpression;
+import org.eclipse.papyrus.alf.alf.ConditionalTestExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Conditional Test Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.ConditionalTestExpressionImpl#getExp <em>Exp</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.ConditionalTestExpressionImpl#getWhenTrue <em>When True</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.ConditionalTestExpressionImpl#getWhenFalse <em>When False</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ConditionalTestExpressionImpl extends ExpressionImpl implements ConditionalTestExpression
+{
+ /**
+ * The cached value of the '{@link #getExp() <em>Exp</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExp()
+ * @generated
+ * @ordered
+ */
+ protected ConditionalOrExpression exp;
+
+ /**
+ * The cached value of the '{@link #getWhenTrue() <em>When True</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getWhenTrue()
+ * @generated
+ * @ordered
+ */
+ protected ConditionalTestExpression whenTrue;
+
+ /**
+ * The cached value of the '{@link #getWhenFalse() <em>When False</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getWhenFalse()
+ * @generated
+ * @ordered
+ */
+ protected ConditionalTestExpression whenFalse;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConditionalTestExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.CONDITIONAL_TEST_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConditionalOrExpression getExp()
+ {
+ return exp;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetExp(ConditionalOrExpression newExp, NotificationChain msgs)
+ {
+ ConditionalOrExpression oldExp = exp;
+ exp = newExp;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.CONDITIONAL_TEST_EXPRESSION__EXP, oldExp, newExp);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExp(ConditionalOrExpression newExp)
+ {
+ if (newExp != exp)
+ {
+ NotificationChain msgs = null;
+ if (exp != null)
+ msgs = ((InternalEObject)exp).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.CONDITIONAL_TEST_EXPRESSION__EXP, null, msgs);
+ if (newExp != null)
+ msgs = ((InternalEObject)newExp).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.CONDITIONAL_TEST_EXPRESSION__EXP, null, msgs);
+ msgs = basicSetExp(newExp, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.CONDITIONAL_TEST_EXPRESSION__EXP, newExp, newExp));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConditionalTestExpression getWhenTrue()
+ {
+ return whenTrue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetWhenTrue(ConditionalTestExpression newWhenTrue, NotificationChain msgs)
+ {
+ ConditionalTestExpression oldWhenTrue = whenTrue;
+ whenTrue = newWhenTrue;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.CONDITIONAL_TEST_EXPRESSION__WHEN_TRUE, oldWhenTrue, newWhenTrue);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setWhenTrue(ConditionalTestExpression newWhenTrue)
+ {
+ if (newWhenTrue != whenTrue)
+ {
+ NotificationChain msgs = null;
+ if (whenTrue != null)
+ msgs = ((InternalEObject)whenTrue).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.CONDITIONAL_TEST_EXPRESSION__WHEN_TRUE, null, msgs);
+ if (newWhenTrue != null)
+ msgs = ((InternalEObject)newWhenTrue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.CONDITIONAL_TEST_EXPRESSION__WHEN_TRUE, null, msgs);
+ msgs = basicSetWhenTrue(newWhenTrue, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.CONDITIONAL_TEST_EXPRESSION__WHEN_TRUE, newWhenTrue, newWhenTrue));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConditionalTestExpression getWhenFalse()
+ {
+ return whenFalse;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetWhenFalse(ConditionalTestExpression newWhenFalse, NotificationChain msgs)
+ {
+ ConditionalTestExpression oldWhenFalse = whenFalse;
+ whenFalse = newWhenFalse;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.CONDITIONAL_TEST_EXPRESSION__WHEN_FALSE, oldWhenFalse, newWhenFalse);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setWhenFalse(ConditionalTestExpression newWhenFalse)
+ {
+ if (newWhenFalse != whenFalse)
+ {
+ NotificationChain msgs = null;
+ if (whenFalse != null)
+ msgs = ((InternalEObject)whenFalse).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.CONDITIONAL_TEST_EXPRESSION__WHEN_FALSE, null, msgs);
+ if (newWhenFalse != null)
+ msgs = ((InternalEObject)newWhenFalse).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.CONDITIONAL_TEST_EXPRESSION__WHEN_FALSE, null, msgs);
+ msgs = basicSetWhenFalse(newWhenFalse, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.CONDITIONAL_TEST_EXPRESSION__WHEN_FALSE, newWhenFalse, newWhenFalse));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CONDITIONAL_TEST_EXPRESSION__EXP:
+ return basicSetExp(null, msgs);
+ case AlfPackage.CONDITIONAL_TEST_EXPRESSION__WHEN_TRUE:
+ return basicSetWhenTrue(null, msgs);
+ case AlfPackage.CONDITIONAL_TEST_EXPRESSION__WHEN_FALSE:
+ return basicSetWhenFalse(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CONDITIONAL_TEST_EXPRESSION__EXP:
+ return getExp();
+ case AlfPackage.CONDITIONAL_TEST_EXPRESSION__WHEN_TRUE:
+ return getWhenTrue();
+ case AlfPackage.CONDITIONAL_TEST_EXPRESSION__WHEN_FALSE:
+ return getWhenFalse();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CONDITIONAL_TEST_EXPRESSION__EXP:
+ setExp((ConditionalOrExpression)newValue);
+ return;
+ case AlfPackage.CONDITIONAL_TEST_EXPRESSION__WHEN_TRUE:
+ setWhenTrue((ConditionalTestExpression)newValue);
+ return;
+ case AlfPackage.CONDITIONAL_TEST_EXPRESSION__WHEN_FALSE:
+ setWhenFalse((ConditionalTestExpression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CONDITIONAL_TEST_EXPRESSION__EXP:
+ setExp((ConditionalOrExpression)null);
+ return;
+ case AlfPackage.CONDITIONAL_TEST_EXPRESSION__WHEN_TRUE:
+ setWhenTrue((ConditionalTestExpression)null);
+ return;
+ case AlfPackage.CONDITIONAL_TEST_EXPRESSION__WHEN_FALSE:
+ setWhenFalse((ConditionalTestExpression)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.CONDITIONAL_TEST_EXPRESSION__EXP:
+ return exp != null;
+ case AlfPackage.CONDITIONAL_TEST_EXPRESSION__WHEN_TRUE:
+ return whenTrue != null;
+ case AlfPackage.CONDITIONAL_TEST_EXPRESSION__WHEN_FALSE:
+ return whenFalse != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ConditionalTestExpressionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/DoStatementImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/DoStatementImpl.java
new file mode 100644
index 00000000000..d3ab18da7b6
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/DoStatementImpl.java
@@ -0,0 +1,269 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.Block;
+import org.eclipse.papyrus.alf.alf.DoStatement;
+import org.eclipse.papyrus.alf.alf.Expression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Do Statement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.DoStatementImpl#getBlock <em>Block</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.DoStatementImpl#getCondition <em>Condition</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DoStatementImpl extends StatementImpl implements DoStatement
+{
+ /**
+ * The cached value of the '{@link #getBlock() <em>Block</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBlock()
+ * @generated
+ * @ordered
+ */
+ protected Block block;
+
+ /**
+ * The cached value of the '{@link #getCondition() <em>Condition</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCondition()
+ * @generated
+ * @ordered
+ */
+ protected Expression condition;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DoStatementImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.DO_STATEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Block getBlock()
+ {
+ return block;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetBlock(Block newBlock, NotificationChain msgs)
+ {
+ Block oldBlock = block;
+ block = newBlock;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.DO_STATEMENT__BLOCK, oldBlock, newBlock);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBlock(Block newBlock)
+ {
+ if (newBlock != block)
+ {
+ NotificationChain msgs = null;
+ if (block != null)
+ msgs = ((InternalEObject)block).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.DO_STATEMENT__BLOCK, null, msgs);
+ if (newBlock != null)
+ msgs = ((InternalEObject)newBlock).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.DO_STATEMENT__BLOCK, null, msgs);
+ msgs = basicSetBlock(newBlock, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.DO_STATEMENT__BLOCK, newBlock, newBlock));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Expression getCondition()
+ {
+ return condition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetCondition(Expression newCondition, NotificationChain msgs)
+ {
+ Expression oldCondition = condition;
+ condition = newCondition;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.DO_STATEMENT__CONDITION, oldCondition, newCondition);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCondition(Expression newCondition)
+ {
+ if (newCondition != condition)
+ {
+ NotificationChain msgs = null;
+ if (condition != null)
+ msgs = ((InternalEObject)condition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.DO_STATEMENT__CONDITION, null, msgs);
+ if (newCondition != null)
+ msgs = ((InternalEObject)newCondition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.DO_STATEMENT__CONDITION, null, msgs);
+ msgs = basicSetCondition(newCondition, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.DO_STATEMENT__CONDITION, newCondition, newCondition));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.DO_STATEMENT__BLOCK:
+ return basicSetBlock(null, msgs);
+ case AlfPackage.DO_STATEMENT__CONDITION:
+ return basicSetCondition(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.DO_STATEMENT__BLOCK:
+ return getBlock();
+ case AlfPackage.DO_STATEMENT__CONDITION:
+ return getCondition();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.DO_STATEMENT__BLOCK:
+ setBlock((Block)newValue);
+ return;
+ case AlfPackage.DO_STATEMENT__CONDITION:
+ setCondition((Expression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.DO_STATEMENT__BLOCK:
+ setBlock((Block)null);
+ return;
+ case AlfPackage.DO_STATEMENT__CONDITION:
+ setCondition((Expression)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.DO_STATEMENT__BLOCK:
+ return block != null;
+ case AlfPackage.DO_STATEMENT__CONDITION:
+ return condition != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //DoStatementImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/DocumentedStatementImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/DocumentedStatementImpl.java
new file mode 100644
index 00000000000..bb470d25a52
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/DocumentedStatementImpl.java
@@ -0,0 +1,269 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.DocumentedStatement;
+import org.eclipse.papyrus.alf.alf.Statement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Documented Statement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.DocumentedStatementImpl#getComment <em>Comment</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.DocumentedStatementImpl#getStatement <em>Statement</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DocumentedStatementImpl extends MinimalEObjectImpl.Container implements DocumentedStatement
+{
+ /**
+ * The default value of the '{@link #getComment() <em>Comment</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getComment()
+ * @generated
+ * @ordered
+ */
+ protected static final String COMMENT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getComment() <em>Comment</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getComment()
+ * @generated
+ * @ordered
+ */
+ protected String comment = COMMENT_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getStatement() <em>Statement</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStatement()
+ * @generated
+ * @ordered
+ */
+ protected Statement statement;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DocumentedStatementImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.DOCUMENTED_STATEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getComment()
+ {
+ return comment;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setComment(String newComment)
+ {
+ String oldComment = comment;
+ comment = newComment;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.DOCUMENTED_STATEMENT__COMMENT, oldComment, comment));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Statement getStatement()
+ {
+ return statement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetStatement(Statement newStatement, NotificationChain msgs)
+ {
+ Statement oldStatement = statement;
+ statement = newStatement;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.DOCUMENTED_STATEMENT__STATEMENT, oldStatement, newStatement);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStatement(Statement newStatement)
+ {
+ if (newStatement != statement)
+ {
+ NotificationChain msgs = null;
+ if (statement != null)
+ msgs = ((InternalEObject)statement).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.DOCUMENTED_STATEMENT__STATEMENT, null, msgs);
+ if (newStatement != null)
+ msgs = ((InternalEObject)newStatement).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.DOCUMENTED_STATEMENT__STATEMENT, null, msgs);
+ msgs = basicSetStatement(newStatement, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.DOCUMENTED_STATEMENT__STATEMENT, newStatement, newStatement));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.DOCUMENTED_STATEMENT__STATEMENT:
+ return basicSetStatement(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.DOCUMENTED_STATEMENT__COMMENT:
+ return getComment();
+ case AlfPackage.DOCUMENTED_STATEMENT__STATEMENT:
+ return getStatement();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.DOCUMENTED_STATEMENT__COMMENT:
+ setComment((String)newValue);
+ return;
+ case AlfPackage.DOCUMENTED_STATEMENT__STATEMENT:
+ setStatement((Statement)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.DOCUMENTED_STATEMENT__COMMENT:
+ setComment(COMMENT_EDEFAULT);
+ return;
+ case AlfPackage.DOCUMENTED_STATEMENT__STATEMENT:
+ setStatement((Statement)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.DOCUMENTED_STATEMENT__COMMENT:
+ return COMMENT_EDEFAULT == null ? comment != null : !COMMENT_EDEFAULT.equals(comment);
+ case AlfPackage.DOCUMENTED_STATEMENT__STATEMENT:
+ return statement != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (comment: ");
+ result.append(comment);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DocumentedStatementImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/EmptyStatementImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/EmptyStatementImpl.java
new file mode 100644
index 00000000000..94bcb79e15b
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/EmptyStatementImpl.java
@@ -0,0 +1,46 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.EmptyStatement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Empty Statement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class EmptyStatementImpl extends StatementImpl implements EmptyStatement
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EmptyStatementImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.EMPTY_STATEMENT;
+ }
+
+} //EmptyStatementImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/EqualityExpressionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/EqualityExpressionImpl.java
new file mode 100644
index 00000000000..82e6b699624
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/EqualityExpressionImpl.java
@@ -0,0 +1,225 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EDataTypeEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.ClassificationExpression;
+import org.eclipse.papyrus.alf.alf.EqualityExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Equality Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.EqualityExpressionImpl#getExp <em>Exp</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.EqualityExpressionImpl#getOp <em>Op</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EqualityExpressionImpl extends MinimalEObjectImpl.Container implements EqualityExpression
+{
+ /**
+ * The cached value of the '{@link #getExp() <em>Exp</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExp()
+ * @generated
+ * @ordered
+ */
+ protected EList<ClassificationExpression> exp;
+
+ /**
+ * The cached value of the '{@link #getOp() <em>Op</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOp()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> op;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EqualityExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.EQUALITY_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ClassificationExpression> getExp()
+ {
+ if (exp == null)
+ {
+ exp = new EObjectContainmentEList<ClassificationExpression>(ClassificationExpression.class, this, AlfPackage.EQUALITY_EXPRESSION__EXP);
+ }
+ return exp;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<String> getOp()
+ {
+ if (op == null)
+ {
+ op = new EDataTypeEList<String>(String.class, this, AlfPackage.EQUALITY_EXPRESSION__OP);
+ }
+ return op;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.EQUALITY_EXPRESSION__EXP:
+ return ((InternalEList<?>)getExp()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.EQUALITY_EXPRESSION__EXP:
+ return getExp();
+ case AlfPackage.EQUALITY_EXPRESSION__OP:
+ return getOp();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.EQUALITY_EXPRESSION__EXP:
+ getExp().clear();
+ getExp().addAll((Collection<? extends ClassificationExpression>)newValue);
+ return;
+ case AlfPackage.EQUALITY_EXPRESSION__OP:
+ getOp().clear();
+ getOp().addAll((Collection<? extends String>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.EQUALITY_EXPRESSION__EXP:
+ getExp().clear();
+ return;
+ case AlfPackage.EQUALITY_EXPRESSION__OP:
+ getOp().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.EQUALITY_EXPRESSION__EXP:
+ return exp != null && !exp.isEmpty();
+ case AlfPackage.EQUALITY_EXPRESSION__OP:
+ return op != null && !op.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (op: ");
+ result.append(op);
+ result.append(')');
+ return result.toString();
+ }
+
+} //EqualityExpressionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ExclusiveOrExpressionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ExclusiveOrExpressionImpl.java
new file mode 100644
index 00000000000..703b6e71117
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ExclusiveOrExpressionImpl.java
@@ -0,0 +1,171 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.AndExpression;
+import org.eclipse.papyrus.alf.alf.ExclusiveOrExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Exclusive Or Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.ExclusiveOrExpressionImpl#getExp <em>Exp</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ExclusiveOrExpressionImpl extends MinimalEObjectImpl.Container implements ExclusiveOrExpression
+{
+ /**
+ * The cached value of the '{@link #getExp() <em>Exp</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExp()
+ * @generated
+ * @ordered
+ */
+ protected EList<AndExpression> exp;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ExclusiveOrExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.EXCLUSIVE_OR_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<AndExpression> getExp()
+ {
+ if (exp == null)
+ {
+ exp = new EObjectContainmentEList<AndExpression>(AndExpression.class, this, AlfPackage.EXCLUSIVE_OR_EXPRESSION__EXP);
+ }
+ return exp;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.EXCLUSIVE_OR_EXPRESSION__EXP:
+ return ((InternalEList<?>)getExp()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.EXCLUSIVE_OR_EXPRESSION__EXP:
+ return getExp();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.EXCLUSIVE_OR_EXPRESSION__EXP:
+ getExp().clear();
+ getExp().addAll((Collection<? extends AndExpression>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.EXCLUSIVE_OR_EXPRESSION__EXP:
+ getExp().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.EXCLUSIVE_OR_EXPRESSION__EXP:
+ return exp != null && !exp.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ExclusiveOrExpressionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ExpressionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ExpressionImpl.java
new file mode 100644
index 00000000000..984d9ed30f5
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ExpressionImpl.java
@@ -0,0 +1,46 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.Expression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class ExpressionImpl extends SequenceElementImpl implements Expression
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.EXPRESSION;
+ }
+
+} //ExpressionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/FinalClauseImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/FinalClauseImpl.java
new file mode 100644
index 00000000000..fe24f8cbe96
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/FinalClauseImpl.java
@@ -0,0 +1,198 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.Block;
+import org.eclipse.papyrus.alf.alf.FinalClause;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Final Clause</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.FinalClauseImpl#getBlock <em>Block</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class FinalClauseImpl extends MinimalEObjectImpl.Container implements FinalClause
+{
+ /**
+ * The cached value of the '{@link #getBlock() <em>Block</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBlock()
+ * @generated
+ * @ordered
+ */
+ protected Block block;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FinalClauseImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.FINAL_CLAUSE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Block getBlock()
+ {
+ return block;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetBlock(Block newBlock, NotificationChain msgs)
+ {
+ Block oldBlock = block;
+ block = newBlock;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.FINAL_CLAUSE__BLOCK, oldBlock, newBlock);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBlock(Block newBlock)
+ {
+ if (newBlock != block)
+ {
+ NotificationChain msgs = null;
+ if (block != null)
+ msgs = ((InternalEObject)block).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.FINAL_CLAUSE__BLOCK, null, msgs);
+ if (newBlock != null)
+ msgs = ((InternalEObject)newBlock).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.FINAL_CLAUSE__BLOCK, null, msgs);
+ msgs = basicSetBlock(newBlock, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.FINAL_CLAUSE__BLOCK, newBlock, newBlock));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.FINAL_CLAUSE__BLOCK:
+ return basicSetBlock(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.FINAL_CLAUSE__BLOCK:
+ return getBlock();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.FINAL_CLAUSE__BLOCK:
+ setBlock((Block)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.FINAL_CLAUSE__BLOCK:
+ setBlock((Block)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.FINAL_CLAUSE__BLOCK:
+ return block != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //FinalClauseImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ForAllOrExistsOrOneOperationImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ForAllOrExistsOrOneOperationImpl.java
new file mode 100644
index 00000000000..ba17e6cff76
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ForAllOrExistsOrOneOperationImpl.java
@@ -0,0 +1,181 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.ForAllOrExistsOrOneOperation;
+import org.eclipse.papyrus.alf.alf.ForAllOrExistsOrOneOperator;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>For All Or Exists Or One Operation</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.ForAllOrExistsOrOneOperationImpl#getOp <em>Op</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ForAllOrExistsOrOneOperationImpl extends SequenceExpansionExpressionImpl implements ForAllOrExistsOrOneOperation
+{
+ /**
+ * The default value of the '{@link #getOp() <em>Op</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOp()
+ * @generated
+ * @ordered
+ */
+ protected static final ForAllOrExistsOrOneOperator OP_EDEFAULT = ForAllOrExistsOrOneOperator.FORALL;
+
+ /**
+ * The cached value of the '{@link #getOp() <em>Op</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOp()
+ * @generated
+ * @ordered
+ */
+ protected ForAllOrExistsOrOneOperator op = OP_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ForAllOrExistsOrOneOperationImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.FOR_ALL_OR_EXISTS_OR_ONE_OPERATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ForAllOrExistsOrOneOperator getOp()
+ {
+ return op;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOp(ForAllOrExistsOrOneOperator newOp)
+ {
+ ForAllOrExistsOrOneOperator oldOp = op;
+ op = newOp == null ? OP_EDEFAULT : newOp;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.FOR_ALL_OR_EXISTS_OR_ONE_OPERATION__OP, oldOp, op));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.FOR_ALL_OR_EXISTS_OR_ONE_OPERATION__OP:
+ return getOp();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.FOR_ALL_OR_EXISTS_OR_ONE_OPERATION__OP:
+ setOp((ForAllOrExistsOrOneOperator)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.FOR_ALL_OR_EXISTS_OR_ONE_OPERATION__OP:
+ setOp(OP_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.FOR_ALL_OR_EXISTS_OR_ONE_OPERATION__OP:
+ return op != OP_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (op: ");
+ result.append(op);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ForAllOrExistsOrOneOperationImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ForControlImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ForControlImpl.java
new file mode 100644
index 00000000000..aaa8f4c1622
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ForControlImpl.java
@@ -0,0 +1,171 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.ForControl;
+import org.eclipse.papyrus.alf.alf.LoopVariableDefinition;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>For Control</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.ForControlImpl#getLoopVariableDefinition <em>Loop Variable Definition</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ForControlImpl extends MinimalEObjectImpl.Container implements ForControl
+{
+ /**
+ * The cached value of the '{@link #getLoopVariableDefinition() <em>Loop Variable Definition</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLoopVariableDefinition()
+ * @generated
+ * @ordered
+ */
+ protected EList<LoopVariableDefinition> loopVariableDefinition;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ForControlImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.FOR_CONTROL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<LoopVariableDefinition> getLoopVariableDefinition()
+ {
+ if (loopVariableDefinition == null)
+ {
+ loopVariableDefinition = new EObjectContainmentEList<LoopVariableDefinition>(LoopVariableDefinition.class, this, AlfPackage.FOR_CONTROL__LOOP_VARIABLE_DEFINITION);
+ }
+ return loopVariableDefinition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.FOR_CONTROL__LOOP_VARIABLE_DEFINITION:
+ return ((InternalEList<?>)getLoopVariableDefinition()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.FOR_CONTROL__LOOP_VARIABLE_DEFINITION:
+ return getLoopVariableDefinition();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.FOR_CONTROL__LOOP_VARIABLE_DEFINITION:
+ getLoopVariableDefinition().clear();
+ getLoopVariableDefinition().addAll((Collection<? extends LoopVariableDefinition>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.FOR_CONTROL__LOOP_VARIABLE_DEFINITION:
+ getLoopVariableDefinition().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.FOR_CONTROL__LOOP_VARIABLE_DEFINITION:
+ return loopVariableDefinition != null && !loopVariableDefinition.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ForControlImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ForStatementImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ForStatementImpl.java
new file mode 100644
index 00000000000..33b884e5d68
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ForStatementImpl.java
@@ -0,0 +1,269 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.Block;
+import org.eclipse.papyrus.alf.alf.ForControl;
+import org.eclipse.papyrus.alf.alf.ForStatement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>For Statement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.ForStatementImpl#getControl <em>Control</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.ForStatementImpl#getBlock <em>Block</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ForStatementImpl extends StatementImpl implements ForStatement
+{
+ /**
+ * The cached value of the '{@link #getControl() <em>Control</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getControl()
+ * @generated
+ * @ordered
+ */
+ protected ForControl control;
+
+ /**
+ * The cached value of the '{@link #getBlock() <em>Block</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBlock()
+ * @generated
+ * @ordered
+ */
+ protected Block block;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ForStatementImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.FOR_STATEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ForControl getControl()
+ {
+ return control;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetControl(ForControl newControl, NotificationChain msgs)
+ {
+ ForControl oldControl = control;
+ control = newControl;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.FOR_STATEMENT__CONTROL, oldControl, newControl);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setControl(ForControl newControl)
+ {
+ if (newControl != control)
+ {
+ NotificationChain msgs = null;
+ if (control != null)
+ msgs = ((InternalEObject)control).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.FOR_STATEMENT__CONTROL, null, msgs);
+ if (newControl != null)
+ msgs = ((InternalEObject)newControl).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.FOR_STATEMENT__CONTROL, null, msgs);
+ msgs = basicSetControl(newControl, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.FOR_STATEMENT__CONTROL, newControl, newControl));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Block getBlock()
+ {
+ return block;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetBlock(Block newBlock, NotificationChain msgs)
+ {
+ Block oldBlock = block;
+ block = newBlock;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.FOR_STATEMENT__BLOCK, oldBlock, newBlock);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBlock(Block newBlock)
+ {
+ if (newBlock != block)
+ {
+ NotificationChain msgs = null;
+ if (block != null)
+ msgs = ((InternalEObject)block).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.FOR_STATEMENT__BLOCK, null, msgs);
+ if (newBlock != null)
+ msgs = ((InternalEObject)newBlock).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.FOR_STATEMENT__BLOCK, null, msgs);
+ msgs = basicSetBlock(newBlock, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.FOR_STATEMENT__BLOCK, newBlock, newBlock));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.FOR_STATEMENT__CONTROL:
+ return basicSetControl(null, msgs);
+ case AlfPackage.FOR_STATEMENT__BLOCK:
+ return basicSetBlock(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.FOR_STATEMENT__CONTROL:
+ return getControl();
+ case AlfPackage.FOR_STATEMENT__BLOCK:
+ return getBlock();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.FOR_STATEMENT__CONTROL:
+ setControl((ForControl)newValue);
+ return;
+ case AlfPackage.FOR_STATEMENT__BLOCK:
+ setBlock((Block)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.FOR_STATEMENT__CONTROL:
+ setControl((ForControl)null);
+ return;
+ case AlfPackage.FOR_STATEMENT__BLOCK:
+ setBlock((Block)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.FOR_STATEMENT__CONTROL:
+ return control != null;
+ case AlfPackage.FOR_STATEMENT__BLOCK:
+ return block != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ForStatementImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/INTEGER_LITERALImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/INTEGER_LITERALImpl.java
new file mode 100644
index 00000000000..4a844072fe4
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/INTEGER_LITERALImpl.java
@@ -0,0 +1,46 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.INTEGER_LITERAL;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>INTEGER LITERAL</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class INTEGER_LITERALImpl extends NUMBER_LITERALImpl implements INTEGER_LITERAL
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected INTEGER_LITERALImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.INTEGER_LITERAL;
+ }
+
+} //INTEGER_LITERALImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/IfStatementImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/IfStatementImpl.java
new file mode 100644
index 00000000000..8f03675580d
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/IfStatementImpl.java
@@ -0,0 +1,269 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.FinalClause;
+import org.eclipse.papyrus.alf.alf.IfStatement;
+import org.eclipse.papyrus.alf.alf.SequentialClauses;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>If Statement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.IfStatementImpl#getSequentialClausses <em>Sequential Clausses</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.IfStatementImpl#getFinalClause <em>Final Clause</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class IfStatementImpl extends StatementImpl implements IfStatement
+{
+ /**
+ * The cached value of the '{@link #getSequentialClausses() <em>Sequential Clausses</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSequentialClausses()
+ * @generated
+ * @ordered
+ */
+ protected SequentialClauses sequentialClausses;
+
+ /**
+ * The cached value of the '{@link #getFinalClause() <em>Final Clause</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFinalClause()
+ * @generated
+ * @ordered
+ */
+ protected FinalClause finalClause;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IfStatementImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.IF_STATEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SequentialClauses getSequentialClausses()
+ {
+ return sequentialClausses;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSequentialClausses(SequentialClauses newSequentialClausses, NotificationChain msgs)
+ {
+ SequentialClauses oldSequentialClausses = sequentialClausses;
+ sequentialClausses = newSequentialClausses;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.IF_STATEMENT__SEQUENTIAL_CLAUSSES, oldSequentialClausses, newSequentialClausses);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSequentialClausses(SequentialClauses newSequentialClausses)
+ {
+ if (newSequentialClausses != sequentialClausses)
+ {
+ NotificationChain msgs = null;
+ if (sequentialClausses != null)
+ msgs = ((InternalEObject)sequentialClausses).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.IF_STATEMENT__SEQUENTIAL_CLAUSSES, null, msgs);
+ if (newSequentialClausses != null)
+ msgs = ((InternalEObject)newSequentialClausses).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.IF_STATEMENT__SEQUENTIAL_CLAUSSES, null, msgs);
+ msgs = basicSetSequentialClausses(newSequentialClausses, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.IF_STATEMENT__SEQUENTIAL_CLAUSSES, newSequentialClausses, newSequentialClausses));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FinalClause getFinalClause()
+ {
+ return finalClause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetFinalClause(FinalClause newFinalClause, NotificationChain msgs)
+ {
+ FinalClause oldFinalClause = finalClause;
+ finalClause = newFinalClause;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.IF_STATEMENT__FINAL_CLAUSE, oldFinalClause, newFinalClause);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFinalClause(FinalClause newFinalClause)
+ {
+ if (newFinalClause != finalClause)
+ {
+ NotificationChain msgs = null;
+ if (finalClause != null)
+ msgs = ((InternalEObject)finalClause).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.IF_STATEMENT__FINAL_CLAUSE, null, msgs);
+ if (newFinalClause != null)
+ msgs = ((InternalEObject)newFinalClause).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.IF_STATEMENT__FINAL_CLAUSE, null, msgs);
+ msgs = basicSetFinalClause(newFinalClause, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.IF_STATEMENT__FINAL_CLAUSE, newFinalClause, newFinalClause));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.IF_STATEMENT__SEQUENTIAL_CLAUSSES:
+ return basicSetSequentialClausses(null, msgs);
+ case AlfPackage.IF_STATEMENT__FINAL_CLAUSE:
+ return basicSetFinalClause(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.IF_STATEMENT__SEQUENTIAL_CLAUSSES:
+ return getSequentialClausses();
+ case AlfPackage.IF_STATEMENT__FINAL_CLAUSE:
+ return getFinalClause();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.IF_STATEMENT__SEQUENTIAL_CLAUSSES:
+ setSequentialClausses((SequentialClauses)newValue);
+ return;
+ case AlfPackage.IF_STATEMENT__FINAL_CLAUSE:
+ setFinalClause((FinalClause)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.IF_STATEMENT__SEQUENTIAL_CLAUSSES:
+ setSequentialClausses((SequentialClauses)null);
+ return;
+ case AlfPackage.IF_STATEMENT__FINAL_CLAUSE:
+ setFinalClause((FinalClause)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.IF_STATEMENT__SEQUENTIAL_CLAUSSES:
+ return sequentialClausses != null;
+ case AlfPackage.IF_STATEMENT__FINAL_CLAUSE:
+ return finalClause != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //IfStatementImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/InclusiveOrExpressionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/InclusiveOrExpressionImpl.java
new file mode 100644
index 00000000000..a63cba6caa6
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/InclusiveOrExpressionImpl.java
@@ -0,0 +1,171 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.ExclusiveOrExpression;
+import org.eclipse.papyrus.alf.alf.InclusiveOrExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Inclusive Or Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.InclusiveOrExpressionImpl#getExp <em>Exp</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class InclusiveOrExpressionImpl extends MinimalEObjectImpl.Container implements InclusiveOrExpression
+{
+ /**
+ * The cached value of the '{@link #getExp() <em>Exp</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExp()
+ * @generated
+ * @ordered
+ */
+ protected EList<ExclusiveOrExpression> exp;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InclusiveOrExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.INCLUSIVE_OR_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ExclusiveOrExpression> getExp()
+ {
+ if (exp == null)
+ {
+ exp = new EObjectContainmentEList<ExclusiveOrExpression>(ExclusiveOrExpression.class, this, AlfPackage.INCLUSIVE_OR_EXPRESSION__EXP);
+ }
+ return exp;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INCLUSIVE_OR_EXPRESSION__EXP:
+ return ((InternalEList<?>)getExp()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INCLUSIVE_OR_EXPRESSION__EXP:
+ return getExp();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INCLUSIVE_OR_EXPRESSION__EXP:
+ getExp().clear();
+ getExp().addAll((Collection<? extends ExclusiveOrExpression>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INCLUSIVE_OR_EXPRESSION__EXP:
+ getExp().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INCLUSIVE_OR_EXPRESSION__EXP:
+ return exp != null && !exp.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //InclusiveOrExpressionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/InlineStatementImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/InlineStatementImpl.java
new file mode 100644
index 00000000000..b461f2c3605
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/InlineStatementImpl.java
@@ -0,0 +1,236 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.InlineStatement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Inline Statement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.InlineStatementImpl#getLangageName <em>Langage Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.InlineStatementImpl#getBody <em>Body</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class InlineStatementImpl extends StatementImpl implements InlineStatement
+{
+ /**
+ * The default value of the '{@link #getLangageName() <em>Langage Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLangageName()
+ * @generated
+ * @ordered
+ */
+ protected static final String LANGAGE_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getLangageName() <em>Langage Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLangageName()
+ * @generated
+ * @ordered
+ */
+ protected String langageName = LANGAGE_NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getBody() <em>Body</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBody()
+ * @generated
+ * @ordered
+ */
+ protected static final String BODY_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getBody() <em>Body</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBody()
+ * @generated
+ * @ordered
+ */
+ protected String body = BODY_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InlineStatementImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.INLINE_STATEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLangageName()
+ {
+ return langageName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLangageName(String newLangageName)
+ {
+ String oldLangageName = langageName;
+ langageName = newLangageName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.INLINE_STATEMENT__LANGAGE_NAME, oldLangageName, langageName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getBody()
+ {
+ return body;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBody(String newBody)
+ {
+ String oldBody = body;
+ body = newBody;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.INLINE_STATEMENT__BODY, oldBody, body));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INLINE_STATEMENT__LANGAGE_NAME:
+ return getLangageName();
+ case AlfPackage.INLINE_STATEMENT__BODY:
+ return getBody();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INLINE_STATEMENT__LANGAGE_NAME:
+ setLangageName((String)newValue);
+ return;
+ case AlfPackage.INLINE_STATEMENT__BODY:
+ setBody((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INLINE_STATEMENT__LANGAGE_NAME:
+ setLangageName(LANGAGE_NAME_EDEFAULT);
+ return;
+ case AlfPackage.INLINE_STATEMENT__BODY:
+ setBody(BODY_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INLINE_STATEMENT__LANGAGE_NAME:
+ return LANGAGE_NAME_EDEFAULT == null ? langageName != null : !LANGAGE_NAME_EDEFAULT.equals(langageName);
+ case AlfPackage.INLINE_STATEMENT__BODY:
+ return BODY_EDEFAULT == null ? body != null : !BODY_EDEFAULT.equals(body);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (langageName: ");
+ result.append(langageName);
+ result.append(", body: ");
+ result.append(body);
+ result.append(')');
+ return result.toString();
+ }
+
+} //InlineStatementImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/InstanceCreationExpressionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/InstanceCreationExpressionImpl.java
new file mode 100644
index 00000000000..ac39748c669
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/InstanceCreationExpressionImpl.java
@@ -0,0 +1,341 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.InstanceCreationExpression;
+import org.eclipse.papyrus.alf.alf.InstanceCreationTuple;
+import org.eclipse.papyrus.alf.alf.QualifiedNameWithBinding;
+import org.eclipse.papyrus.alf.alf.SuffixExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Instance Creation Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.InstanceCreationExpressionImpl#getConstructor <em>Constructor</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.InstanceCreationExpressionImpl#getTuple <em>Tuple</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.InstanceCreationExpressionImpl#getSuffix <em>Suffix</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class InstanceCreationExpressionImpl extends ValueSpecificationImpl implements InstanceCreationExpression
+{
+ /**
+ * The cached value of the '{@link #getConstructor() <em>Constructor</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getConstructor()
+ * @generated
+ * @ordered
+ */
+ protected QualifiedNameWithBinding constructor;
+
+ /**
+ * The cached value of the '{@link #getTuple() <em>Tuple</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTuple()
+ * @generated
+ * @ordered
+ */
+ protected InstanceCreationTuple tuple;
+
+ /**
+ * The cached value of the '{@link #getSuffix() <em>Suffix</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSuffix()
+ * @generated
+ * @ordered
+ */
+ protected SuffixExpression suffix;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InstanceCreationExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.INSTANCE_CREATION_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QualifiedNameWithBinding getConstructor()
+ {
+ return constructor;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetConstructor(QualifiedNameWithBinding newConstructor, NotificationChain msgs)
+ {
+ QualifiedNameWithBinding oldConstructor = constructor;
+ constructor = newConstructor;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.INSTANCE_CREATION_EXPRESSION__CONSTRUCTOR, oldConstructor, newConstructor);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setConstructor(QualifiedNameWithBinding newConstructor)
+ {
+ if (newConstructor != constructor)
+ {
+ NotificationChain msgs = null;
+ if (constructor != null)
+ msgs = ((InternalEObject)constructor).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.INSTANCE_CREATION_EXPRESSION__CONSTRUCTOR, null, msgs);
+ if (newConstructor != null)
+ msgs = ((InternalEObject)newConstructor).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.INSTANCE_CREATION_EXPRESSION__CONSTRUCTOR, null, msgs);
+ msgs = basicSetConstructor(newConstructor, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.INSTANCE_CREATION_EXPRESSION__CONSTRUCTOR, newConstructor, newConstructor));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InstanceCreationTuple getTuple()
+ {
+ return tuple;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetTuple(InstanceCreationTuple newTuple, NotificationChain msgs)
+ {
+ InstanceCreationTuple oldTuple = tuple;
+ tuple = newTuple;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.INSTANCE_CREATION_EXPRESSION__TUPLE, oldTuple, newTuple);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTuple(InstanceCreationTuple newTuple)
+ {
+ if (newTuple != tuple)
+ {
+ NotificationChain msgs = null;
+ if (tuple != null)
+ msgs = ((InternalEObject)tuple).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.INSTANCE_CREATION_EXPRESSION__TUPLE, null, msgs);
+ if (newTuple != null)
+ msgs = ((InternalEObject)newTuple).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.INSTANCE_CREATION_EXPRESSION__TUPLE, null, msgs);
+ msgs = basicSetTuple(newTuple, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.INSTANCE_CREATION_EXPRESSION__TUPLE, newTuple, newTuple));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SuffixExpression getSuffix()
+ {
+ return suffix;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSuffix(SuffixExpression newSuffix, NotificationChain msgs)
+ {
+ SuffixExpression oldSuffix = suffix;
+ suffix = newSuffix;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.INSTANCE_CREATION_EXPRESSION__SUFFIX, oldSuffix, newSuffix);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSuffix(SuffixExpression newSuffix)
+ {
+ if (newSuffix != suffix)
+ {
+ NotificationChain msgs = null;
+ if (suffix != null)
+ msgs = ((InternalEObject)suffix).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.INSTANCE_CREATION_EXPRESSION__SUFFIX, null, msgs);
+ if (newSuffix != null)
+ msgs = ((InternalEObject)newSuffix).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.INSTANCE_CREATION_EXPRESSION__SUFFIX, null, msgs);
+ msgs = basicSetSuffix(newSuffix, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.INSTANCE_CREATION_EXPRESSION__SUFFIX, newSuffix, newSuffix));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INSTANCE_CREATION_EXPRESSION__CONSTRUCTOR:
+ return basicSetConstructor(null, msgs);
+ case AlfPackage.INSTANCE_CREATION_EXPRESSION__TUPLE:
+ return basicSetTuple(null, msgs);
+ case AlfPackage.INSTANCE_CREATION_EXPRESSION__SUFFIX:
+ return basicSetSuffix(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INSTANCE_CREATION_EXPRESSION__CONSTRUCTOR:
+ return getConstructor();
+ case AlfPackage.INSTANCE_CREATION_EXPRESSION__TUPLE:
+ return getTuple();
+ case AlfPackage.INSTANCE_CREATION_EXPRESSION__SUFFIX:
+ return getSuffix();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INSTANCE_CREATION_EXPRESSION__CONSTRUCTOR:
+ setConstructor((QualifiedNameWithBinding)newValue);
+ return;
+ case AlfPackage.INSTANCE_CREATION_EXPRESSION__TUPLE:
+ setTuple((InstanceCreationTuple)newValue);
+ return;
+ case AlfPackage.INSTANCE_CREATION_EXPRESSION__SUFFIX:
+ setSuffix((SuffixExpression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INSTANCE_CREATION_EXPRESSION__CONSTRUCTOR:
+ setConstructor((QualifiedNameWithBinding)null);
+ return;
+ case AlfPackage.INSTANCE_CREATION_EXPRESSION__TUPLE:
+ setTuple((InstanceCreationTuple)null);
+ return;
+ case AlfPackage.INSTANCE_CREATION_EXPRESSION__SUFFIX:
+ setSuffix((SuffixExpression)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INSTANCE_CREATION_EXPRESSION__CONSTRUCTOR:
+ return constructor != null;
+ case AlfPackage.INSTANCE_CREATION_EXPRESSION__TUPLE:
+ return tuple != null;
+ case AlfPackage.INSTANCE_CREATION_EXPRESSION__SUFFIX:
+ return suffix != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //InstanceCreationExpressionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/InstanceCreationInvocationStatementImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/InstanceCreationInvocationStatementImpl.java
new file mode 100644
index 00000000000..0b726d1061b
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/InstanceCreationInvocationStatementImpl.java
@@ -0,0 +1,197 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.InstanceCreationExpression;
+import org.eclipse.papyrus.alf.alf.InstanceCreationInvocationStatement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Instance Creation Invocation Statement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.InstanceCreationInvocationStatementImpl#get_new <em>new</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class InstanceCreationInvocationStatementImpl extends StatementImpl implements InstanceCreationInvocationStatement
+{
+ /**
+ * The cached value of the '{@link #get_new() <em>new</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #get_new()
+ * @generated
+ * @ordered
+ */
+ protected InstanceCreationExpression _new;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InstanceCreationInvocationStatementImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.INSTANCE_CREATION_INVOCATION_STATEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InstanceCreationExpression get_new()
+ {
+ return _new;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSet_new(InstanceCreationExpression new_new, NotificationChain msgs)
+ {
+ InstanceCreationExpression old_new = _new;
+ _new = new_new;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.INSTANCE_CREATION_INVOCATION_STATEMENT__NEW, old_new, new_new);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void set_new(InstanceCreationExpression new_new)
+ {
+ if (new_new != _new)
+ {
+ NotificationChain msgs = null;
+ if (_new != null)
+ msgs = ((InternalEObject)_new).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.INSTANCE_CREATION_INVOCATION_STATEMENT__NEW, null, msgs);
+ if (new_new != null)
+ msgs = ((InternalEObject)new_new).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.INSTANCE_CREATION_INVOCATION_STATEMENT__NEW, null, msgs);
+ msgs = basicSet_new(new_new, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.INSTANCE_CREATION_INVOCATION_STATEMENT__NEW, new_new, new_new));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INSTANCE_CREATION_INVOCATION_STATEMENT__NEW:
+ return basicSet_new(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INSTANCE_CREATION_INVOCATION_STATEMENT__NEW:
+ return get_new();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INSTANCE_CREATION_INVOCATION_STATEMENT__NEW:
+ set_new((InstanceCreationExpression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INSTANCE_CREATION_INVOCATION_STATEMENT__NEW:
+ set_new((InstanceCreationExpression)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INSTANCE_CREATION_INVOCATION_STATEMENT__NEW:
+ return _new != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //InstanceCreationInvocationStatementImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/InstanceCreationTupleElementImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/InstanceCreationTupleElementImpl.java
new file mode 100644
index 00000000000..8f4cc0b6255
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/InstanceCreationTupleElementImpl.java
@@ -0,0 +1,269 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.Expression;
+import org.eclipse.papyrus.alf.alf.InstanceCreationTupleElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Instance Creation Tuple Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.InstanceCreationTupleElementImpl#getRole <em>Role</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.InstanceCreationTupleElementImpl#getObject <em>Object</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class InstanceCreationTupleElementImpl extends MinimalEObjectImpl.Container implements InstanceCreationTupleElement
+{
+ /**
+ * The default value of the '{@link #getRole() <em>Role</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRole()
+ * @generated
+ * @ordered
+ */
+ protected static final String ROLE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getRole() <em>Role</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRole()
+ * @generated
+ * @ordered
+ */
+ protected String role = ROLE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getObject() <em>Object</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getObject()
+ * @generated
+ * @ordered
+ */
+ protected Expression object;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InstanceCreationTupleElementImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.INSTANCE_CREATION_TUPLE_ELEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getRole()
+ {
+ return role;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRole(String newRole)
+ {
+ String oldRole = role;
+ role = newRole;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.INSTANCE_CREATION_TUPLE_ELEMENT__ROLE, oldRole, role));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Expression getObject()
+ {
+ return object;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetObject(Expression newObject, NotificationChain msgs)
+ {
+ Expression oldObject = object;
+ object = newObject;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.INSTANCE_CREATION_TUPLE_ELEMENT__OBJECT, oldObject, newObject);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setObject(Expression newObject)
+ {
+ if (newObject != object)
+ {
+ NotificationChain msgs = null;
+ if (object != null)
+ msgs = ((InternalEObject)object).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.INSTANCE_CREATION_TUPLE_ELEMENT__OBJECT, null, msgs);
+ if (newObject != null)
+ msgs = ((InternalEObject)newObject).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.INSTANCE_CREATION_TUPLE_ELEMENT__OBJECT, null, msgs);
+ msgs = basicSetObject(newObject, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.INSTANCE_CREATION_TUPLE_ELEMENT__OBJECT, newObject, newObject));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INSTANCE_CREATION_TUPLE_ELEMENT__OBJECT:
+ return basicSetObject(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INSTANCE_CREATION_TUPLE_ELEMENT__ROLE:
+ return getRole();
+ case AlfPackage.INSTANCE_CREATION_TUPLE_ELEMENT__OBJECT:
+ return getObject();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INSTANCE_CREATION_TUPLE_ELEMENT__ROLE:
+ setRole((String)newValue);
+ return;
+ case AlfPackage.INSTANCE_CREATION_TUPLE_ELEMENT__OBJECT:
+ setObject((Expression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INSTANCE_CREATION_TUPLE_ELEMENT__ROLE:
+ setRole(ROLE_EDEFAULT);
+ return;
+ case AlfPackage.INSTANCE_CREATION_TUPLE_ELEMENT__OBJECT:
+ setObject((Expression)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INSTANCE_CREATION_TUPLE_ELEMENT__ROLE:
+ return ROLE_EDEFAULT == null ? role != null : !ROLE_EDEFAULT.equals(role);
+ case AlfPackage.INSTANCE_CREATION_TUPLE_ELEMENT__OBJECT:
+ return object != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (role: ");
+ result.append(role);
+ result.append(')');
+ return result.toString();
+ }
+
+} //InstanceCreationTupleElementImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/InstanceCreationTupleImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/InstanceCreationTupleImpl.java
new file mode 100644
index 00000000000..54294046c2a
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/InstanceCreationTupleImpl.java
@@ -0,0 +1,171 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.InstanceCreationTuple;
+import org.eclipse.papyrus.alf.alf.InstanceCreationTupleElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Instance Creation Tuple</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.InstanceCreationTupleImpl#getInstanceCreationTupleElement <em>Instance Creation Tuple Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class InstanceCreationTupleImpl extends MinimalEObjectImpl.Container implements InstanceCreationTuple
+{
+ /**
+ * The cached value of the '{@link #getInstanceCreationTupleElement() <em>Instance Creation Tuple Element</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInstanceCreationTupleElement()
+ * @generated
+ * @ordered
+ */
+ protected EList<InstanceCreationTupleElement> instanceCreationTupleElement;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InstanceCreationTupleImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.INSTANCE_CREATION_TUPLE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<InstanceCreationTupleElement> getInstanceCreationTupleElement()
+ {
+ if (instanceCreationTupleElement == null)
+ {
+ instanceCreationTupleElement = new EObjectContainmentEList<InstanceCreationTupleElement>(InstanceCreationTupleElement.class, this, AlfPackage.INSTANCE_CREATION_TUPLE__INSTANCE_CREATION_TUPLE_ELEMENT);
+ }
+ return instanceCreationTupleElement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INSTANCE_CREATION_TUPLE__INSTANCE_CREATION_TUPLE_ELEMENT:
+ return ((InternalEList<?>)getInstanceCreationTupleElement()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INSTANCE_CREATION_TUPLE__INSTANCE_CREATION_TUPLE_ELEMENT:
+ return getInstanceCreationTupleElement();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INSTANCE_CREATION_TUPLE__INSTANCE_CREATION_TUPLE_ELEMENT:
+ getInstanceCreationTupleElement().clear();
+ getInstanceCreationTupleElement().addAll((Collection<? extends InstanceCreationTupleElement>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INSTANCE_CREATION_TUPLE__INSTANCE_CREATION_TUPLE_ELEMENT:
+ getInstanceCreationTupleElement().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INSTANCE_CREATION_TUPLE__INSTANCE_CREATION_TUPLE_ELEMENT:
+ return instanceCreationTupleElement != null && !instanceCreationTupleElement.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //InstanceCreationTupleImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/InvocationOrAssignementOrDeclarationStatementImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/InvocationOrAssignementOrDeclarationStatementImpl.java
new file mode 100644
index 00000000000..06cb5482344
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/InvocationOrAssignementOrDeclarationStatementImpl.java
@@ -0,0 +1,341 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.AssignmentCompletion;
+import org.eclipse.papyrus.alf.alf.InvocationOrAssignementOrDeclarationStatement;
+import org.eclipse.papyrus.alf.alf.NameExpression;
+import org.eclipse.papyrus.alf.alf.VariableDeclarationCompletion;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Invocation Or Assignement Or Declaration Statement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.InvocationOrAssignementOrDeclarationStatementImpl#getTypePart_OR_assignedPart_OR_invocationPart <em>Type Part OR assigned Part OR invocation Part</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.InvocationOrAssignementOrDeclarationStatementImpl#getVariableDeclarationCompletion <em>Variable Declaration Completion</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.InvocationOrAssignementOrDeclarationStatementImpl#getAssignmentCompletion <em>Assignment Completion</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class InvocationOrAssignementOrDeclarationStatementImpl extends StatementImpl implements InvocationOrAssignementOrDeclarationStatement
+{
+ /**
+ * The cached value of the '{@link #getTypePart_OR_assignedPart_OR_invocationPart() <em>Type Part OR assigned Part OR invocation Part</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTypePart_OR_assignedPart_OR_invocationPart()
+ * @generated
+ * @ordered
+ */
+ protected NameExpression typePart_OR_assignedPart_OR_invocationPart;
+
+ /**
+ * The cached value of the '{@link #getVariableDeclarationCompletion() <em>Variable Declaration Completion</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVariableDeclarationCompletion()
+ * @generated
+ * @ordered
+ */
+ protected VariableDeclarationCompletion variableDeclarationCompletion;
+
+ /**
+ * The cached value of the '{@link #getAssignmentCompletion() <em>Assignment Completion</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAssignmentCompletion()
+ * @generated
+ * @ordered
+ */
+ protected AssignmentCompletion assignmentCompletion;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InvocationOrAssignementOrDeclarationStatementImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NameExpression getTypePart_OR_assignedPart_OR_invocationPart()
+ {
+ return typePart_OR_assignedPart_OR_invocationPart;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetTypePart_OR_assignedPart_OR_invocationPart(NameExpression newTypePart_OR_assignedPart_OR_invocationPart, NotificationChain msgs)
+ {
+ NameExpression oldTypePart_OR_assignedPart_OR_invocationPart = typePart_OR_assignedPart_OR_invocationPart;
+ typePart_OR_assignedPart_OR_invocationPart = newTypePart_OR_assignedPart_OR_invocationPart;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__TYPE_PART_OR_ASSIGNED_PART_OR_INVOCATION_PART, oldTypePart_OR_assignedPart_OR_invocationPart, newTypePart_OR_assignedPart_OR_invocationPart);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTypePart_OR_assignedPart_OR_invocationPart(NameExpression newTypePart_OR_assignedPart_OR_invocationPart)
+ {
+ if (newTypePart_OR_assignedPart_OR_invocationPart != typePart_OR_assignedPart_OR_invocationPart)
+ {
+ NotificationChain msgs = null;
+ if (typePart_OR_assignedPart_OR_invocationPart != null)
+ msgs = ((InternalEObject)typePart_OR_assignedPart_OR_invocationPart).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__TYPE_PART_OR_ASSIGNED_PART_OR_INVOCATION_PART, null, msgs);
+ if (newTypePart_OR_assignedPart_OR_invocationPart != null)
+ msgs = ((InternalEObject)newTypePart_OR_assignedPart_OR_invocationPart).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__TYPE_PART_OR_ASSIGNED_PART_OR_INVOCATION_PART, null, msgs);
+ msgs = basicSetTypePart_OR_assignedPart_OR_invocationPart(newTypePart_OR_assignedPart_OR_invocationPart, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__TYPE_PART_OR_ASSIGNED_PART_OR_INVOCATION_PART, newTypePart_OR_assignedPart_OR_invocationPart, newTypePart_OR_assignedPart_OR_invocationPart));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public VariableDeclarationCompletion getVariableDeclarationCompletion()
+ {
+ return variableDeclarationCompletion;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetVariableDeclarationCompletion(VariableDeclarationCompletion newVariableDeclarationCompletion, NotificationChain msgs)
+ {
+ VariableDeclarationCompletion oldVariableDeclarationCompletion = variableDeclarationCompletion;
+ variableDeclarationCompletion = newVariableDeclarationCompletion;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__VARIABLE_DECLARATION_COMPLETION, oldVariableDeclarationCompletion, newVariableDeclarationCompletion);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVariableDeclarationCompletion(VariableDeclarationCompletion newVariableDeclarationCompletion)
+ {
+ if (newVariableDeclarationCompletion != variableDeclarationCompletion)
+ {
+ NotificationChain msgs = null;
+ if (variableDeclarationCompletion != null)
+ msgs = ((InternalEObject)variableDeclarationCompletion).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__VARIABLE_DECLARATION_COMPLETION, null, msgs);
+ if (newVariableDeclarationCompletion != null)
+ msgs = ((InternalEObject)newVariableDeclarationCompletion).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__VARIABLE_DECLARATION_COMPLETION, null, msgs);
+ msgs = basicSetVariableDeclarationCompletion(newVariableDeclarationCompletion, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__VARIABLE_DECLARATION_COMPLETION, newVariableDeclarationCompletion, newVariableDeclarationCompletion));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AssignmentCompletion getAssignmentCompletion()
+ {
+ return assignmentCompletion;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetAssignmentCompletion(AssignmentCompletion newAssignmentCompletion, NotificationChain msgs)
+ {
+ AssignmentCompletion oldAssignmentCompletion = assignmentCompletion;
+ assignmentCompletion = newAssignmentCompletion;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__ASSIGNMENT_COMPLETION, oldAssignmentCompletion, newAssignmentCompletion);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAssignmentCompletion(AssignmentCompletion newAssignmentCompletion)
+ {
+ if (newAssignmentCompletion != assignmentCompletion)
+ {
+ NotificationChain msgs = null;
+ if (assignmentCompletion != null)
+ msgs = ((InternalEObject)assignmentCompletion).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__ASSIGNMENT_COMPLETION, null, msgs);
+ if (newAssignmentCompletion != null)
+ msgs = ((InternalEObject)newAssignmentCompletion).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__ASSIGNMENT_COMPLETION, null, msgs);
+ msgs = basicSetAssignmentCompletion(newAssignmentCompletion, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__ASSIGNMENT_COMPLETION, newAssignmentCompletion, newAssignmentCompletion));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__TYPE_PART_OR_ASSIGNED_PART_OR_INVOCATION_PART:
+ return basicSetTypePart_OR_assignedPart_OR_invocationPart(null, msgs);
+ case AlfPackage.INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__VARIABLE_DECLARATION_COMPLETION:
+ return basicSetVariableDeclarationCompletion(null, msgs);
+ case AlfPackage.INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__ASSIGNMENT_COMPLETION:
+ return basicSetAssignmentCompletion(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__TYPE_PART_OR_ASSIGNED_PART_OR_INVOCATION_PART:
+ return getTypePart_OR_assignedPart_OR_invocationPart();
+ case AlfPackage.INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__VARIABLE_DECLARATION_COMPLETION:
+ return getVariableDeclarationCompletion();
+ case AlfPackage.INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__ASSIGNMENT_COMPLETION:
+ return getAssignmentCompletion();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__TYPE_PART_OR_ASSIGNED_PART_OR_INVOCATION_PART:
+ setTypePart_OR_assignedPart_OR_invocationPart((NameExpression)newValue);
+ return;
+ case AlfPackage.INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__VARIABLE_DECLARATION_COMPLETION:
+ setVariableDeclarationCompletion((VariableDeclarationCompletion)newValue);
+ return;
+ case AlfPackage.INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__ASSIGNMENT_COMPLETION:
+ setAssignmentCompletion((AssignmentCompletion)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__TYPE_PART_OR_ASSIGNED_PART_OR_INVOCATION_PART:
+ setTypePart_OR_assignedPart_OR_invocationPart((NameExpression)null);
+ return;
+ case AlfPackage.INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__VARIABLE_DECLARATION_COMPLETION:
+ setVariableDeclarationCompletion((VariableDeclarationCompletion)null);
+ return;
+ case AlfPackage.INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__ASSIGNMENT_COMPLETION:
+ setAssignmentCompletion((AssignmentCompletion)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__TYPE_PART_OR_ASSIGNED_PART_OR_INVOCATION_PART:
+ return typePart_OR_assignedPart_OR_invocationPart != null;
+ case AlfPackage.INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__VARIABLE_DECLARATION_COMPLETION:
+ return variableDeclarationCompletion != null;
+ case AlfPackage.INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT__ASSIGNMENT_COMPLETION:
+ return assignmentCompletion != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //InvocationOrAssignementOrDeclarationStatementImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/IsUniqueOperationImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/IsUniqueOperationImpl.java
new file mode 100644
index 00000000000..5863b45ed2b
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/IsUniqueOperationImpl.java
@@ -0,0 +1,46 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.IsUniqueOperation;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Is Unique Operation</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class IsUniqueOperationImpl extends SequenceExpansionExpressionImpl implements IsUniqueOperation
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsUniqueOperationImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.IS_UNIQUE_OPERATION;
+ }
+
+} //IsUniqueOperationImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/LITERALImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/LITERALImpl.java
new file mode 100644
index 00000000000..d918fd674cf
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/LITERALImpl.java
@@ -0,0 +1,46 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.LITERAL;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>LITERAL</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class LITERALImpl extends ValueSpecificationImpl implements LITERAL
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LITERALImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.LITERAL;
+ }
+
+} //LITERALImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/LinkOperationExpressionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/LinkOperationExpressionImpl.java
new file mode 100644
index 00000000000..600410069d0
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/LinkOperationExpressionImpl.java
@@ -0,0 +1,269 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.LinkOperationExpression;
+import org.eclipse.papyrus.alf.alf.LinkOperationKind;
+import org.eclipse.papyrus.alf.alf.LinkOperationTuple;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Link Operation Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.LinkOperationExpressionImpl#getKind <em>Kind</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.LinkOperationExpressionImpl#getTuple <em>Tuple</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LinkOperationExpressionImpl extends SuffixExpressionImpl implements LinkOperationExpression
+{
+ /**
+ * The default value of the '{@link #getKind() <em>Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getKind()
+ * @generated
+ * @ordered
+ */
+ protected static final LinkOperationKind KIND_EDEFAULT = LinkOperationKind.CREATE;
+
+ /**
+ * The cached value of the '{@link #getKind() <em>Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getKind()
+ * @generated
+ * @ordered
+ */
+ protected LinkOperationKind kind = KIND_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getTuple() <em>Tuple</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTuple()
+ * @generated
+ * @ordered
+ */
+ protected LinkOperationTuple tuple;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LinkOperationExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.LINK_OPERATION_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LinkOperationKind getKind()
+ {
+ return kind;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setKind(LinkOperationKind newKind)
+ {
+ LinkOperationKind oldKind = kind;
+ kind = newKind == null ? KIND_EDEFAULT : newKind;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.LINK_OPERATION_EXPRESSION__KIND, oldKind, kind));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LinkOperationTuple getTuple()
+ {
+ return tuple;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetTuple(LinkOperationTuple newTuple, NotificationChain msgs)
+ {
+ LinkOperationTuple oldTuple = tuple;
+ tuple = newTuple;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.LINK_OPERATION_EXPRESSION__TUPLE, oldTuple, newTuple);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTuple(LinkOperationTuple newTuple)
+ {
+ if (newTuple != tuple)
+ {
+ NotificationChain msgs = null;
+ if (tuple != null)
+ msgs = ((InternalEObject)tuple).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.LINK_OPERATION_EXPRESSION__TUPLE, null, msgs);
+ if (newTuple != null)
+ msgs = ((InternalEObject)newTuple).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.LINK_OPERATION_EXPRESSION__TUPLE, null, msgs);
+ msgs = basicSetTuple(newTuple, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.LINK_OPERATION_EXPRESSION__TUPLE, newTuple, newTuple));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.LINK_OPERATION_EXPRESSION__TUPLE:
+ return basicSetTuple(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.LINK_OPERATION_EXPRESSION__KIND:
+ return getKind();
+ case AlfPackage.LINK_OPERATION_EXPRESSION__TUPLE:
+ return getTuple();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.LINK_OPERATION_EXPRESSION__KIND:
+ setKind((LinkOperationKind)newValue);
+ return;
+ case AlfPackage.LINK_OPERATION_EXPRESSION__TUPLE:
+ setTuple((LinkOperationTuple)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.LINK_OPERATION_EXPRESSION__KIND:
+ setKind(KIND_EDEFAULT);
+ return;
+ case AlfPackage.LINK_OPERATION_EXPRESSION__TUPLE:
+ setTuple((LinkOperationTuple)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.LINK_OPERATION_EXPRESSION__KIND:
+ return kind != KIND_EDEFAULT;
+ case AlfPackage.LINK_OPERATION_EXPRESSION__TUPLE:
+ return tuple != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (kind: ");
+ result.append(kind);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LinkOperationExpressionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/LinkOperationTupleElementImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/LinkOperationTupleElementImpl.java
new file mode 100644
index 00000000000..cfbc67e9d1d
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/LinkOperationTupleElementImpl.java
@@ -0,0 +1,340 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.Expression;
+import org.eclipse.papyrus.alf.alf.LinkOperationTupleElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Link Operation Tuple Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.LinkOperationTupleElementImpl#getRole <em>Role</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.LinkOperationTupleElementImpl#getRoleIndex <em>Role Index</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.LinkOperationTupleElementImpl#getObject <em>Object</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LinkOperationTupleElementImpl extends MinimalEObjectImpl.Container implements LinkOperationTupleElement
+{
+ /**
+ * The default value of the '{@link #getRole() <em>Role</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRole()
+ * @generated
+ * @ordered
+ */
+ protected static final String ROLE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getRole() <em>Role</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRole()
+ * @generated
+ * @ordered
+ */
+ protected String role = ROLE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getRoleIndex() <em>Role Index</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRoleIndex()
+ * @generated
+ * @ordered
+ */
+ protected Expression roleIndex;
+
+ /**
+ * The cached value of the '{@link #getObject() <em>Object</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getObject()
+ * @generated
+ * @ordered
+ */
+ protected Expression object;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LinkOperationTupleElementImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.LINK_OPERATION_TUPLE_ELEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getRole()
+ {
+ return role;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRole(String newRole)
+ {
+ String oldRole = role;
+ role = newRole;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.LINK_OPERATION_TUPLE_ELEMENT__ROLE, oldRole, role));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Expression getRoleIndex()
+ {
+ return roleIndex;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetRoleIndex(Expression newRoleIndex, NotificationChain msgs)
+ {
+ Expression oldRoleIndex = roleIndex;
+ roleIndex = newRoleIndex;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.LINK_OPERATION_TUPLE_ELEMENT__ROLE_INDEX, oldRoleIndex, newRoleIndex);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRoleIndex(Expression newRoleIndex)
+ {
+ if (newRoleIndex != roleIndex)
+ {
+ NotificationChain msgs = null;
+ if (roleIndex != null)
+ msgs = ((InternalEObject)roleIndex).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.LINK_OPERATION_TUPLE_ELEMENT__ROLE_INDEX, null, msgs);
+ if (newRoleIndex != null)
+ msgs = ((InternalEObject)newRoleIndex).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.LINK_OPERATION_TUPLE_ELEMENT__ROLE_INDEX, null, msgs);
+ msgs = basicSetRoleIndex(newRoleIndex, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.LINK_OPERATION_TUPLE_ELEMENT__ROLE_INDEX, newRoleIndex, newRoleIndex));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Expression getObject()
+ {
+ return object;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetObject(Expression newObject, NotificationChain msgs)
+ {
+ Expression oldObject = object;
+ object = newObject;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.LINK_OPERATION_TUPLE_ELEMENT__OBJECT, oldObject, newObject);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setObject(Expression newObject)
+ {
+ if (newObject != object)
+ {
+ NotificationChain msgs = null;
+ if (object != null)
+ msgs = ((InternalEObject)object).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.LINK_OPERATION_TUPLE_ELEMENT__OBJECT, null, msgs);
+ if (newObject != null)
+ msgs = ((InternalEObject)newObject).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.LINK_OPERATION_TUPLE_ELEMENT__OBJECT, null, msgs);
+ msgs = basicSetObject(newObject, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.LINK_OPERATION_TUPLE_ELEMENT__OBJECT, newObject, newObject));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.LINK_OPERATION_TUPLE_ELEMENT__ROLE_INDEX:
+ return basicSetRoleIndex(null, msgs);
+ case AlfPackage.LINK_OPERATION_TUPLE_ELEMENT__OBJECT:
+ return basicSetObject(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.LINK_OPERATION_TUPLE_ELEMENT__ROLE:
+ return getRole();
+ case AlfPackage.LINK_OPERATION_TUPLE_ELEMENT__ROLE_INDEX:
+ return getRoleIndex();
+ case AlfPackage.LINK_OPERATION_TUPLE_ELEMENT__OBJECT:
+ return getObject();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.LINK_OPERATION_TUPLE_ELEMENT__ROLE:
+ setRole((String)newValue);
+ return;
+ case AlfPackage.LINK_OPERATION_TUPLE_ELEMENT__ROLE_INDEX:
+ setRoleIndex((Expression)newValue);
+ return;
+ case AlfPackage.LINK_OPERATION_TUPLE_ELEMENT__OBJECT:
+ setObject((Expression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.LINK_OPERATION_TUPLE_ELEMENT__ROLE:
+ setRole(ROLE_EDEFAULT);
+ return;
+ case AlfPackage.LINK_OPERATION_TUPLE_ELEMENT__ROLE_INDEX:
+ setRoleIndex((Expression)null);
+ return;
+ case AlfPackage.LINK_OPERATION_TUPLE_ELEMENT__OBJECT:
+ setObject((Expression)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.LINK_OPERATION_TUPLE_ELEMENT__ROLE:
+ return ROLE_EDEFAULT == null ? role != null : !ROLE_EDEFAULT.equals(role);
+ case AlfPackage.LINK_OPERATION_TUPLE_ELEMENT__ROLE_INDEX:
+ return roleIndex != null;
+ case AlfPackage.LINK_OPERATION_TUPLE_ELEMENT__OBJECT:
+ return object != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (role: ");
+ result.append(role);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LinkOperationTupleElementImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/LinkOperationTupleImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/LinkOperationTupleImpl.java
new file mode 100644
index 00000000000..abfe7249941
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/LinkOperationTupleImpl.java
@@ -0,0 +1,171 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.LinkOperationTuple;
+import org.eclipse.papyrus.alf.alf.LinkOperationTupleElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Link Operation Tuple</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.LinkOperationTupleImpl#getLinkOperationTupleElement <em>Link Operation Tuple Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LinkOperationTupleImpl extends MinimalEObjectImpl.Container implements LinkOperationTuple
+{
+ /**
+ * The cached value of the '{@link #getLinkOperationTupleElement() <em>Link Operation Tuple Element</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLinkOperationTupleElement()
+ * @generated
+ * @ordered
+ */
+ protected EList<LinkOperationTupleElement> linkOperationTupleElement;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LinkOperationTupleImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.LINK_OPERATION_TUPLE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<LinkOperationTupleElement> getLinkOperationTupleElement()
+ {
+ if (linkOperationTupleElement == null)
+ {
+ linkOperationTupleElement = new EObjectContainmentEList<LinkOperationTupleElement>(LinkOperationTupleElement.class, this, AlfPackage.LINK_OPERATION_TUPLE__LINK_OPERATION_TUPLE_ELEMENT);
+ }
+ return linkOperationTupleElement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.LINK_OPERATION_TUPLE__LINK_OPERATION_TUPLE_ELEMENT:
+ return ((InternalEList<?>)getLinkOperationTupleElement()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.LINK_OPERATION_TUPLE__LINK_OPERATION_TUPLE_ELEMENT:
+ return getLinkOperationTupleElement();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.LINK_OPERATION_TUPLE__LINK_OPERATION_TUPLE_ELEMENT:
+ getLinkOperationTupleElement().clear();
+ getLinkOperationTupleElement().addAll((Collection<? extends LinkOperationTupleElement>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.LINK_OPERATION_TUPLE__LINK_OPERATION_TUPLE_ELEMENT:
+ getLinkOperationTupleElement().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.LINK_OPERATION_TUPLE__LINK_OPERATION_TUPLE_ELEMENT:
+ return linkOperationTupleElement != null && !linkOperationTupleElement.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //LinkOperationTupleImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/LocalNameDeclarationStatementImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/LocalNameDeclarationStatementImpl.java
new file mode 100644
index 00000000000..6451212c66d
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/LocalNameDeclarationStatementImpl.java
@@ -0,0 +1,396 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.LocalNameDeclarationStatement;
+import org.eclipse.papyrus.alf.alf.QualifiedNameWithBinding;
+import org.eclipse.papyrus.alf.alf.SequenceElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Local Name Declaration Statement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.LocalNameDeclarationStatementImpl#getVarName <em>Var Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.LocalNameDeclarationStatementImpl#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.LocalNameDeclarationStatementImpl#isMultiplicityIndicator <em>Multiplicity Indicator</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.LocalNameDeclarationStatementImpl#getInit <em>Init</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LocalNameDeclarationStatementImpl extends StatementImpl implements LocalNameDeclarationStatement
+{
+ /**
+ * The default value of the '{@link #getVarName() <em>Var Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVarName()
+ * @generated
+ * @ordered
+ */
+ protected static final String VAR_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getVarName() <em>Var Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVarName()
+ * @generated
+ * @ordered
+ */
+ protected String varName = VAR_NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected QualifiedNameWithBinding type;
+
+ /**
+ * The default value of the '{@link #isMultiplicityIndicator() <em>Multiplicity Indicator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isMultiplicityIndicator()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean MULTIPLICITY_INDICATOR_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isMultiplicityIndicator() <em>Multiplicity Indicator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isMultiplicityIndicator()
+ * @generated
+ * @ordered
+ */
+ protected boolean multiplicityIndicator = MULTIPLICITY_INDICATOR_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getInit() <em>Init</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInit()
+ * @generated
+ * @ordered
+ */
+ protected SequenceElement init;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LocalNameDeclarationStatementImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.LOCAL_NAME_DECLARATION_STATEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getVarName()
+ {
+ return varName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVarName(String newVarName)
+ {
+ String oldVarName = varName;
+ varName = newVarName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.LOCAL_NAME_DECLARATION_STATEMENT__VAR_NAME, oldVarName, varName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QualifiedNameWithBinding getType()
+ {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetType(QualifiedNameWithBinding newType, NotificationChain msgs)
+ {
+ QualifiedNameWithBinding oldType = type;
+ type = newType;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.LOCAL_NAME_DECLARATION_STATEMENT__TYPE, oldType, newType);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setType(QualifiedNameWithBinding newType)
+ {
+ if (newType != type)
+ {
+ NotificationChain msgs = null;
+ if (type != null)
+ msgs = ((InternalEObject)type).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.LOCAL_NAME_DECLARATION_STATEMENT__TYPE, null, msgs);
+ if (newType != null)
+ msgs = ((InternalEObject)newType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.LOCAL_NAME_DECLARATION_STATEMENT__TYPE, null, msgs);
+ msgs = basicSetType(newType, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.LOCAL_NAME_DECLARATION_STATEMENT__TYPE, newType, newType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isMultiplicityIndicator()
+ {
+ return multiplicityIndicator;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMultiplicityIndicator(boolean newMultiplicityIndicator)
+ {
+ boolean oldMultiplicityIndicator = multiplicityIndicator;
+ multiplicityIndicator = newMultiplicityIndicator;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.LOCAL_NAME_DECLARATION_STATEMENT__MULTIPLICITY_INDICATOR, oldMultiplicityIndicator, multiplicityIndicator));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SequenceElement getInit()
+ {
+ return init;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetInit(SequenceElement newInit, NotificationChain msgs)
+ {
+ SequenceElement oldInit = init;
+ init = newInit;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.LOCAL_NAME_DECLARATION_STATEMENT__INIT, oldInit, newInit);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInit(SequenceElement newInit)
+ {
+ if (newInit != init)
+ {
+ NotificationChain msgs = null;
+ if (init != null)
+ msgs = ((InternalEObject)init).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.LOCAL_NAME_DECLARATION_STATEMENT__INIT, null, msgs);
+ if (newInit != null)
+ msgs = ((InternalEObject)newInit).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.LOCAL_NAME_DECLARATION_STATEMENT__INIT, null, msgs);
+ msgs = basicSetInit(newInit, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.LOCAL_NAME_DECLARATION_STATEMENT__INIT, newInit, newInit));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.LOCAL_NAME_DECLARATION_STATEMENT__TYPE:
+ return basicSetType(null, msgs);
+ case AlfPackage.LOCAL_NAME_DECLARATION_STATEMENT__INIT:
+ return basicSetInit(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.LOCAL_NAME_DECLARATION_STATEMENT__VAR_NAME:
+ return getVarName();
+ case AlfPackage.LOCAL_NAME_DECLARATION_STATEMENT__TYPE:
+ return getType();
+ case AlfPackage.LOCAL_NAME_DECLARATION_STATEMENT__MULTIPLICITY_INDICATOR:
+ return isMultiplicityIndicator();
+ case AlfPackage.LOCAL_NAME_DECLARATION_STATEMENT__INIT:
+ return getInit();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.LOCAL_NAME_DECLARATION_STATEMENT__VAR_NAME:
+ setVarName((String)newValue);
+ return;
+ case AlfPackage.LOCAL_NAME_DECLARATION_STATEMENT__TYPE:
+ setType((QualifiedNameWithBinding)newValue);
+ return;
+ case AlfPackage.LOCAL_NAME_DECLARATION_STATEMENT__MULTIPLICITY_INDICATOR:
+ setMultiplicityIndicator((Boolean)newValue);
+ return;
+ case AlfPackage.LOCAL_NAME_DECLARATION_STATEMENT__INIT:
+ setInit((SequenceElement)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.LOCAL_NAME_DECLARATION_STATEMENT__VAR_NAME:
+ setVarName(VAR_NAME_EDEFAULT);
+ return;
+ case AlfPackage.LOCAL_NAME_DECLARATION_STATEMENT__TYPE:
+ setType((QualifiedNameWithBinding)null);
+ return;
+ case AlfPackage.LOCAL_NAME_DECLARATION_STATEMENT__MULTIPLICITY_INDICATOR:
+ setMultiplicityIndicator(MULTIPLICITY_INDICATOR_EDEFAULT);
+ return;
+ case AlfPackage.LOCAL_NAME_DECLARATION_STATEMENT__INIT:
+ setInit((SequenceElement)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.LOCAL_NAME_DECLARATION_STATEMENT__VAR_NAME:
+ return VAR_NAME_EDEFAULT == null ? varName != null : !VAR_NAME_EDEFAULT.equals(varName);
+ case AlfPackage.LOCAL_NAME_DECLARATION_STATEMENT__TYPE:
+ return type != null;
+ case AlfPackage.LOCAL_NAME_DECLARATION_STATEMENT__MULTIPLICITY_INDICATOR:
+ return multiplicityIndicator != MULTIPLICITY_INDICATOR_EDEFAULT;
+ case AlfPackage.LOCAL_NAME_DECLARATION_STATEMENT__INIT:
+ return init != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (varName: ");
+ result.append(varName);
+ result.append(", multiplicityIndicator: ");
+ result.append(multiplicityIndicator);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LocalNameDeclarationStatementImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/LoopVariableDefinitionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/LoopVariableDefinitionImpl.java
new file mode 100644
index 00000000000..0c9745f82fe
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/LoopVariableDefinitionImpl.java
@@ -0,0 +1,483 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.Expression;
+import org.eclipse.papyrus.alf.alf.LoopVariableDefinition;
+import org.eclipse.papyrus.alf.alf.QualifiedNameWithBinding;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Loop Variable Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.LoopVariableDefinitionImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.LoopVariableDefinitionImpl#getExpression1 <em>Expression1</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.LoopVariableDefinitionImpl#getExpression2 <em>Expression2</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.LoopVariableDefinitionImpl#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.LoopVariableDefinitionImpl#getExpression <em>Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LoopVariableDefinitionImpl extends MinimalEObjectImpl.Container implements LoopVariableDefinition
+{
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getExpression1() <em>Expression1</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExpression1()
+ * @generated
+ * @ordered
+ */
+ protected Expression expression1;
+
+ /**
+ * The cached value of the '{@link #getExpression2() <em>Expression2</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExpression2()
+ * @generated
+ * @ordered
+ */
+ protected Expression expression2;
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected QualifiedNameWithBinding type;
+
+ /**
+ * The cached value of the '{@link #getExpression() <em>Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExpression()
+ * @generated
+ * @ordered
+ */
+ protected Expression expression;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LoopVariableDefinitionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.LOOP_VARIABLE_DEFINITION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName)
+ {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.LOOP_VARIABLE_DEFINITION__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Expression getExpression1()
+ {
+ return expression1;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetExpression1(Expression newExpression1, NotificationChain msgs)
+ {
+ Expression oldExpression1 = expression1;
+ expression1 = newExpression1;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.LOOP_VARIABLE_DEFINITION__EXPRESSION1, oldExpression1, newExpression1);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExpression1(Expression newExpression1)
+ {
+ if (newExpression1 != expression1)
+ {
+ NotificationChain msgs = null;
+ if (expression1 != null)
+ msgs = ((InternalEObject)expression1).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.LOOP_VARIABLE_DEFINITION__EXPRESSION1, null, msgs);
+ if (newExpression1 != null)
+ msgs = ((InternalEObject)newExpression1).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.LOOP_VARIABLE_DEFINITION__EXPRESSION1, null, msgs);
+ msgs = basicSetExpression1(newExpression1, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.LOOP_VARIABLE_DEFINITION__EXPRESSION1, newExpression1, newExpression1));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Expression getExpression2()
+ {
+ return expression2;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetExpression2(Expression newExpression2, NotificationChain msgs)
+ {
+ Expression oldExpression2 = expression2;
+ expression2 = newExpression2;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.LOOP_VARIABLE_DEFINITION__EXPRESSION2, oldExpression2, newExpression2);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExpression2(Expression newExpression2)
+ {
+ if (newExpression2 != expression2)
+ {
+ NotificationChain msgs = null;
+ if (expression2 != null)
+ msgs = ((InternalEObject)expression2).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.LOOP_VARIABLE_DEFINITION__EXPRESSION2, null, msgs);
+ if (newExpression2 != null)
+ msgs = ((InternalEObject)newExpression2).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.LOOP_VARIABLE_DEFINITION__EXPRESSION2, null, msgs);
+ msgs = basicSetExpression2(newExpression2, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.LOOP_VARIABLE_DEFINITION__EXPRESSION2, newExpression2, newExpression2));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QualifiedNameWithBinding getType()
+ {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetType(QualifiedNameWithBinding newType, NotificationChain msgs)
+ {
+ QualifiedNameWithBinding oldType = type;
+ type = newType;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.LOOP_VARIABLE_DEFINITION__TYPE, oldType, newType);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setType(QualifiedNameWithBinding newType)
+ {
+ if (newType != type)
+ {
+ NotificationChain msgs = null;
+ if (type != null)
+ msgs = ((InternalEObject)type).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.LOOP_VARIABLE_DEFINITION__TYPE, null, msgs);
+ if (newType != null)
+ msgs = ((InternalEObject)newType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.LOOP_VARIABLE_DEFINITION__TYPE, null, msgs);
+ msgs = basicSetType(newType, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.LOOP_VARIABLE_DEFINITION__TYPE, newType, newType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Expression getExpression()
+ {
+ return expression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetExpression(Expression newExpression, NotificationChain msgs)
+ {
+ Expression oldExpression = expression;
+ expression = newExpression;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.LOOP_VARIABLE_DEFINITION__EXPRESSION, oldExpression, newExpression);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExpression(Expression newExpression)
+ {
+ if (newExpression != expression)
+ {
+ NotificationChain msgs = null;
+ if (expression != null)
+ msgs = ((InternalEObject)expression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.LOOP_VARIABLE_DEFINITION__EXPRESSION, null, msgs);
+ if (newExpression != null)
+ msgs = ((InternalEObject)newExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.LOOP_VARIABLE_DEFINITION__EXPRESSION, null, msgs);
+ msgs = basicSetExpression(newExpression, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.LOOP_VARIABLE_DEFINITION__EXPRESSION, newExpression, newExpression));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.LOOP_VARIABLE_DEFINITION__EXPRESSION1:
+ return basicSetExpression1(null, msgs);
+ case AlfPackage.LOOP_VARIABLE_DEFINITION__EXPRESSION2:
+ return basicSetExpression2(null, msgs);
+ case AlfPackage.LOOP_VARIABLE_DEFINITION__TYPE:
+ return basicSetType(null, msgs);
+ case AlfPackage.LOOP_VARIABLE_DEFINITION__EXPRESSION:
+ return basicSetExpression(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.LOOP_VARIABLE_DEFINITION__NAME:
+ return getName();
+ case AlfPackage.LOOP_VARIABLE_DEFINITION__EXPRESSION1:
+ return getExpression1();
+ case AlfPackage.LOOP_VARIABLE_DEFINITION__EXPRESSION2:
+ return getExpression2();
+ case AlfPackage.LOOP_VARIABLE_DEFINITION__TYPE:
+ return getType();
+ case AlfPackage.LOOP_VARIABLE_DEFINITION__EXPRESSION:
+ return getExpression();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.LOOP_VARIABLE_DEFINITION__NAME:
+ setName((String)newValue);
+ return;
+ case AlfPackage.LOOP_VARIABLE_DEFINITION__EXPRESSION1:
+ setExpression1((Expression)newValue);
+ return;
+ case AlfPackage.LOOP_VARIABLE_DEFINITION__EXPRESSION2:
+ setExpression2((Expression)newValue);
+ return;
+ case AlfPackage.LOOP_VARIABLE_DEFINITION__TYPE:
+ setType((QualifiedNameWithBinding)newValue);
+ return;
+ case AlfPackage.LOOP_VARIABLE_DEFINITION__EXPRESSION:
+ setExpression((Expression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.LOOP_VARIABLE_DEFINITION__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case AlfPackage.LOOP_VARIABLE_DEFINITION__EXPRESSION1:
+ setExpression1((Expression)null);
+ return;
+ case AlfPackage.LOOP_VARIABLE_DEFINITION__EXPRESSION2:
+ setExpression2((Expression)null);
+ return;
+ case AlfPackage.LOOP_VARIABLE_DEFINITION__TYPE:
+ setType((QualifiedNameWithBinding)null);
+ return;
+ case AlfPackage.LOOP_VARIABLE_DEFINITION__EXPRESSION:
+ setExpression((Expression)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.LOOP_VARIABLE_DEFINITION__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case AlfPackage.LOOP_VARIABLE_DEFINITION__EXPRESSION1:
+ return expression1 != null;
+ case AlfPackage.LOOP_VARIABLE_DEFINITION__EXPRESSION2:
+ return expression2 != null;
+ case AlfPackage.LOOP_VARIABLE_DEFINITION__TYPE:
+ return type != null;
+ case AlfPackage.LOOP_VARIABLE_DEFINITION__EXPRESSION:
+ return expression != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LoopVariableDefinitionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/MultiplicativeExpressionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/MultiplicativeExpressionImpl.java
new file mode 100644
index 00000000000..2d9c4701e1c
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/MultiplicativeExpressionImpl.java
@@ -0,0 +1,225 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EDataTypeEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.MultiplicativeExpression;
+import org.eclipse.papyrus.alf.alf.UnaryExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Multiplicative Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.MultiplicativeExpressionImpl#getExp <em>Exp</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.MultiplicativeExpressionImpl#getOp <em>Op</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class MultiplicativeExpressionImpl extends MinimalEObjectImpl.Container implements MultiplicativeExpression
+{
+ /**
+ * The cached value of the '{@link #getExp() <em>Exp</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExp()
+ * @generated
+ * @ordered
+ */
+ protected EList<UnaryExpression> exp;
+
+ /**
+ * The cached value of the '{@link #getOp() <em>Op</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOp()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> op;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MultiplicativeExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.MULTIPLICATIVE_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<UnaryExpression> getExp()
+ {
+ if (exp == null)
+ {
+ exp = new EObjectContainmentEList<UnaryExpression>(UnaryExpression.class, this, AlfPackage.MULTIPLICATIVE_EXPRESSION__EXP);
+ }
+ return exp;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<String> getOp()
+ {
+ if (op == null)
+ {
+ op = new EDataTypeEList<String>(String.class, this, AlfPackage.MULTIPLICATIVE_EXPRESSION__OP);
+ }
+ return op;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.MULTIPLICATIVE_EXPRESSION__EXP:
+ return ((InternalEList<?>)getExp()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.MULTIPLICATIVE_EXPRESSION__EXP:
+ return getExp();
+ case AlfPackage.MULTIPLICATIVE_EXPRESSION__OP:
+ return getOp();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.MULTIPLICATIVE_EXPRESSION__EXP:
+ getExp().clear();
+ getExp().addAll((Collection<? extends UnaryExpression>)newValue);
+ return;
+ case AlfPackage.MULTIPLICATIVE_EXPRESSION__OP:
+ getOp().clear();
+ getOp().addAll((Collection<? extends String>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.MULTIPLICATIVE_EXPRESSION__EXP:
+ getExp().clear();
+ return;
+ case AlfPackage.MULTIPLICATIVE_EXPRESSION__OP:
+ getOp().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.MULTIPLICATIVE_EXPRESSION__EXP:
+ return exp != null && !exp.isEmpty();
+ case AlfPackage.MULTIPLICATIVE_EXPRESSION__OP:
+ return op != null && !op.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (op: ");
+ result.append(op);
+ result.append(')');
+ return result.toString();
+ }
+
+} //MultiplicativeExpressionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/NUMBER_LITERALImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/NUMBER_LITERALImpl.java
new file mode 100644
index 00000000000..49d4c476ab6
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/NUMBER_LITERALImpl.java
@@ -0,0 +1,180 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.NUMBER_LITERAL;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>NUMBER LITERAL</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.NUMBER_LITERALImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class NUMBER_LITERALImpl extends LITERALImpl implements NUMBER_LITERAL
+{
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final String VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected String value = VALUE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected NUMBER_LITERALImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.NUMBER_LITERAL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(String newValue)
+ {
+ String oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.NUMBER_LITERAL__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.NUMBER_LITERAL__VALUE:
+ return getValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.NUMBER_LITERAL__VALUE:
+ setValue((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.NUMBER_LITERAL__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.NUMBER_LITERAL__VALUE:
+ return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (value: ");
+ result.append(value);
+ result.append(')');
+ return result.toString();
+ }
+
+} //NUMBER_LITERALImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/NameExpressionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/NameExpressionImpl.java
new file mode 100644
index 00000000000..a60f255b64c
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/NameExpressionImpl.java
@@ -0,0 +1,596 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.NameExpression;
+import org.eclipse.papyrus.alf.alf.QualifiedNamePath;
+import org.eclipse.papyrus.alf.alf.SequenceConstructionOrAccessCompletion;
+import org.eclipse.papyrus.alf.alf.SuffixExpression;
+import org.eclipse.papyrus.alf.alf.Tuple;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Name Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.NameExpressionImpl#getPrefixOp <em>Prefix Op</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.NameExpressionImpl#getPath <em>Path</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.NameExpressionImpl#getId <em>Id</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.NameExpressionImpl#getInvocationCompletion <em>Invocation Completion</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.NameExpressionImpl#getSequenceConstructionCompletion <em>Sequence Construction Completion</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.NameExpressionImpl#getPostfixOp <em>Postfix Op</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.NameExpressionImpl#getSuffix <em>Suffix</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class NameExpressionImpl extends ValueSpecificationImpl implements NameExpression
+{
+ /**
+ * The default value of the '{@link #getPrefixOp() <em>Prefix Op</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPrefixOp()
+ * @generated
+ * @ordered
+ */
+ protected static final String PREFIX_OP_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPrefixOp() <em>Prefix Op</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPrefixOp()
+ * @generated
+ * @ordered
+ */
+ protected String prefixOp = PREFIX_OP_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getPath() <em>Path</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPath()
+ * @generated
+ * @ordered
+ */
+ protected QualifiedNamePath path;
+
+ /**
+ * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected static final String ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected String id = ID_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getInvocationCompletion() <em>Invocation Completion</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInvocationCompletion()
+ * @generated
+ * @ordered
+ */
+ protected Tuple invocationCompletion;
+
+ /**
+ * The cached value of the '{@link #getSequenceConstructionCompletion() <em>Sequence Construction Completion</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSequenceConstructionCompletion()
+ * @generated
+ * @ordered
+ */
+ protected SequenceConstructionOrAccessCompletion sequenceConstructionCompletion;
+
+ /**
+ * The default value of the '{@link #getPostfixOp() <em>Postfix Op</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPostfixOp()
+ * @generated
+ * @ordered
+ */
+ protected static final String POSTFIX_OP_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPostfixOp() <em>Postfix Op</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPostfixOp()
+ * @generated
+ * @ordered
+ */
+ protected String postfixOp = POSTFIX_OP_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getSuffix() <em>Suffix</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSuffix()
+ * @generated
+ * @ordered
+ */
+ protected SuffixExpression suffix;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected NameExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.NAME_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getPrefixOp()
+ {
+ return prefixOp;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPrefixOp(String newPrefixOp)
+ {
+ String oldPrefixOp = prefixOp;
+ prefixOp = newPrefixOp;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.NAME_EXPRESSION__PREFIX_OP, oldPrefixOp, prefixOp));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QualifiedNamePath getPath()
+ {
+ return path;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetPath(QualifiedNamePath newPath, NotificationChain msgs)
+ {
+ QualifiedNamePath oldPath = path;
+ path = newPath;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.NAME_EXPRESSION__PATH, oldPath, newPath);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPath(QualifiedNamePath newPath)
+ {
+ if (newPath != path)
+ {
+ NotificationChain msgs = null;
+ if (path != null)
+ msgs = ((InternalEObject)path).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.NAME_EXPRESSION__PATH, null, msgs);
+ if (newPath != null)
+ msgs = ((InternalEObject)newPath).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.NAME_EXPRESSION__PATH, null, msgs);
+ msgs = basicSetPath(newPath, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.NAME_EXPRESSION__PATH, newPath, newPath));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getId()
+ {
+ return id;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setId(String newId)
+ {
+ String oldId = id;
+ id = newId;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.NAME_EXPRESSION__ID, oldId, id));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Tuple getInvocationCompletion()
+ {
+ return invocationCompletion;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetInvocationCompletion(Tuple newInvocationCompletion, NotificationChain msgs)
+ {
+ Tuple oldInvocationCompletion = invocationCompletion;
+ invocationCompletion = newInvocationCompletion;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.NAME_EXPRESSION__INVOCATION_COMPLETION, oldInvocationCompletion, newInvocationCompletion);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInvocationCompletion(Tuple newInvocationCompletion)
+ {
+ if (newInvocationCompletion != invocationCompletion)
+ {
+ NotificationChain msgs = null;
+ if (invocationCompletion != null)
+ msgs = ((InternalEObject)invocationCompletion).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.NAME_EXPRESSION__INVOCATION_COMPLETION, null, msgs);
+ if (newInvocationCompletion != null)
+ msgs = ((InternalEObject)newInvocationCompletion).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.NAME_EXPRESSION__INVOCATION_COMPLETION, null, msgs);
+ msgs = basicSetInvocationCompletion(newInvocationCompletion, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.NAME_EXPRESSION__INVOCATION_COMPLETION, newInvocationCompletion, newInvocationCompletion));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SequenceConstructionOrAccessCompletion getSequenceConstructionCompletion()
+ {
+ return sequenceConstructionCompletion;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSequenceConstructionCompletion(SequenceConstructionOrAccessCompletion newSequenceConstructionCompletion, NotificationChain msgs)
+ {
+ SequenceConstructionOrAccessCompletion oldSequenceConstructionCompletion = sequenceConstructionCompletion;
+ sequenceConstructionCompletion = newSequenceConstructionCompletion;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.NAME_EXPRESSION__SEQUENCE_CONSTRUCTION_COMPLETION, oldSequenceConstructionCompletion, newSequenceConstructionCompletion);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSequenceConstructionCompletion(SequenceConstructionOrAccessCompletion newSequenceConstructionCompletion)
+ {
+ if (newSequenceConstructionCompletion != sequenceConstructionCompletion)
+ {
+ NotificationChain msgs = null;
+ if (sequenceConstructionCompletion != null)
+ msgs = ((InternalEObject)sequenceConstructionCompletion).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.NAME_EXPRESSION__SEQUENCE_CONSTRUCTION_COMPLETION, null, msgs);
+ if (newSequenceConstructionCompletion != null)
+ msgs = ((InternalEObject)newSequenceConstructionCompletion).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.NAME_EXPRESSION__SEQUENCE_CONSTRUCTION_COMPLETION, null, msgs);
+ msgs = basicSetSequenceConstructionCompletion(newSequenceConstructionCompletion, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.NAME_EXPRESSION__SEQUENCE_CONSTRUCTION_COMPLETION, newSequenceConstructionCompletion, newSequenceConstructionCompletion));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getPostfixOp()
+ {
+ return postfixOp;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPostfixOp(String newPostfixOp)
+ {
+ String oldPostfixOp = postfixOp;
+ postfixOp = newPostfixOp;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.NAME_EXPRESSION__POSTFIX_OP, oldPostfixOp, postfixOp));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SuffixExpression getSuffix()
+ {
+ return suffix;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSuffix(SuffixExpression newSuffix, NotificationChain msgs)
+ {
+ SuffixExpression oldSuffix = suffix;
+ suffix = newSuffix;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.NAME_EXPRESSION__SUFFIX, oldSuffix, newSuffix);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSuffix(SuffixExpression newSuffix)
+ {
+ if (newSuffix != suffix)
+ {
+ NotificationChain msgs = null;
+ if (suffix != null)
+ msgs = ((InternalEObject)suffix).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.NAME_EXPRESSION__SUFFIX, null, msgs);
+ if (newSuffix != null)
+ msgs = ((InternalEObject)newSuffix).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.NAME_EXPRESSION__SUFFIX, null, msgs);
+ msgs = basicSetSuffix(newSuffix, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.NAME_EXPRESSION__SUFFIX, newSuffix, newSuffix));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.NAME_EXPRESSION__PATH:
+ return basicSetPath(null, msgs);
+ case AlfPackage.NAME_EXPRESSION__INVOCATION_COMPLETION:
+ return basicSetInvocationCompletion(null, msgs);
+ case AlfPackage.NAME_EXPRESSION__SEQUENCE_CONSTRUCTION_COMPLETION:
+ return basicSetSequenceConstructionCompletion(null, msgs);
+ case AlfPackage.NAME_EXPRESSION__SUFFIX:
+ return basicSetSuffix(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.NAME_EXPRESSION__PREFIX_OP:
+ return getPrefixOp();
+ case AlfPackage.NAME_EXPRESSION__PATH:
+ return getPath();
+ case AlfPackage.NAME_EXPRESSION__ID:
+ return getId();
+ case AlfPackage.NAME_EXPRESSION__INVOCATION_COMPLETION:
+ return getInvocationCompletion();
+ case AlfPackage.NAME_EXPRESSION__SEQUENCE_CONSTRUCTION_COMPLETION:
+ return getSequenceConstructionCompletion();
+ case AlfPackage.NAME_EXPRESSION__POSTFIX_OP:
+ return getPostfixOp();
+ case AlfPackage.NAME_EXPRESSION__SUFFIX:
+ return getSuffix();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.NAME_EXPRESSION__PREFIX_OP:
+ setPrefixOp((String)newValue);
+ return;
+ case AlfPackage.NAME_EXPRESSION__PATH:
+ setPath((QualifiedNamePath)newValue);
+ return;
+ case AlfPackage.NAME_EXPRESSION__ID:
+ setId((String)newValue);
+ return;
+ case AlfPackage.NAME_EXPRESSION__INVOCATION_COMPLETION:
+ setInvocationCompletion((Tuple)newValue);
+ return;
+ case AlfPackage.NAME_EXPRESSION__SEQUENCE_CONSTRUCTION_COMPLETION:
+ setSequenceConstructionCompletion((SequenceConstructionOrAccessCompletion)newValue);
+ return;
+ case AlfPackage.NAME_EXPRESSION__POSTFIX_OP:
+ setPostfixOp((String)newValue);
+ return;
+ case AlfPackage.NAME_EXPRESSION__SUFFIX:
+ setSuffix((SuffixExpression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.NAME_EXPRESSION__PREFIX_OP:
+ setPrefixOp(PREFIX_OP_EDEFAULT);
+ return;
+ case AlfPackage.NAME_EXPRESSION__PATH:
+ setPath((QualifiedNamePath)null);
+ return;
+ case AlfPackage.NAME_EXPRESSION__ID:
+ setId(ID_EDEFAULT);
+ return;
+ case AlfPackage.NAME_EXPRESSION__INVOCATION_COMPLETION:
+ setInvocationCompletion((Tuple)null);
+ return;
+ case AlfPackage.NAME_EXPRESSION__SEQUENCE_CONSTRUCTION_COMPLETION:
+ setSequenceConstructionCompletion((SequenceConstructionOrAccessCompletion)null);
+ return;
+ case AlfPackage.NAME_EXPRESSION__POSTFIX_OP:
+ setPostfixOp(POSTFIX_OP_EDEFAULT);
+ return;
+ case AlfPackage.NAME_EXPRESSION__SUFFIX:
+ setSuffix((SuffixExpression)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.NAME_EXPRESSION__PREFIX_OP:
+ return PREFIX_OP_EDEFAULT == null ? prefixOp != null : !PREFIX_OP_EDEFAULT.equals(prefixOp);
+ case AlfPackage.NAME_EXPRESSION__PATH:
+ return path != null;
+ case AlfPackage.NAME_EXPRESSION__ID:
+ return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+ case AlfPackage.NAME_EXPRESSION__INVOCATION_COMPLETION:
+ return invocationCompletion != null;
+ case AlfPackage.NAME_EXPRESSION__SEQUENCE_CONSTRUCTION_COMPLETION:
+ return sequenceConstructionCompletion != null;
+ case AlfPackage.NAME_EXPRESSION__POSTFIX_OP:
+ return POSTFIX_OP_EDEFAULT == null ? postfixOp != null : !POSTFIX_OP_EDEFAULT.equals(postfixOp);
+ case AlfPackage.NAME_EXPRESSION__SUFFIX:
+ return suffix != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (prefixOp: ");
+ result.append(prefixOp);
+ result.append(", id: ");
+ result.append(id);
+ result.append(", postfixOp: ");
+ result.append(postfixOp);
+ result.append(')');
+ return result.toString();
+ }
+
+} //NameExpressionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/NamedTemplateBindingImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/NamedTemplateBindingImpl.java
new file mode 100644
index 00000000000..1561d77ca2a
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/NamedTemplateBindingImpl.java
@@ -0,0 +1,269 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.NamedTemplateBinding;
+import org.eclipse.papyrus.alf.alf.QualifiedNameWithBinding;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Named Template Binding</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.NamedTemplateBindingImpl#getFormal <em>Formal</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.NamedTemplateBindingImpl#getActual <em>Actual</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class NamedTemplateBindingImpl extends MinimalEObjectImpl.Container implements NamedTemplateBinding
+{
+ /**
+ * The default value of the '{@link #getFormal() <em>Formal</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFormal()
+ * @generated
+ * @ordered
+ */
+ protected static final String FORMAL_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getFormal() <em>Formal</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFormal()
+ * @generated
+ * @ordered
+ */
+ protected String formal = FORMAL_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getActual() <em>Actual</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getActual()
+ * @generated
+ * @ordered
+ */
+ protected QualifiedNameWithBinding actual;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected NamedTemplateBindingImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.NAMED_TEMPLATE_BINDING;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getFormal()
+ {
+ return formal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFormal(String newFormal)
+ {
+ String oldFormal = formal;
+ formal = newFormal;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.NAMED_TEMPLATE_BINDING__FORMAL, oldFormal, formal));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QualifiedNameWithBinding getActual()
+ {
+ return actual;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetActual(QualifiedNameWithBinding newActual, NotificationChain msgs)
+ {
+ QualifiedNameWithBinding oldActual = actual;
+ actual = newActual;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.NAMED_TEMPLATE_BINDING__ACTUAL, oldActual, newActual);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setActual(QualifiedNameWithBinding newActual)
+ {
+ if (newActual != actual)
+ {
+ NotificationChain msgs = null;
+ if (actual != null)
+ msgs = ((InternalEObject)actual).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.NAMED_TEMPLATE_BINDING__ACTUAL, null, msgs);
+ if (newActual != null)
+ msgs = ((InternalEObject)newActual).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.NAMED_TEMPLATE_BINDING__ACTUAL, null, msgs);
+ msgs = basicSetActual(newActual, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.NAMED_TEMPLATE_BINDING__ACTUAL, newActual, newActual));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.NAMED_TEMPLATE_BINDING__ACTUAL:
+ return basicSetActual(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.NAMED_TEMPLATE_BINDING__FORMAL:
+ return getFormal();
+ case AlfPackage.NAMED_TEMPLATE_BINDING__ACTUAL:
+ return getActual();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.NAMED_TEMPLATE_BINDING__FORMAL:
+ setFormal((String)newValue);
+ return;
+ case AlfPackage.NAMED_TEMPLATE_BINDING__ACTUAL:
+ setActual((QualifiedNameWithBinding)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.NAMED_TEMPLATE_BINDING__FORMAL:
+ setFormal(FORMAL_EDEFAULT);
+ return;
+ case AlfPackage.NAMED_TEMPLATE_BINDING__ACTUAL:
+ setActual((QualifiedNameWithBinding)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.NAMED_TEMPLATE_BINDING__FORMAL:
+ return FORMAL_EDEFAULT == null ? formal != null : !FORMAL_EDEFAULT.equals(formal);
+ case AlfPackage.NAMED_TEMPLATE_BINDING__ACTUAL:
+ return actual != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (formal: ");
+ result.append(formal);
+ result.append(')');
+ return result.toString();
+ }
+
+} //NamedTemplateBindingImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/NonEmptyStatementSequenceImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/NonEmptyStatementSequenceImpl.java
new file mode 100644
index 00000000000..25dde6f6a16
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/NonEmptyStatementSequenceImpl.java
@@ -0,0 +1,171 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.DocumentedStatement;
+import org.eclipse.papyrus.alf.alf.NonEmptyStatementSequence;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Non Empty Statement Sequence</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.NonEmptyStatementSequenceImpl#getStatement <em>Statement</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class NonEmptyStatementSequenceImpl extends MinimalEObjectImpl.Container implements NonEmptyStatementSequence
+{
+ /**
+ * The cached value of the '{@link #getStatement() <em>Statement</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStatement()
+ * @generated
+ * @ordered
+ */
+ protected EList<DocumentedStatement> statement;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected NonEmptyStatementSequenceImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.NON_EMPTY_STATEMENT_SEQUENCE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<DocumentedStatement> getStatement()
+ {
+ if (statement == null)
+ {
+ statement = new EObjectContainmentEList<DocumentedStatement>(DocumentedStatement.class, this, AlfPackage.NON_EMPTY_STATEMENT_SEQUENCE__STATEMENT);
+ }
+ return statement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.NON_EMPTY_STATEMENT_SEQUENCE__STATEMENT:
+ return ((InternalEList<?>)getStatement()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.NON_EMPTY_STATEMENT_SEQUENCE__STATEMENT:
+ return getStatement();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.NON_EMPTY_STATEMENT_SEQUENCE__STATEMENT:
+ getStatement().clear();
+ getStatement().addAll((Collection<? extends DocumentedStatement>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.NON_EMPTY_STATEMENT_SEQUENCE__STATEMENT:
+ getStatement().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.NON_EMPTY_STATEMENT_SEQUENCE__STATEMENT:
+ return statement != null && !statement.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //NonEmptyStatementSequenceImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/NonFinalClauseImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/NonFinalClauseImpl.java
new file mode 100644
index 00000000000..e95bd8a7904
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/NonFinalClauseImpl.java
@@ -0,0 +1,270 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.Block;
+import org.eclipse.papyrus.alf.alf.Expression;
+import org.eclipse.papyrus.alf.alf.NonFinalClause;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Non Final Clause</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.NonFinalClauseImpl#getCondition <em>Condition</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.NonFinalClauseImpl#getBlock <em>Block</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class NonFinalClauseImpl extends MinimalEObjectImpl.Container implements NonFinalClause
+{
+ /**
+ * The cached value of the '{@link #getCondition() <em>Condition</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCondition()
+ * @generated
+ * @ordered
+ */
+ protected Expression condition;
+
+ /**
+ * The cached value of the '{@link #getBlock() <em>Block</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBlock()
+ * @generated
+ * @ordered
+ */
+ protected Block block;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected NonFinalClauseImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.NON_FINAL_CLAUSE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Expression getCondition()
+ {
+ return condition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetCondition(Expression newCondition, NotificationChain msgs)
+ {
+ Expression oldCondition = condition;
+ condition = newCondition;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.NON_FINAL_CLAUSE__CONDITION, oldCondition, newCondition);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCondition(Expression newCondition)
+ {
+ if (newCondition != condition)
+ {
+ NotificationChain msgs = null;
+ if (condition != null)
+ msgs = ((InternalEObject)condition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.NON_FINAL_CLAUSE__CONDITION, null, msgs);
+ if (newCondition != null)
+ msgs = ((InternalEObject)newCondition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.NON_FINAL_CLAUSE__CONDITION, null, msgs);
+ msgs = basicSetCondition(newCondition, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.NON_FINAL_CLAUSE__CONDITION, newCondition, newCondition));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Block getBlock()
+ {
+ return block;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetBlock(Block newBlock, NotificationChain msgs)
+ {
+ Block oldBlock = block;
+ block = newBlock;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.NON_FINAL_CLAUSE__BLOCK, oldBlock, newBlock);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBlock(Block newBlock)
+ {
+ if (newBlock != block)
+ {
+ NotificationChain msgs = null;
+ if (block != null)
+ msgs = ((InternalEObject)block).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.NON_FINAL_CLAUSE__BLOCK, null, msgs);
+ if (newBlock != null)
+ msgs = ((InternalEObject)newBlock).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.NON_FINAL_CLAUSE__BLOCK, null, msgs);
+ msgs = basicSetBlock(newBlock, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.NON_FINAL_CLAUSE__BLOCK, newBlock, newBlock));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.NON_FINAL_CLAUSE__CONDITION:
+ return basicSetCondition(null, msgs);
+ case AlfPackage.NON_FINAL_CLAUSE__BLOCK:
+ return basicSetBlock(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.NON_FINAL_CLAUSE__CONDITION:
+ return getCondition();
+ case AlfPackage.NON_FINAL_CLAUSE__BLOCK:
+ return getBlock();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.NON_FINAL_CLAUSE__CONDITION:
+ setCondition((Expression)newValue);
+ return;
+ case AlfPackage.NON_FINAL_CLAUSE__BLOCK:
+ setBlock((Block)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.NON_FINAL_CLAUSE__CONDITION:
+ setCondition((Expression)null);
+ return;
+ case AlfPackage.NON_FINAL_CLAUSE__BLOCK:
+ setBlock((Block)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.NON_FINAL_CLAUSE__CONDITION:
+ return condition != null;
+ case AlfPackage.NON_FINAL_CLAUSE__BLOCK:
+ return block != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //NonFinalClauseImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/NonLiteralValueSpecificationImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/NonLiteralValueSpecificationImpl.java
new file mode 100644
index 00000000000..71a97e25e4d
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/NonLiteralValueSpecificationImpl.java
@@ -0,0 +1,48 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.NonLiteralValueSpecification;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Non Literal Value Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class NonLiteralValueSpecificationImpl extends MinimalEObjectImpl.Container implements NonLiteralValueSpecification
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected NonLiteralValueSpecificationImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.NON_LITERAL_VALUE_SPECIFICATION;
+ }
+
+} //NonLiteralValueSpecificationImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/NullExpressionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/NullExpressionImpl.java
new file mode 100644
index 00000000000..3c7b8b801ef
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/NullExpressionImpl.java
@@ -0,0 +1,46 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.NullExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Null Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class NullExpressionImpl extends ValueSpecificationImpl implements NullExpression
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected NullExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.NULL_EXPRESSION;
+ }
+
+} //NullExpressionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/OperationCallExpressionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/OperationCallExpressionImpl.java
new file mode 100644
index 00000000000..ae511b761f7
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/OperationCallExpressionImpl.java
@@ -0,0 +1,340 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.OperationCallExpression;
+import org.eclipse.papyrus.alf.alf.SuffixExpression;
+import org.eclipse.papyrus.alf.alf.Tuple;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Operation Call Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.OperationCallExpressionImpl#getOperationName <em>Operation Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.OperationCallExpressionImpl#getTuple <em>Tuple</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.OperationCallExpressionImpl#getSuffix <em>Suffix</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class OperationCallExpressionImpl extends SuffixExpressionImpl implements OperationCallExpression
+{
+ /**
+ * The default value of the '{@link #getOperationName() <em>Operation Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOperationName()
+ * @generated
+ * @ordered
+ */
+ protected static final String OPERATION_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getOperationName() <em>Operation Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOperationName()
+ * @generated
+ * @ordered
+ */
+ protected String operationName = OPERATION_NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getTuple() <em>Tuple</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTuple()
+ * @generated
+ * @ordered
+ */
+ protected Tuple tuple;
+
+ /**
+ * The cached value of the '{@link #getSuffix() <em>Suffix</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSuffix()
+ * @generated
+ * @ordered
+ */
+ protected SuffixExpression suffix;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected OperationCallExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.OPERATION_CALL_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getOperationName()
+ {
+ return operationName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOperationName(String newOperationName)
+ {
+ String oldOperationName = operationName;
+ operationName = newOperationName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.OPERATION_CALL_EXPRESSION__OPERATION_NAME, oldOperationName, operationName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Tuple getTuple()
+ {
+ return tuple;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetTuple(Tuple newTuple, NotificationChain msgs)
+ {
+ Tuple oldTuple = tuple;
+ tuple = newTuple;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.OPERATION_CALL_EXPRESSION__TUPLE, oldTuple, newTuple);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTuple(Tuple newTuple)
+ {
+ if (newTuple != tuple)
+ {
+ NotificationChain msgs = null;
+ if (tuple != null)
+ msgs = ((InternalEObject)tuple).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.OPERATION_CALL_EXPRESSION__TUPLE, null, msgs);
+ if (newTuple != null)
+ msgs = ((InternalEObject)newTuple).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.OPERATION_CALL_EXPRESSION__TUPLE, null, msgs);
+ msgs = basicSetTuple(newTuple, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.OPERATION_CALL_EXPRESSION__TUPLE, newTuple, newTuple));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SuffixExpression getSuffix()
+ {
+ return suffix;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSuffix(SuffixExpression newSuffix, NotificationChain msgs)
+ {
+ SuffixExpression oldSuffix = suffix;
+ suffix = newSuffix;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.OPERATION_CALL_EXPRESSION__SUFFIX, oldSuffix, newSuffix);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSuffix(SuffixExpression newSuffix)
+ {
+ if (newSuffix != suffix)
+ {
+ NotificationChain msgs = null;
+ if (suffix != null)
+ msgs = ((InternalEObject)suffix).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.OPERATION_CALL_EXPRESSION__SUFFIX, null, msgs);
+ if (newSuffix != null)
+ msgs = ((InternalEObject)newSuffix).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.OPERATION_CALL_EXPRESSION__SUFFIX, null, msgs);
+ msgs = basicSetSuffix(newSuffix, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.OPERATION_CALL_EXPRESSION__SUFFIX, newSuffix, newSuffix));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.OPERATION_CALL_EXPRESSION__TUPLE:
+ return basicSetTuple(null, msgs);
+ case AlfPackage.OPERATION_CALL_EXPRESSION__SUFFIX:
+ return basicSetSuffix(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.OPERATION_CALL_EXPRESSION__OPERATION_NAME:
+ return getOperationName();
+ case AlfPackage.OPERATION_CALL_EXPRESSION__TUPLE:
+ return getTuple();
+ case AlfPackage.OPERATION_CALL_EXPRESSION__SUFFIX:
+ return getSuffix();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.OPERATION_CALL_EXPRESSION__OPERATION_NAME:
+ setOperationName((String)newValue);
+ return;
+ case AlfPackage.OPERATION_CALL_EXPRESSION__TUPLE:
+ setTuple((Tuple)newValue);
+ return;
+ case AlfPackage.OPERATION_CALL_EXPRESSION__SUFFIX:
+ setSuffix((SuffixExpression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.OPERATION_CALL_EXPRESSION__OPERATION_NAME:
+ setOperationName(OPERATION_NAME_EDEFAULT);
+ return;
+ case AlfPackage.OPERATION_CALL_EXPRESSION__TUPLE:
+ setTuple((Tuple)null);
+ return;
+ case AlfPackage.OPERATION_CALL_EXPRESSION__SUFFIX:
+ setSuffix((SuffixExpression)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.OPERATION_CALL_EXPRESSION__OPERATION_NAME:
+ return OPERATION_NAME_EDEFAULT == null ? operationName != null : !OPERATION_NAME_EDEFAULT.equals(operationName);
+ case AlfPackage.OPERATION_CALL_EXPRESSION__TUPLE:
+ return tuple != null;
+ case AlfPackage.OPERATION_CALL_EXPRESSION__SUFFIX:
+ return suffix != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (operationName: ");
+ result.append(operationName);
+ result.append(')');
+ return result.toString();
+ }
+
+} //OperationCallExpressionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ParenthesizedExpressionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ParenthesizedExpressionImpl.java
new file mode 100644
index 00000000000..cc5b15afb0e
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ParenthesizedExpressionImpl.java
@@ -0,0 +1,341 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.Expression;
+import org.eclipse.papyrus.alf.alf.NonLiteralValueSpecification;
+import org.eclipse.papyrus.alf.alf.ParenthesizedExpression;
+import org.eclipse.papyrus.alf.alf.SuffixExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Parenthesized Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.ParenthesizedExpressionImpl#getExpOrTypeCast <em>Exp Or Type Cast</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.ParenthesizedExpressionImpl#getCasted <em>Casted</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.ParenthesizedExpressionImpl#getSuffix <em>Suffix</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ParenthesizedExpressionImpl extends ValueSpecificationImpl implements ParenthesizedExpression
+{
+ /**
+ * The cached value of the '{@link #getExpOrTypeCast() <em>Exp Or Type Cast</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExpOrTypeCast()
+ * @generated
+ * @ordered
+ */
+ protected Expression expOrTypeCast;
+
+ /**
+ * The cached value of the '{@link #getCasted() <em>Casted</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCasted()
+ * @generated
+ * @ordered
+ */
+ protected NonLiteralValueSpecification casted;
+
+ /**
+ * The cached value of the '{@link #getSuffix() <em>Suffix</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSuffix()
+ * @generated
+ * @ordered
+ */
+ protected SuffixExpression suffix;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ParenthesizedExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.PARENTHESIZED_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Expression getExpOrTypeCast()
+ {
+ return expOrTypeCast;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetExpOrTypeCast(Expression newExpOrTypeCast, NotificationChain msgs)
+ {
+ Expression oldExpOrTypeCast = expOrTypeCast;
+ expOrTypeCast = newExpOrTypeCast;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.PARENTHESIZED_EXPRESSION__EXP_OR_TYPE_CAST, oldExpOrTypeCast, newExpOrTypeCast);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExpOrTypeCast(Expression newExpOrTypeCast)
+ {
+ if (newExpOrTypeCast != expOrTypeCast)
+ {
+ NotificationChain msgs = null;
+ if (expOrTypeCast != null)
+ msgs = ((InternalEObject)expOrTypeCast).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.PARENTHESIZED_EXPRESSION__EXP_OR_TYPE_CAST, null, msgs);
+ if (newExpOrTypeCast != null)
+ msgs = ((InternalEObject)newExpOrTypeCast).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.PARENTHESIZED_EXPRESSION__EXP_OR_TYPE_CAST, null, msgs);
+ msgs = basicSetExpOrTypeCast(newExpOrTypeCast, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.PARENTHESIZED_EXPRESSION__EXP_OR_TYPE_CAST, newExpOrTypeCast, newExpOrTypeCast));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NonLiteralValueSpecification getCasted()
+ {
+ return casted;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetCasted(NonLiteralValueSpecification newCasted, NotificationChain msgs)
+ {
+ NonLiteralValueSpecification oldCasted = casted;
+ casted = newCasted;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.PARENTHESIZED_EXPRESSION__CASTED, oldCasted, newCasted);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCasted(NonLiteralValueSpecification newCasted)
+ {
+ if (newCasted != casted)
+ {
+ NotificationChain msgs = null;
+ if (casted != null)
+ msgs = ((InternalEObject)casted).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.PARENTHESIZED_EXPRESSION__CASTED, null, msgs);
+ if (newCasted != null)
+ msgs = ((InternalEObject)newCasted).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.PARENTHESIZED_EXPRESSION__CASTED, null, msgs);
+ msgs = basicSetCasted(newCasted, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.PARENTHESIZED_EXPRESSION__CASTED, newCasted, newCasted));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SuffixExpression getSuffix()
+ {
+ return suffix;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSuffix(SuffixExpression newSuffix, NotificationChain msgs)
+ {
+ SuffixExpression oldSuffix = suffix;
+ suffix = newSuffix;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.PARENTHESIZED_EXPRESSION__SUFFIX, oldSuffix, newSuffix);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSuffix(SuffixExpression newSuffix)
+ {
+ if (newSuffix != suffix)
+ {
+ NotificationChain msgs = null;
+ if (suffix != null)
+ msgs = ((InternalEObject)suffix).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.PARENTHESIZED_EXPRESSION__SUFFIX, null, msgs);
+ if (newSuffix != null)
+ msgs = ((InternalEObject)newSuffix).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.PARENTHESIZED_EXPRESSION__SUFFIX, null, msgs);
+ msgs = basicSetSuffix(newSuffix, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.PARENTHESIZED_EXPRESSION__SUFFIX, newSuffix, newSuffix));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.PARENTHESIZED_EXPRESSION__EXP_OR_TYPE_CAST:
+ return basicSetExpOrTypeCast(null, msgs);
+ case AlfPackage.PARENTHESIZED_EXPRESSION__CASTED:
+ return basicSetCasted(null, msgs);
+ case AlfPackage.PARENTHESIZED_EXPRESSION__SUFFIX:
+ return basicSetSuffix(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.PARENTHESIZED_EXPRESSION__EXP_OR_TYPE_CAST:
+ return getExpOrTypeCast();
+ case AlfPackage.PARENTHESIZED_EXPRESSION__CASTED:
+ return getCasted();
+ case AlfPackage.PARENTHESIZED_EXPRESSION__SUFFIX:
+ return getSuffix();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.PARENTHESIZED_EXPRESSION__EXP_OR_TYPE_CAST:
+ setExpOrTypeCast((Expression)newValue);
+ return;
+ case AlfPackage.PARENTHESIZED_EXPRESSION__CASTED:
+ setCasted((NonLiteralValueSpecification)newValue);
+ return;
+ case AlfPackage.PARENTHESIZED_EXPRESSION__SUFFIX:
+ setSuffix((SuffixExpression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.PARENTHESIZED_EXPRESSION__EXP_OR_TYPE_CAST:
+ setExpOrTypeCast((Expression)null);
+ return;
+ case AlfPackage.PARENTHESIZED_EXPRESSION__CASTED:
+ setCasted((NonLiteralValueSpecification)null);
+ return;
+ case AlfPackage.PARENTHESIZED_EXPRESSION__SUFFIX:
+ setSuffix((SuffixExpression)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.PARENTHESIZED_EXPRESSION__EXP_OR_TYPE_CAST:
+ return expOrTypeCast != null;
+ case AlfPackage.PARENTHESIZED_EXPRESSION__CASTED:
+ return casted != null;
+ case AlfPackage.PARENTHESIZED_EXPRESSION__SUFFIX:
+ return suffix != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ParenthesizedExpressionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/PartialSequenceConstructionCompletionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/PartialSequenceConstructionCompletionImpl.java
new file mode 100644
index 00000000000..468d93f1c7a
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/PartialSequenceConstructionCompletionImpl.java
@@ -0,0 +1,198 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.PartialSequenceConstructionCompletion;
+import org.eclipse.papyrus.alf.alf.SequenceConstructionExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Partial Sequence Construction Completion</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.PartialSequenceConstructionCompletionImpl#getExpression <em>Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PartialSequenceConstructionCompletionImpl extends MinimalEObjectImpl.Container implements PartialSequenceConstructionCompletion
+{
+ /**
+ * The cached value of the '{@link #getExpression() <em>Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExpression()
+ * @generated
+ * @ordered
+ */
+ protected SequenceConstructionExpression expression;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PartialSequenceConstructionCompletionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.PARTIAL_SEQUENCE_CONSTRUCTION_COMPLETION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SequenceConstructionExpression getExpression()
+ {
+ return expression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetExpression(SequenceConstructionExpression newExpression, NotificationChain msgs)
+ {
+ SequenceConstructionExpression oldExpression = expression;
+ expression = newExpression;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.PARTIAL_SEQUENCE_CONSTRUCTION_COMPLETION__EXPRESSION, oldExpression, newExpression);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExpression(SequenceConstructionExpression newExpression)
+ {
+ if (newExpression != expression)
+ {
+ NotificationChain msgs = null;
+ if (expression != null)
+ msgs = ((InternalEObject)expression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.PARTIAL_SEQUENCE_CONSTRUCTION_COMPLETION__EXPRESSION, null, msgs);
+ if (newExpression != null)
+ msgs = ((InternalEObject)newExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.PARTIAL_SEQUENCE_CONSTRUCTION_COMPLETION__EXPRESSION, null, msgs);
+ msgs = basicSetExpression(newExpression, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.PARTIAL_SEQUENCE_CONSTRUCTION_COMPLETION__EXPRESSION, newExpression, newExpression));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.PARTIAL_SEQUENCE_CONSTRUCTION_COMPLETION__EXPRESSION:
+ return basicSetExpression(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.PARTIAL_SEQUENCE_CONSTRUCTION_COMPLETION__EXPRESSION:
+ return getExpression();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.PARTIAL_SEQUENCE_CONSTRUCTION_COMPLETION__EXPRESSION:
+ setExpression((SequenceConstructionExpression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.PARTIAL_SEQUENCE_CONSTRUCTION_COMPLETION__EXPRESSION:
+ setExpression((SequenceConstructionExpression)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.PARTIAL_SEQUENCE_CONSTRUCTION_COMPLETION__EXPRESSION:
+ return expression != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //PartialSequenceConstructionCompletionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/PrimaryExpressionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/PrimaryExpressionImpl.java
new file mode 100644
index 00000000000..4f90714f6e0
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/PrimaryExpressionImpl.java
@@ -0,0 +1,198 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.PrimaryExpression;
+import org.eclipse.papyrus.alf.alf.ValueSpecification;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Primary Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.PrimaryExpressionImpl#getPrefix <em>Prefix</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PrimaryExpressionImpl extends MinimalEObjectImpl.Container implements PrimaryExpression
+{
+ /**
+ * The cached value of the '{@link #getPrefix() <em>Prefix</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPrefix()
+ * @generated
+ * @ordered
+ */
+ protected ValueSpecification prefix;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PrimaryExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.PRIMARY_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification getPrefix()
+ {
+ return prefix;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetPrefix(ValueSpecification newPrefix, NotificationChain msgs)
+ {
+ ValueSpecification oldPrefix = prefix;
+ prefix = newPrefix;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.PRIMARY_EXPRESSION__PREFIX, oldPrefix, newPrefix);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPrefix(ValueSpecification newPrefix)
+ {
+ if (newPrefix != prefix)
+ {
+ NotificationChain msgs = null;
+ if (prefix != null)
+ msgs = ((InternalEObject)prefix).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.PRIMARY_EXPRESSION__PREFIX, null, msgs);
+ if (newPrefix != null)
+ msgs = ((InternalEObject)newPrefix).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.PRIMARY_EXPRESSION__PREFIX, null, msgs);
+ msgs = basicSetPrefix(newPrefix, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.PRIMARY_EXPRESSION__PREFIX, newPrefix, newPrefix));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.PRIMARY_EXPRESSION__PREFIX:
+ return basicSetPrefix(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.PRIMARY_EXPRESSION__PREFIX:
+ return getPrefix();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.PRIMARY_EXPRESSION__PREFIX:
+ setPrefix((ValueSpecification)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.PRIMARY_EXPRESSION__PREFIX:
+ setPrefix((ValueSpecification)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.PRIMARY_EXPRESSION__PREFIX:
+ return prefix != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //PrimaryExpressionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/PropertyCallExpressionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/PropertyCallExpressionImpl.java
new file mode 100644
index 00000000000..35c6e81fce3
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/PropertyCallExpressionImpl.java
@@ -0,0 +1,340 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.Expression;
+import org.eclipse.papyrus.alf.alf.PropertyCallExpression;
+import org.eclipse.papyrus.alf.alf.SuffixExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Property Call Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.PropertyCallExpressionImpl#getPropertyName <em>Property Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.PropertyCallExpressionImpl#getIndex <em>Index</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.PropertyCallExpressionImpl#getSuffix <em>Suffix</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PropertyCallExpressionImpl extends SuffixExpressionImpl implements PropertyCallExpression
+{
+ /**
+ * The default value of the '{@link #getPropertyName() <em>Property Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPropertyName()
+ * @generated
+ * @ordered
+ */
+ protected static final String PROPERTY_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPropertyName() <em>Property Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPropertyName()
+ * @generated
+ * @ordered
+ */
+ protected String propertyName = PROPERTY_NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getIndex() <em>Index</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIndex()
+ * @generated
+ * @ordered
+ */
+ protected Expression index;
+
+ /**
+ * The cached value of the '{@link #getSuffix() <em>Suffix</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSuffix()
+ * @generated
+ * @ordered
+ */
+ protected SuffixExpression suffix;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PropertyCallExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.PROPERTY_CALL_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getPropertyName()
+ {
+ return propertyName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPropertyName(String newPropertyName)
+ {
+ String oldPropertyName = propertyName;
+ propertyName = newPropertyName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.PROPERTY_CALL_EXPRESSION__PROPERTY_NAME, oldPropertyName, propertyName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Expression getIndex()
+ {
+ return index;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetIndex(Expression newIndex, NotificationChain msgs)
+ {
+ Expression oldIndex = index;
+ index = newIndex;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.PROPERTY_CALL_EXPRESSION__INDEX, oldIndex, newIndex);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIndex(Expression newIndex)
+ {
+ if (newIndex != index)
+ {
+ NotificationChain msgs = null;
+ if (index != null)
+ msgs = ((InternalEObject)index).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.PROPERTY_CALL_EXPRESSION__INDEX, null, msgs);
+ if (newIndex != null)
+ msgs = ((InternalEObject)newIndex).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.PROPERTY_CALL_EXPRESSION__INDEX, null, msgs);
+ msgs = basicSetIndex(newIndex, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.PROPERTY_CALL_EXPRESSION__INDEX, newIndex, newIndex));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SuffixExpression getSuffix()
+ {
+ return suffix;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSuffix(SuffixExpression newSuffix, NotificationChain msgs)
+ {
+ SuffixExpression oldSuffix = suffix;
+ suffix = newSuffix;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.PROPERTY_CALL_EXPRESSION__SUFFIX, oldSuffix, newSuffix);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSuffix(SuffixExpression newSuffix)
+ {
+ if (newSuffix != suffix)
+ {
+ NotificationChain msgs = null;
+ if (suffix != null)
+ msgs = ((InternalEObject)suffix).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.PROPERTY_CALL_EXPRESSION__SUFFIX, null, msgs);
+ if (newSuffix != null)
+ msgs = ((InternalEObject)newSuffix).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.PROPERTY_CALL_EXPRESSION__SUFFIX, null, msgs);
+ msgs = basicSetSuffix(newSuffix, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.PROPERTY_CALL_EXPRESSION__SUFFIX, newSuffix, newSuffix));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.PROPERTY_CALL_EXPRESSION__INDEX:
+ return basicSetIndex(null, msgs);
+ case AlfPackage.PROPERTY_CALL_EXPRESSION__SUFFIX:
+ return basicSetSuffix(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.PROPERTY_CALL_EXPRESSION__PROPERTY_NAME:
+ return getPropertyName();
+ case AlfPackage.PROPERTY_CALL_EXPRESSION__INDEX:
+ return getIndex();
+ case AlfPackage.PROPERTY_CALL_EXPRESSION__SUFFIX:
+ return getSuffix();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.PROPERTY_CALL_EXPRESSION__PROPERTY_NAME:
+ setPropertyName((String)newValue);
+ return;
+ case AlfPackage.PROPERTY_CALL_EXPRESSION__INDEX:
+ setIndex((Expression)newValue);
+ return;
+ case AlfPackage.PROPERTY_CALL_EXPRESSION__SUFFIX:
+ setSuffix((SuffixExpression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.PROPERTY_CALL_EXPRESSION__PROPERTY_NAME:
+ setPropertyName(PROPERTY_NAME_EDEFAULT);
+ return;
+ case AlfPackage.PROPERTY_CALL_EXPRESSION__INDEX:
+ setIndex((Expression)null);
+ return;
+ case AlfPackage.PROPERTY_CALL_EXPRESSION__SUFFIX:
+ setSuffix((SuffixExpression)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.PROPERTY_CALL_EXPRESSION__PROPERTY_NAME:
+ return PROPERTY_NAME_EDEFAULT == null ? propertyName != null : !PROPERTY_NAME_EDEFAULT.equals(propertyName);
+ case AlfPackage.PROPERTY_CALL_EXPRESSION__INDEX:
+ return index != null;
+ case AlfPackage.PROPERTY_CALL_EXPRESSION__SUFFIX:
+ return suffix != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (propertyName: ");
+ result.append(propertyName);
+ result.append(')');
+ return result.toString();
+ }
+
+} //PropertyCallExpressionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/QualifiedNameListImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/QualifiedNameListImpl.java
new file mode 100644
index 00000000000..a6f87712612
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/QualifiedNameListImpl.java
@@ -0,0 +1,171 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.QualifiedNameList;
+import org.eclipse.papyrus.alf.alf.QualifiedNameWithBinding;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Qualified Name List</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.QualifiedNameListImpl#getQualifiedName <em>Qualified Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class QualifiedNameListImpl extends MinimalEObjectImpl.Container implements QualifiedNameList
+{
+ /**
+ * The cached value of the '{@link #getQualifiedName() <em>Qualified Name</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getQualifiedName()
+ * @generated
+ * @ordered
+ */
+ protected EList<QualifiedNameWithBinding> qualifiedName;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected QualifiedNameListImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.QUALIFIED_NAME_LIST;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<QualifiedNameWithBinding> getQualifiedName()
+ {
+ if (qualifiedName == null)
+ {
+ qualifiedName = new EObjectContainmentEList<QualifiedNameWithBinding>(QualifiedNameWithBinding.class, this, AlfPackage.QUALIFIED_NAME_LIST__QUALIFIED_NAME);
+ }
+ return qualifiedName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.QUALIFIED_NAME_LIST__QUALIFIED_NAME:
+ return ((InternalEList<?>)getQualifiedName()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.QUALIFIED_NAME_LIST__QUALIFIED_NAME:
+ return getQualifiedName();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.QUALIFIED_NAME_LIST__QUALIFIED_NAME:
+ getQualifiedName().clear();
+ getQualifiedName().addAll((Collection<? extends QualifiedNameWithBinding>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.QUALIFIED_NAME_LIST__QUALIFIED_NAME:
+ getQualifiedName().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.QUALIFIED_NAME_LIST__QUALIFIED_NAME:
+ return qualifiedName != null && !qualifiedName.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //QualifiedNameListImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/QualifiedNamePathImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/QualifiedNamePathImpl.java
new file mode 100644
index 00000000000..3770c0713f9
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/QualifiedNamePathImpl.java
@@ -0,0 +1,171 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.QualifiedNamePath;
+import org.eclipse.papyrus.alf.alf.UnqualifiedName;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Qualified Name Path</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.QualifiedNamePathImpl#getNamespace <em>Namespace</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class QualifiedNamePathImpl extends MinimalEObjectImpl.Container implements QualifiedNamePath
+{
+ /**
+ * The cached value of the '{@link #getNamespace() <em>Namespace</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNamespace()
+ * @generated
+ * @ordered
+ */
+ protected EList<UnqualifiedName> namespace;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected QualifiedNamePathImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.QUALIFIED_NAME_PATH;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<UnqualifiedName> getNamespace()
+ {
+ if (namespace == null)
+ {
+ namespace = new EObjectContainmentEList<UnqualifiedName>(UnqualifiedName.class, this, AlfPackage.QUALIFIED_NAME_PATH__NAMESPACE);
+ }
+ return namespace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.QUALIFIED_NAME_PATH__NAMESPACE:
+ return ((InternalEList<?>)getNamespace()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.QUALIFIED_NAME_PATH__NAMESPACE:
+ return getNamespace();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.QUALIFIED_NAME_PATH__NAMESPACE:
+ getNamespace().clear();
+ getNamespace().addAll((Collection<? extends UnqualifiedName>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.QUALIFIED_NAME_PATH__NAMESPACE:
+ getNamespace().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.QUALIFIED_NAME_PATH__NAMESPACE:
+ return namespace != null && !namespace.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //QualifiedNamePathImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/QualifiedNameWithBindingImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/QualifiedNameWithBindingImpl.java
new file mode 100644
index 00000000000..fb3030eef17
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/QualifiedNameWithBindingImpl.java
@@ -0,0 +1,340 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.QualifiedNameWithBinding;
+import org.eclipse.papyrus.alf.alf.TemplateBinding;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Qualified Name With Binding</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.QualifiedNameWithBindingImpl#getId <em>Id</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.QualifiedNameWithBindingImpl#getBinding <em>Binding</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.QualifiedNameWithBindingImpl#getRemaining <em>Remaining</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class QualifiedNameWithBindingImpl extends MinimalEObjectImpl.Container implements QualifiedNameWithBinding
+{
+ /**
+ * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected static final String ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected String id = ID_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getBinding() <em>Binding</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBinding()
+ * @generated
+ * @ordered
+ */
+ protected TemplateBinding binding;
+
+ /**
+ * The cached value of the '{@link #getRemaining() <em>Remaining</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemaining()
+ * @generated
+ * @ordered
+ */
+ protected QualifiedNameWithBinding remaining;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected QualifiedNameWithBindingImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.QUALIFIED_NAME_WITH_BINDING;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getId()
+ {
+ return id;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setId(String newId)
+ {
+ String oldId = id;
+ id = newId;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.QUALIFIED_NAME_WITH_BINDING__ID, oldId, id));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateBinding getBinding()
+ {
+ return binding;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetBinding(TemplateBinding newBinding, NotificationChain msgs)
+ {
+ TemplateBinding oldBinding = binding;
+ binding = newBinding;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.QUALIFIED_NAME_WITH_BINDING__BINDING, oldBinding, newBinding);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBinding(TemplateBinding newBinding)
+ {
+ if (newBinding != binding)
+ {
+ NotificationChain msgs = null;
+ if (binding != null)
+ msgs = ((InternalEObject)binding).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.QUALIFIED_NAME_WITH_BINDING__BINDING, null, msgs);
+ if (newBinding != null)
+ msgs = ((InternalEObject)newBinding).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.QUALIFIED_NAME_WITH_BINDING__BINDING, null, msgs);
+ msgs = basicSetBinding(newBinding, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.QUALIFIED_NAME_WITH_BINDING__BINDING, newBinding, newBinding));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QualifiedNameWithBinding getRemaining()
+ {
+ return remaining;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetRemaining(QualifiedNameWithBinding newRemaining, NotificationChain msgs)
+ {
+ QualifiedNameWithBinding oldRemaining = remaining;
+ remaining = newRemaining;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.QUALIFIED_NAME_WITH_BINDING__REMAINING, oldRemaining, newRemaining);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRemaining(QualifiedNameWithBinding newRemaining)
+ {
+ if (newRemaining != remaining)
+ {
+ NotificationChain msgs = null;
+ if (remaining != null)
+ msgs = ((InternalEObject)remaining).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.QUALIFIED_NAME_WITH_BINDING__REMAINING, null, msgs);
+ if (newRemaining != null)
+ msgs = ((InternalEObject)newRemaining).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.QUALIFIED_NAME_WITH_BINDING__REMAINING, null, msgs);
+ msgs = basicSetRemaining(newRemaining, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.QUALIFIED_NAME_WITH_BINDING__REMAINING, newRemaining, newRemaining));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.QUALIFIED_NAME_WITH_BINDING__BINDING:
+ return basicSetBinding(null, msgs);
+ case AlfPackage.QUALIFIED_NAME_WITH_BINDING__REMAINING:
+ return basicSetRemaining(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.QUALIFIED_NAME_WITH_BINDING__ID:
+ return getId();
+ case AlfPackage.QUALIFIED_NAME_WITH_BINDING__BINDING:
+ return getBinding();
+ case AlfPackage.QUALIFIED_NAME_WITH_BINDING__REMAINING:
+ return getRemaining();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.QUALIFIED_NAME_WITH_BINDING__ID:
+ setId((String)newValue);
+ return;
+ case AlfPackage.QUALIFIED_NAME_WITH_BINDING__BINDING:
+ setBinding((TemplateBinding)newValue);
+ return;
+ case AlfPackage.QUALIFIED_NAME_WITH_BINDING__REMAINING:
+ setRemaining((QualifiedNameWithBinding)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.QUALIFIED_NAME_WITH_BINDING__ID:
+ setId(ID_EDEFAULT);
+ return;
+ case AlfPackage.QUALIFIED_NAME_WITH_BINDING__BINDING:
+ setBinding((TemplateBinding)null);
+ return;
+ case AlfPackage.QUALIFIED_NAME_WITH_BINDING__REMAINING:
+ setRemaining((QualifiedNameWithBinding)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.QUALIFIED_NAME_WITH_BINDING__ID:
+ return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+ case AlfPackage.QUALIFIED_NAME_WITH_BINDING__BINDING:
+ return binding != null;
+ case AlfPackage.QUALIFIED_NAME_WITH_BINDING__REMAINING:
+ return remaining != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (id: ");
+ result.append(id);
+ result.append(')');
+ return result.toString();
+ }
+
+} //QualifiedNameWithBindingImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ReclassifyAllClauseImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ReclassifyAllClauseImpl.java
new file mode 100644
index 00000000000..6602fea5fc4
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ReclassifyAllClauseImpl.java
@@ -0,0 +1,48 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.ReclassifyAllClause;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Reclassify All Clause</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class ReclassifyAllClauseImpl extends MinimalEObjectImpl.Container implements ReclassifyAllClause
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ReclassifyAllClauseImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.RECLASSIFY_ALL_CLAUSE;
+ }
+
+} //ReclassifyAllClauseImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/RelationalExpressionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/RelationalExpressionImpl.java
new file mode 100644
index 00000000000..138aa4c49a6
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/RelationalExpressionImpl.java
@@ -0,0 +1,340 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.RelationalExpression;
+import org.eclipse.papyrus.alf.alf.ShiftExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Relational Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.RelationalExpressionImpl#getLeft <em>Left</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.RelationalExpressionImpl#getOp <em>Op</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.RelationalExpressionImpl#getRight <em>Right</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class RelationalExpressionImpl extends MinimalEObjectImpl.Container implements RelationalExpression
+{
+ /**
+ * The cached value of the '{@link #getLeft() <em>Left</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLeft()
+ * @generated
+ * @ordered
+ */
+ protected ShiftExpression left;
+
+ /**
+ * The default value of the '{@link #getOp() <em>Op</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOp()
+ * @generated
+ * @ordered
+ */
+ protected static final String OP_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getOp() <em>Op</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOp()
+ * @generated
+ * @ordered
+ */
+ protected String op = OP_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getRight() <em>Right</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRight()
+ * @generated
+ * @ordered
+ */
+ protected ShiftExpression right;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RelationalExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.RELATIONAL_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ShiftExpression getLeft()
+ {
+ return left;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetLeft(ShiftExpression newLeft, NotificationChain msgs)
+ {
+ ShiftExpression oldLeft = left;
+ left = newLeft;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.RELATIONAL_EXPRESSION__LEFT, oldLeft, newLeft);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLeft(ShiftExpression newLeft)
+ {
+ if (newLeft != left)
+ {
+ NotificationChain msgs = null;
+ if (left != null)
+ msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.RELATIONAL_EXPRESSION__LEFT, null, msgs);
+ if (newLeft != null)
+ msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.RELATIONAL_EXPRESSION__LEFT, null, msgs);
+ msgs = basicSetLeft(newLeft, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.RELATIONAL_EXPRESSION__LEFT, newLeft, newLeft));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getOp()
+ {
+ return op;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOp(String newOp)
+ {
+ String oldOp = op;
+ op = newOp;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.RELATIONAL_EXPRESSION__OP, oldOp, op));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ShiftExpression getRight()
+ {
+ return right;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetRight(ShiftExpression newRight, NotificationChain msgs)
+ {
+ ShiftExpression oldRight = right;
+ right = newRight;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.RELATIONAL_EXPRESSION__RIGHT, oldRight, newRight);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRight(ShiftExpression newRight)
+ {
+ if (newRight != right)
+ {
+ NotificationChain msgs = null;
+ if (right != null)
+ msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.RELATIONAL_EXPRESSION__RIGHT, null, msgs);
+ if (newRight != null)
+ msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.RELATIONAL_EXPRESSION__RIGHT, null, msgs);
+ msgs = basicSetRight(newRight, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.RELATIONAL_EXPRESSION__RIGHT, newRight, newRight));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.RELATIONAL_EXPRESSION__LEFT:
+ return basicSetLeft(null, msgs);
+ case AlfPackage.RELATIONAL_EXPRESSION__RIGHT:
+ return basicSetRight(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.RELATIONAL_EXPRESSION__LEFT:
+ return getLeft();
+ case AlfPackage.RELATIONAL_EXPRESSION__OP:
+ return getOp();
+ case AlfPackage.RELATIONAL_EXPRESSION__RIGHT:
+ return getRight();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.RELATIONAL_EXPRESSION__LEFT:
+ setLeft((ShiftExpression)newValue);
+ return;
+ case AlfPackage.RELATIONAL_EXPRESSION__OP:
+ setOp((String)newValue);
+ return;
+ case AlfPackage.RELATIONAL_EXPRESSION__RIGHT:
+ setRight((ShiftExpression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.RELATIONAL_EXPRESSION__LEFT:
+ setLeft((ShiftExpression)null);
+ return;
+ case AlfPackage.RELATIONAL_EXPRESSION__OP:
+ setOp(OP_EDEFAULT);
+ return;
+ case AlfPackage.RELATIONAL_EXPRESSION__RIGHT:
+ setRight((ShiftExpression)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.RELATIONAL_EXPRESSION__LEFT:
+ return left != null;
+ case AlfPackage.RELATIONAL_EXPRESSION__OP:
+ return OP_EDEFAULT == null ? op != null : !OP_EDEFAULT.equals(op);
+ case AlfPackage.RELATIONAL_EXPRESSION__RIGHT:
+ return right != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (op: ");
+ result.append(op);
+ result.append(')');
+ return result.toString();
+ }
+
+} //RelationalExpressionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ReturnStatementImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ReturnStatementImpl.java
new file mode 100644
index 00000000000..ac796e1d230
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ReturnStatementImpl.java
@@ -0,0 +1,197 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.Expression;
+import org.eclipse.papyrus.alf.alf.ReturnStatement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Return Statement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.ReturnStatementImpl#getExpression <em>Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ReturnStatementImpl extends StatementImpl implements ReturnStatement
+{
+ /**
+ * The cached value of the '{@link #getExpression() <em>Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExpression()
+ * @generated
+ * @ordered
+ */
+ protected Expression expression;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ReturnStatementImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.RETURN_STATEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Expression getExpression()
+ {
+ return expression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetExpression(Expression newExpression, NotificationChain msgs)
+ {
+ Expression oldExpression = expression;
+ expression = newExpression;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.RETURN_STATEMENT__EXPRESSION, oldExpression, newExpression);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExpression(Expression newExpression)
+ {
+ if (newExpression != expression)
+ {
+ NotificationChain msgs = null;
+ if (expression != null)
+ msgs = ((InternalEObject)expression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.RETURN_STATEMENT__EXPRESSION, null, msgs);
+ if (newExpression != null)
+ msgs = ((InternalEObject)newExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.RETURN_STATEMENT__EXPRESSION, null, msgs);
+ msgs = basicSetExpression(newExpression, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.RETURN_STATEMENT__EXPRESSION, newExpression, newExpression));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.RETURN_STATEMENT__EXPRESSION:
+ return basicSetExpression(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.RETURN_STATEMENT__EXPRESSION:
+ return getExpression();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.RETURN_STATEMENT__EXPRESSION:
+ setExpression((Expression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.RETURN_STATEMENT__EXPRESSION:
+ setExpression((Expression)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.RETURN_STATEMENT__EXPRESSION:
+ return expression != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ReturnStatementImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/STRING_LITERALImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/STRING_LITERALImpl.java
new file mode 100644
index 00000000000..a6c8f64628c
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/STRING_LITERALImpl.java
@@ -0,0 +1,180 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.STRING_LITERAL;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>STRING LITERAL</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.STRING_LITERALImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class STRING_LITERALImpl extends LITERALImpl implements STRING_LITERAL
+{
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final String VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected String value = VALUE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected STRING_LITERALImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.STRING_LITERAL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(String newValue)
+ {
+ String oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.STRING_LITERAL__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.STRING_LITERAL__VALUE:
+ return getValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.STRING_LITERAL__VALUE:
+ setValue((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.STRING_LITERAL__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.STRING_LITERAL__VALUE:
+ return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (value: ");
+ result.append(value);
+ result.append(')');
+ return result.toString();
+ }
+
+} //STRING_LITERALImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SelectOrRejectOperationImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SelectOrRejectOperationImpl.java
new file mode 100644
index 00000000000..f994228e66f
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SelectOrRejectOperationImpl.java
@@ -0,0 +1,181 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.SelectOrRejectOperation;
+import org.eclipse.papyrus.alf.alf.SelectOrRejectOperator;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Select Or Reject Operation</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.SelectOrRejectOperationImpl#getOp <em>Op</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SelectOrRejectOperationImpl extends SequenceExpansionExpressionImpl implements SelectOrRejectOperation
+{
+ /**
+ * The default value of the '{@link #getOp() <em>Op</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOp()
+ * @generated
+ * @ordered
+ */
+ protected static final SelectOrRejectOperator OP_EDEFAULT = SelectOrRejectOperator.SELECT;
+
+ /**
+ * The cached value of the '{@link #getOp() <em>Op</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOp()
+ * @generated
+ * @ordered
+ */
+ protected SelectOrRejectOperator op = OP_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SelectOrRejectOperationImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.SELECT_OR_REJECT_OPERATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SelectOrRejectOperator getOp()
+ {
+ return op;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOp(SelectOrRejectOperator newOp)
+ {
+ SelectOrRejectOperator oldOp = op;
+ op = newOp == null ? OP_EDEFAULT : newOp;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.SELECT_OR_REJECT_OPERATION__OP, oldOp, op));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SELECT_OR_REJECT_OPERATION__OP:
+ return getOp();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SELECT_OR_REJECT_OPERATION__OP:
+ setOp((SelectOrRejectOperator)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SELECT_OR_REJECT_OPERATION__OP:
+ setOp(OP_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SELECT_OR_REJECT_OPERATION__OP:
+ return op != OP_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (op: ");
+ result.append(op);
+ result.append(')');
+ return result.toString();
+ }
+
+} //SelectOrRejectOperationImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SequenceConstructionExpressionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SequenceConstructionExpressionImpl.java
new file mode 100644
index 00000000000..80c794c2b38
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SequenceConstructionExpressionImpl.java
@@ -0,0 +1,244 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.Expression;
+import org.eclipse.papyrus.alf.alf.SequenceConstructionExpression;
+import org.eclipse.papyrus.alf.alf.SequenceElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Sequence Construction Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.SequenceConstructionExpressionImpl#getSequenceElement <em>Sequence Element</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.SequenceConstructionExpressionImpl#getRangeUpper <em>Range Upper</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SequenceConstructionExpressionImpl extends SequenceElementImpl implements SequenceConstructionExpression
+{
+ /**
+ * The cached value of the '{@link #getSequenceElement() <em>Sequence Element</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSequenceElement()
+ * @generated
+ * @ordered
+ */
+ protected EList<SequenceElement> sequenceElement;
+
+ /**
+ * The cached value of the '{@link #getRangeUpper() <em>Range Upper</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRangeUpper()
+ * @generated
+ * @ordered
+ */
+ protected Expression rangeUpper;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SequenceConstructionExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.SEQUENCE_CONSTRUCTION_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<SequenceElement> getSequenceElement()
+ {
+ if (sequenceElement == null)
+ {
+ sequenceElement = new EObjectContainmentEList<SequenceElement>(SequenceElement.class, this, AlfPackage.SEQUENCE_CONSTRUCTION_EXPRESSION__SEQUENCE_ELEMENT);
+ }
+ return sequenceElement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Expression getRangeUpper()
+ {
+ return rangeUpper;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetRangeUpper(Expression newRangeUpper, NotificationChain msgs)
+ {
+ Expression oldRangeUpper = rangeUpper;
+ rangeUpper = newRangeUpper;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.SEQUENCE_CONSTRUCTION_EXPRESSION__RANGE_UPPER, oldRangeUpper, newRangeUpper);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRangeUpper(Expression newRangeUpper)
+ {
+ if (newRangeUpper != rangeUpper)
+ {
+ NotificationChain msgs = null;
+ if (rangeUpper != null)
+ msgs = ((InternalEObject)rangeUpper).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SEQUENCE_CONSTRUCTION_EXPRESSION__RANGE_UPPER, null, msgs);
+ if (newRangeUpper != null)
+ msgs = ((InternalEObject)newRangeUpper).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SEQUENCE_CONSTRUCTION_EXPRESSION__RANGE_UPPER, null, msgs);
+ msgs = basicSetRangeUpper(newRangeUpper, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.SEQUENCE_CONSTRUCTION_EXPRESSION__RANGE_UPPER, newRangeUpper, newRangeUpper));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SEQUENCE_CONSTRUCTION_EXPRESSION__SEQUENCE_ELEMENT:
+ return ((InternalEList<?>)getSequenceElement()).basicRemove(otherEnd, msgs);
+ case AlfPackage.SEQUENCE_CONSTRUCTION_EXPRESSION__RANGE_UPPER:
+ return basicSetRangeUpper(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SEQUENCE_CONSTRUCTION_EXPRESSION__SEQUENCE_ELEMENT:
+ return getSequenceElement();
+ case AlfPackage.SEQUENCE_CONSTRUCTION_EXPRESSION__RANGE_UPPER:
+ return getRangeUpper();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SEQUENCE_CONSTRUCTION_EXPRESSION__SEQUENCE_ELEMENT:
+ getSequenceElement().clear();
+ getSequenceElement().addAll((Collection<? extends SequenceElement>)newValue);
+ return;
+ case AlfPackage.SEQUENCE_CONSTRUCTION_EXPRESSION__RANGE_UPPER:
+ setRangeUpper((Expression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SEQUENCE_CONSTRUCTION_EXPRESSION__SEQUENCE_ELEMENT:
+ getSequenceElement().clear();
+ return;
+ case AlfPackage.SEQUENCE_CONSTRUCTION_EXPRESSION__RANGE_UPPER:
+ setRangeUpper((Expression)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SEQUENCE_CONSTRUCTION_EXPRESSION__SEQUENCE_ELEMENT:
+ return sequenceElement != null && !sequenceElement.isEmpty();
+ case AlfPackage.SEQUENCE_CONSTRUCTION_EXPRESSION__RANGE_UPPER:
+ return rangeUpper != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //SequenceConstructionExpressionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SequenceConstructionOrAccessCompletionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SequenceConstructionOrAccessCompletionImpl.java
new file mode 100644
index 00000000000..4a5d5e960cd
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SequenceConstructionOrAccessCompletionImpl.java
@@ -0,0 +1,413 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AccessCompletion;
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.PartialSequenceConstructionCompletion;
+import org.eclipse.papyrus.alf.alf.SequenceConstructionExpression;
+import org.eclipse.papyrus.alf.alf.SequenceConstructionOrAccessCompletion;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Sequence Construction Or Access Completion</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.SequenceConstructionOrAccessCompletionImpl#isMultiplicityIndicator <em>Multiplicity Indicator</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.SequenceConstructionOrAccessCompletionImpl#getAccessCompletion <em>Access Completion</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.SequenceConstructionOrAccessCompletionImpl#getSequenceCompletion <em>Sequence Completion</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.SequenceConstructionOrAccessCompletionImpl#getExpression <em>Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SequenceConstructionOrAccessCompletionImpl extends MinimalEObjectImpl.Container implements SequenceConstructionOrAccessCompletion
+{
+ /**
+ * The default value of the '{@link #isMultiplicityIndicator() <em>Multiplicity Indicator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isMultiplicityIndicator()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean MULTIPLICITY_INDICATOR_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isMultiplicityIndicator() <em>Multiplicity Indicator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isMultiplicityIndicator()
+ * @generated
+ * @ordered
+ */
+ protected boolean multiplicityIndicator = MULTIPLICITY_INDICATOR_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getAccessCompletion() <em>Access Completion</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAccessCompletion()
+ * @generated
+ * @ordered
+ */
+ protected AccessCompletion accessCompletion;
+
+ /**
+ * The cached value of the '{@link #getSequenceCompletion() <em>Sequence Completion</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSequenceCompletion()
+ * @generated
+ * @ordered
+ */
+ protected PartialSequenceConstructionCompletion sequenceCompletion;
+
+ /**
+ * The cached value of the '{@link #getExpression() <em>Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExpression()
+ * @generated
+ * @ordered
+ */
+ protected SequenceConstructionExpression expression;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SequenceConstructionOrAccessCompletionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isMultiplicityIndicator()
+ {
+ return multiplicityIndicator;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMultiplicityIndicator(boolean newMultiplicityIndicator)
+ {
+ boolean oldMultiplicityIndicator = multiplicityIndicator;
+ multiplicityIndicator = newMultiplicityIndicator;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__MULTIPLICITY_INDICATOR, oldMultiplicityIndicator, multiplicityIndicator));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AccessCompletion getAccessCompletion()
+ {
+ return accessCompletion;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetAccessCompletion(AccessCompletion newAccessCompletion, NotificationChain msgs)
+ {
+ AccessCompletion oldAccessCompletion = accessCompletion;
+ accessCompletion = newAccessCompletion;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__ACCESS_COMPLETION, oldAccessCompletion, newAccessCompletion);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAccessCompletion(AccessCompletion newAccessCompletion)
+ {
+ if (newAccessCompletion != accessCompletion)
+ {
+ NotificationChain msgs = null;
+ if (accessCompletion != null)
+ msgs = ((InternalEObject)accessCompletion).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__ACCESS_COMPLETION, null, msgs);
+ if (newAccessCompletion != null)
+ msgs = ((InternalEObject)newAccessCompletion).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__ACCESS_COMPLETION, null, msgs);
+ msgs = basicSetAccessCompletion(newAccessCompletion, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__ACCESS_COMPLETION, newAccessCompletion, newAccessCompletion));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PartialSequenceConstructionCompletion getSequenceCompletion()
+ {
+ return sequenceCompletion;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSequenceCompletion(PartialSequenceConstructionCompletion newSequenceCompletion, NotificationChain msgs)
+ {
+ PartialSequenceConstructionCompletion oldSequenceCompletion = sequenceCompletion;
+ sequenceCompletion = newSequenceCompletion;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__SEQUENCE_COMPLETION, oldSequenceCompletion, newSequenceCompletion);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSequenceCompletion(PartialSequenceConstructionCompletion newSequenceCompletion)
+ {
+ if (newSequenceCompletion != sequenceCompletion)
+ {
+ NotificationChain msgs = null;
+ if (sequenceCompletion != null)
+ msgs = ((InternalEObject)sequenceCompletion).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__SEQUENCE_COMPLETION, null, msgs);
+ if (newSequenceCompletion != null)
+ msgs = ((InternalEObject)newSequenceCompletion).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__SEQUENCE_COMPLETION, null, msgs);
+ msgs = basicSetSequenceCompletion(newSequenceCompletion, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__SEQUENCE_COMPLETION, newSequenceCompletion, newSequenceCompletion));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SequenceConstructionExpression getExpression()
+ {
+ return expression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetExpression(SequenceConstructionExpression newExpression, NotificationChain msgs)
+ {
+ SequenceConstructionExpression oldExpression = expression;
+ expression = newExpression;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__EXPRESSION, oldExpression, newExpression);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExpression(SequenceConstructionExpression newExpression)
+ {
+ if (newExpression != expression)
+ {
+ NotificationChain msgs = null;
+ if (expression != null)
+ msgs = ((InternalEObject)expression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__EXPRESSION, null, msgs);
+ if (newExpression != null)
+ msgs = ((InternalEObject)newExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__EXPRESSION, null, msgs);
+ msgs = basicSetExpression(newExpression, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__EXPRESSION, newExpression, newExpression));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__ACCESS_COMPLETION:
+ return basicSetAccessCompletion(null, msgs);
+ case AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__SEQUENCE_COMPLETION:
+ return basicSetSequenceCompletion(null, msgs);
+ case AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__EXPRESSION:
+ return basicSetExpression(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__MULTIPLICITY_INDICATOR:
+ return isMultiplicityIndicator();
+ case AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__ACCESS_COMPLETION:
+ return getAccessCompletion();
+ case AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__SEQUENCE_COMPLETION:
+ return getSequenceCompletion();
+ case AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__EXPRESSION:
+ return getExpression();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__MULTIPLICITY_INDICATOR:
+ setMultiplicityIndicator((Boolean)newValue);
+ return;
+ case AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__ACCESS_COMPLETION:
+ setAccessCompletion((AccessCompletion)newValue);
+ return;
+ case AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__SEQUENCE_COMPLETION:
+ setSequenceCompletion((PartialSequenceConstructionCompletion)newValue);
+ return;
+ case AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__EXPRESSION:
+ setExpression((SequenceConstructionExpression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__MULTIPLICITY_INDICATOR:
+ setMultiplicityIndicator(MULTIPLICITY_INDICATOR_EDEFAULT);
+ return;
+ case AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__ACCESS_COMPLETION:
+ setAccessCompletion((AccessCompletion)null);
+ return;
+ case AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__SEQUENCE_COMPLETION:
+ setSequenceCompletion((PartialSequenceConstructionCompletion)null);
+ return;
+ case AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__EXPRESSION:
+ setExpression((SequenceConstructionExpression)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__MULTIPLICITY_INDICATOR:
+ return multiplicityIndicator != MULTIPLICITY_INDICATOR_EDEFAULT;
+ case AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__ACCESS_COMPLETION:
+ return accessCompletion != null;
+ case AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__SEQUENCE_COMPLETION:
+ return sequenceCompletion != null;
+ case AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION__EXPRESSION:
+ return expression != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (multiplicityIndicator: ");
+ result.append(multiplicityIndicator);
+ result.append(')');
+ return result.toString();
+ }
+
+} //SequenceConstructionOrAccessCompletionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SequenceElementImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SequenceElementImpl.java
new file mode 100644
index 00000000000..26bdd84a741
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SequenceElementImpl.java
@@ -0,0 +1,48 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.SequenceElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Sequence Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class SequenceElementImpl extends MinimalEObjectImpl.Container implements SequenceElement
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SequenceElementImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.SEQUENCE_ELEMENT;
+ }
+
+} //SequenceElementImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SequenceExpansionExpressionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SequenceExpansionExpressionImpl.java
new file mode 100644
index 00000000000..1f01ed4d738
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SequenceExpansionExpressionImpl.java
@@ -0,0 +1,340 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.Expression;
+import org.eclipse.papyrus.alf.alf.SequenceExpansionExpression;
+import org.eclipse.papyrus.alf.alf.SuffixExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Sequence Expansion Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.SequenceExpansionExpressionImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.SequenceExpansionExpressionImpl#getExpr <em>Expr</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.SequenceExpansionExpressionImpl#getSuffix <em>Suffix</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SequenceExpansionExpressionImpl extends SuffixExpressionImpl implements SequenceExpansionExpression
+{
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getExpr() <em>Expr</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExpr()
+ * @generated
+ * @ordered
+ */
+ protected Expression expr;
+
+ /**
+ * The cached value of the '{@link #getSuffix() <em>Suffix</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSuffix()
+ * @generated
+ * @ordered
+ */
+ protected SuffixExpression suffix;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SequenceExpansionExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.SEQUENCE_EXPANSION_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName)
+ {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.SEQUENCE_EXPANSION_EXPRESSION__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Expression getExpr()
+ {
+ return expr;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetExpr(Expression newExpr, NotificationChain msgs)
+ {
+ Expression oldExpr = expr;
+ expr = newExpr;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.SEQUENCE_EXPANSION_EXPRESSION__EXPR, oldExpr, newExpr);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExpr(Expression newExpr)
+ {
+ if (newExpr != expr)
+ {
+ NotificationChain msgs = null;
+ if (expr != null)
+ msgs = ((InternalEObject)expr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SEQUENCE_EXPANSION_EXPRESSION__EXPR, null, msgs);
+ if (newExpr != null)
+ msgs = ((InternalEObject)newExpr).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SEQUENCE_EXPANSION_EXPRESSION__EXPR, null, msgs);
+ msgs = basicSetExpr(newExpr, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.SEQUENCE_EXPANSION_EXPRESSION__EXPR, newExpr, newExpr));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SuffixExpression getSuffix()
+ {
+ return suffix;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSuffix(SuffixExpression newSuffix, NotificationChain msgs)
+ {
+ SuffixExpression oldSuffix = suffix;
+ suffix = newSuffix;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.SEQUENCE_EXPANSION_EXPRESSION__SUFFIX, oldSuffix, newSuffix);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSuffix(SuffixExpression newSuffix)
+ {
+ if (newSuffix != suffix)
+ {
+ NotificationChain msgs = null;
+ if (suffix != null)
+ msgs = ((InternalEObject)suffix).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SEQUENCE_EXPANSION_EXPRESSION__SUFFIX, null, msgs);
+ if (newSuffix != null)
+ msgs = ((InternalEObject)newSuffix).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SEQUENCE_EXPANSION_EXPRESSION__SUFFIX, null, msgs);
+ msgs = basicSetSuffix(newSuffix, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.SEQUENCE_EXPANSION_EXPRESSION__SUFFIX, newSuffix, newSuffix));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SEQUENCE_EXPANSION_EXPRESSION__EXPR:
+ return basicSetExpr(null, msgs);
+ case AlfPackage.SEQUENCE_EXPANSION_EXPRESSION__SUFFIX:
+ return basicSetSuffix(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SEQUENCE_EXPANSION_EXPRESSION__NAME:
+ return getName();
+ case AlfPackage.SEQUENCE_EXPANSION_EXPRESSION__EXPR:
+ return getExpr();
+ case AlfPackage.SEQUENCE_EXPANSION_EXPRESSION__SUFFIX:
+ return getSuffix();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SEQUENCE_EXPANSION_EXPRESSION__NAME:
+ setName((String)newValue);
+ return;
+ case AlfPackage.SEQUENCE_EXPANSION_EXPRESSION__EXPR:
+ setExpr((Expression)newValue);
+ return;
+ case AlfPackage.SEQUENCE_EXPANSION_EXPRESSION__SUFFIX:
+ setSuffix((SuffixExpression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SEQUENCE_EXPANSION_EXPRESSION__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case AlfPackage.SEQUENCE_EXPANSION_EXPRESSION__EXPR:
+ setExpr((Expression)null);
+ return;
+ case AlfPackage.SEQUENCE_EXPANSION_EXPRESSION__SUFFIX:
+ setSuffix((SuffixExpression)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SEQUENCE_EXPANSION_EXPRESSION__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case AlfPackage.SEQUENCE_EXPANSION_EXPRESSION__EXPR:
+ return expr != null;
+ case AlfPackage.SEQUENCE_EXPANSION_EXPRESSION__SUFFIX:
+ return suffix != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} //SequenceExpansionExpressionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SequenceOperationExpressionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SequenceOperationExpressionImpl.java
new file mode 100644
index 00000000000..61d9b39da69
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SequenceOperationExpressionImpl.java
@@ -0,0 +1,341 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.QualifiedNameWithBinding;
+import org.eclipse.papyrus.alf.alf.SequenceOperationExpression;
+import org.eclipse.papyrus.alf.alf.SuffixExpression;
+import org.eclipse.papyrus.alf.alf.Tuple;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Sequence Operation Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.SequenceOperationExpressionImpl#getOperationName <em>Operation Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.SequenceOperationExpressionImpl#getTuple <em>Tuple</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.SequenceOperationExpressionImpl#getSuffix <em>Suffix</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SequenceOperationExpressionImpl extends SuffixExpressionImpl implements SequenceOperationExpression
+{
+ /**
+ * The cached value of the '{@link #getOperationName() <em>Operation Name</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOperationName()
+ * @generated
+ * @ordered
+ */
+ protected QualifiedNameWithBinding operationName;
+
+ /**
+ * The cached value of the '{@link #getTuple() <em>Tuple</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTuple()
+ * @generated
+ * @ordered
+ */
+ protected Tuple tuple;
+
+ /**
+ * The cached value of the '{@link #getSuffix() <em>Suffix</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSuffix()
+ * @generated
+ * @ordered
+ */
+ protected SuffixExpression suffix;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SequenceOperationExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.SEQUENCE_OPERATION_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QualifiedNameWithBinding getOperationName()
+ {
+ return operationName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetOperationName(QualifiedNameWithBinding newOperationName, NotificationChain msgs)
+ {
+ QualifiedNameWithBinding oldOperationName = operationName;
+ operationName = newOperationName;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.SEQUENCE_OPERATION_EXPRESSION__OPERATION_NAME, oldOperationName, newOperationName);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOperationName(QualifiedNameWithBinding newOperationName)
+ {
+ if (newOperationName != operationName)
+ {
+ NotificationChain msgs = null;
+ if (operationName != null)
+ msgs = ((InternalEObject)operationName).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SEQUENCE_OPERATION_EXPRESSION__OPERATION_NAME, null, msgs);
+ if (newOperationName != null)
+ msgs = ((InternalEObject)newOperationName).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SEQUENCE_OPERATION_EXPRESSION__OPERATION_NAME, null, msgs);
+ msgs = basicSetOperationName(newOperationName, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.SEQUENCE_OPERATION_EXPRESSION__OPERATION_NAME, newOperationName, newOperationName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Tuple getTuple()
+ {
+ return tuple;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetTuple(Tuple newTuple, NotificationChain msgs)
+ {
+ Tuple oldTuple = tuple;
+ tuple = newTuple;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.SEQUENCE_OPERATION_EXPRESSION__TUPLE, oldTuple, newTuple);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTuple(Tuple newTuple)
+ {
+ if (newTuple != tuple)
+ {
+ NotificationChain msgs = null;
+ if (tuple != null)
+ msgs = ((InternalEObject)tuple).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SEQUENCE_OPERATION_EXPRESSION__TUPLE, null, msgs);
+ if (newTuple != null)
+ msgs = ((InternalEObject)newTuple).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SEQUENCE_OPERATION_EXPRESSION__TUPLE, null, msgs);
+ msgs = basicSetTuple(newTuple, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.SEQUENCE_OPERATION_EXPRESSION__TUPLE, newTuple, newTuple));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SuffixExpression getSuffix()
+ {
+ return suffix;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSuffix(SuffixExpression newSuffix, NotificationChain msgs)
+ {
+ SuffixExpression oldSuffix = suffix;
+ suffix = newSuffix;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.SEQUENCE_OPERATION_EXPRESSION__SUFFIX, oldSuffix, newSuffix);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSuffix(SuffixExpression newSuffix)
+ {
+ if (newSuffix != suffix)
+ {
+ NotificationChain msgs = null;
+ if (suffix != null)
+ msgs = ((InternalEObject)suffix).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SEQUENCE_OPERATION_EXPRESSION__SUFFIX, null, msgs);
+ if (newSuffix != null)
+ msgs = ((InternalEObject)newSuffix).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SEQUENCE_OPERATION_EXPRESSION__SUFFIX, null, msgs);
+ msgs = basicSetSuffix(newSuffix, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.SEQUENCE_OPERATION_EXPRESSION__SUFFIX, newSuffix, newSuffix));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SEQUENCE_OPERATION_EXPRESSION__OPERATION_NAME:
+ return basicSetOperationName(null, msgs);
+ case AlfPackage.SEQUENCE_OPERATION_EXPRESSION__TUPLE:
+ return basicSetTuple(null, msgs);
+ case AlfPackage.SEQUENCE_OPERATION_EXPRESSION__SUFFIX:
+ return basicSetSuffix(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SEQUENCE_OPERATION_EXPRESSION__OPERATION_NAME:
+ return getOperationName();
+ case AlfPackage.SEQUENCE_OPERATION_EXPRESSION__TUPLE:
+ return getTuple();
+ case AlfPackage.SEQUENCE_OPERATION_EXPRESSION__SUFFIX:
+ return getSuffix();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SEQUENCE_OPERATION_EXPRESSION__OPERATION_NAME:
+ setOperationName((QualifiedNameWithBinding)newValue);
+ return;
+ case AlfPackage.SEQUENCE_OPERATION_EXPRESSION__TUPLE:
+ setTuple((Tuple)newValue);
+ return;
+ case AlfPackage.SEQUENCE_OPERATION_EXPRESSION__SUFFIX:
+ setSuffix((SuffixExpression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SEQUENCE_OPERATION_EXPRESSION__OPERATION_NAME:
+ setOperationName((QualifiedNameWithBinding)null);
+ return;
+ case AlfPackage.SEQUENCE_OPERATION_EXPRESSION__TUPLE:
+ setTuple((Tuple)null);
+ return;
+ case AlfPackage.SEQUENCE_OPERATION_EXPRESSION__SUFFIX:
+ setSuffix((SuffixExpression)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SEQUENCE_OPERATION_EXPRESSION__OPERATION_NAME:
+ return operationName != null;
+ case AlfPackage.SEQUENCE_OPERATION_EXPRESSION__TUPLE:
+ return tuple != null;
+ case AlfPackage.SEQUENCE_OPERATION_EXPRESSION__SUFFIX:
+ return suffix != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //SequenceOperationExpressionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SequenceReductionExpressionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SequenceReductionExpressionImpl.java
new file mode 100644
index 00000000000..8f82c573229
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SequenceReductionExpressionImpl.java
@@ -0,0 +1,340 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.QualifiedNameWithBinding;
+import org.eclipse.papyrus.alf.alf.SequenceReductionExpression;
+import org.eclipse.papyrus.alf.alf.SuffixExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Sequence Reduction Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.SequenceReductionExpressionImpl#isIsOrdered <em>Is Ordered</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.SequenceReductionExpressionImpl#getBehavior <em>Behavior</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.SequenceReductionExpressionImpl#getSuffix <em>Suffix</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SequenceReductionExpressionImpl extends SuffixExpressionImpl implements SequenceReductionExpression
+{
+ /**
+ * The default value of the '{@link #isIsOrdered() <em>Is Ordered</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsOrdered()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_ORDERED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isIsOrdered() <em>Is Ordered</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsOrdered()
+ * @generated
+ * @ordered
+ */
+ protected boolean isOrdered = IS_ORDERED_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getBehavior() <em>Behavior</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBehavior()
+ * @generated
+ * @ordered
+ */
+ protected QualifiedNameWithBinding behavior;
+
+ /**
+ * The cached value of the '{@link #getSuffix() <em>Suffix</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSuffix()
+ * @generated
+ * @ordered
+ */
+ protected SuffixExpression suffix;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SequenceReductionExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.SEQUENCE_REDUCTION_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isIsOrdered()
+ {
+ return isOrdered;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIsOrdered(boolean newIsOrdered)
+ {
+ boolean oldIsOrdered = isOrdered;
+ isOrdered = newIsOrdered;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.SEQUENCE_REDUCTION_EXPRESSION__IS_ORDERED, oldIsOrdered, isOrdered));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QualifiedNameWithBinding getBehavior()
+ {
+ return behavior;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetBehavior(QualifiedNameWithBinding newBehavior, NotificationChain msgs)
+ {
+ QualifiedNameWithBinding oldBehavior = behavior;
+ behavior = newBehavior;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.SEQUENCE_REDUCTION_EXPRESSION__BEHAVIOR, oldBehavior, newBehavior);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBehavior(QualifiedNameWithBinding newBehavior)
+ {
+ if (newBehavior != behavior)
+ {
+ NotificationChain msgs = null;
+ if (behavior != null)
+ msgs = ((InternalEObject)behavior).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SEQUENCE_REDUCTION_EXPRESSION__BEHAVIOR, null, msgs);
+ if (newBehavior != null)
+ msgs = ((InternalEObject)newBehavior).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SEQUENCE_REDUCTION_EXPRESSION__BEHAVIOR, null, msgs);
+ msgs = basicSetBehavior(newBehavior, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.SEQUENCE_REDUCTION_EXPRESSION__BEHAVIOR, newBehavior, newBehavior));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SuffixExpression getSuffix()
+ {
+ return suffix;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSuffix(SuffixExpression newSuffix, NotificationChain msgs)
+ {
+ SuffixExpression oldSuffix = suffix;
+ suffix = newSuffix;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.SEQUENCE_REDUCTION_EXPRESSION__SUFFIX, oldSuffix, newSuffix);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSuffix(SuffixExpression newSuffix)
+ {
+ if (newSuffix != suffix)
+ {
+ NotificationChain msgs = null;
+ if (suffix != null)
+ msgs = ((InternalEObject)suffix).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SEQUENCE_REDUCTION_EXPRESSION__SUFFIX, null, msgs);
+ if (newSuffix != null)
+ msgs = ((InternalEObject)newSuffix).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SEQUENCE_REDUCTION_EXPRESSION__SUFFIX, null, msgs);
+ msgs = basicSetSuffix(newSuffix, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.SEQUENCE_REDUCTION_EXPRESSION__SUFFIX, newSuffix, newSuffix));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SEQUENCE_REDUCTION_EXPRESSION__BEHAVIOR:
+ return basicSetBehavior(null, msgs);
+ case AlfPackage.SEQUENCE_REDUCTION_EXPRESSION__SUFFIX:
+ return basicSetSuffix(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SEQUENCE_REDUCTION_EXPRESSION__IS_ORDERED:
+ return isIsOrdered();
+ case AlfPackage.SEQUENCE_REDUCTION_EXPRESSION__BEHAVIOR:
+ return getBehavior();
+ case AlfPackage.SEQUENCE_REDUCTION_EXPRESSION__SUFFIX:
+ return getSuffix();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SEQUENCE_REDUCTION_EXPRESSION__IS_ORDERED:
+ setIsOrdered((Boolean)newValue);
+ return;
+ case AlfPackage.SEQUENCE_REDUCTION_EXPRESSION__BEHAVIOR:
+ setBehavior((QualifiedNameWithBinding)newValue);
+ return;
+ case AlfPackage.SEQUENCE_REDUCTION_EXPRESSION__SUFFIX:
+ setSuffix((SuffixExpression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SEQUENCE_REDUCTION_EXPRESSION__IS_ORDERED:
+ setIsOrdered(IS_ORDERED_EDEFAULT);
+ return;
+ case AlfPackage.SEQUENCE_REDUCTION_EXPRESSION__BEHAVIOR:
+ setBehavior((QualifiedNameWithBinding)null);
+ return;
+ case AlfPackage.SEQUENCE_REDUCTION_EXPRESSION__SUFFIX:
+ setSuffix((SuffixExpression)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SEQUENCE_REDUCTION_EXPRESSION__IS_ORDERED:
+ return isOrdered != IS_ORDERED_EDEFAULT;
+ case AlfPackage.SEQUENCE_REDUCTION_EXPRESSION__BEHAVIOR:
+ return behavior != null;
+ case AlfPackage.SEQUENCE_REDUCTION_EXPRESSION__SUFFIX:
+ return suffix != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (isOrdered: ");
+ result.append(isOrdered);
+ result.append(')');
+ return result.toString();
+ }
+
+} //SequenceReductionExpressionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SequentialClausesImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SequentialClausesImpl.java
new file mode 100644
index 00000000000..7f0ceb7512f
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SequentialClausesImpl.java
@@ -0,0 +1,171 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.ConcurrentClauses;
+import org.eclipse.papyrus.alf.alf.SequentialClauses;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Sequential Clauses</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.SequentialClausesImpl#getConccurentClauses <em>Conccurent Clauses</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SequentialClausesImpl extends MinimalEObjectImpl.Container implements SequentialClauses
+{
+ /**
+ * The cached value of the '{@link #getConccurentClauses() <em>Conccurent Clauses</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getConccurentClauses()
+ * @generated
+ * @ordered
+ */
+ protected EList<ConcurrentClauses> conccurentClauses;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SequentialClausesImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.SEQUENTIAL_CLAUSES;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ConcurrentClauses> getConccurentClauses()
+ {
+ if (conccurentClauses == null)
+ {
+ conccurentClauses = new EObjectContainmentEList<ConcurrentClauses>(ConcurrentClauses.class, this, AlfPackage.SEQUENTIAL_CLAUSES__CONCCURENT_CLAUSES);
+ }
+ return conccurentClauses;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SEQUENTIAL_CLAUSES__CONCCURENT_CLAUSES:
+ return ((InternalEList<?>)getConccurentClauses()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SEQUENTIAL_CLAUSES__CONCCURENT_CLAUSES:
+ return getConccurentClauses();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SEQUENTIAL_CLAUSES__CONCCURENT_CLAUSES:
+ getConccurentClauses().clear();
+ getConccurentClauses().addAll((Collection<? extends ConcurrentClauses>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SEQUENTIAL_CLAUSES__CONCCURENT_CLAUSES:
+ getConccurentClauses().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SEQUENTIAL_CLAUSES__CONCCURENT_CLAUSES:
+ return conccurentClauses != null && !conccurentClauses.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //SequentialClausesImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ShiftExpressionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ShiftExpressionImpl.java
new file mode 100644
index 00000000000..84cfd78b6ae
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ShiftExpressionImpl.java
@@ -0,0 +1,244 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.alf.alf.AdditiveExpression;
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.ShiftExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Shift Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.ShiftExpressionImpl#getExp <em>Exp</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.ShiftExpressionImpl#getOp <em>Op</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ShiftExpressionImpl extends MinimalEObjectImpl.Container implements ShiftExpression
+{
+ /**
+ * The cached value of the '{@link #getExp() <em>Exp</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExp()
+ * @generated
+ * @ordered
+ */
+ protected EList<AdditiveExpression> exp;
+
+ /**
+ * The default value of the '{@link #getOp() <em>Op</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOp()
+ * @generated
+ * @ordered
+ */
+ protected static final String OP_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getOp() <em>Op</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOp()
+ * @generated
+ * @ordered
+ */
+ protected String op = OP_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ShiftExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.SHIFT_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<AdditiveExpression> getExp()
+ {
+ if (exp == null)
+ {
+ exp = new EObjectContainmentEList<AdditiveExpression>(AdditiveExpression.class, this, AlfPackage.SHIFT_EXPRESSION__EXP);
+ }
+ return exp;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getOp()
+ {
+ return op;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOp(String newOp)
+ {
+ String oldOp = op;
+ op = newOp;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.SHIFT_EXPRESSION__OP, oldOp, op));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SHIFT_EXPRESSION__EXP:
+ return ((InternalEList<?>)getExp()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SHIFT_EXPRESSION__EXP:
+ return getExp();
+ case AlfPackage.SHIFT_EXPRESSION__OP:
+ return getOp();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SHIFT_EXPRESSION__EXP:
+ getExp().clear();
+ getExp().addAll((Collection<? extends AdditiveExpression>)newValue);
+ return;
+ case AlfPackage.SHIFT_EXPRESSION__OP:
+ setOp((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SHIFT_EXPRESSION__EXP:
+ getExp().clear();
+ return;
+ case AlfPackage.SHIFT_EXPRESSION__OP:
+ setOp(OP_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SHIFT_EXPRESSION__EXP:
+ return exp != null && !exp.isEmpty();
+ case AlfPackage.SHIFT_EXPRESSION__OP:
+ return OP_EDEFAULT == null ? op != null : !OP_EDEFAULT.equals(op);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (op: ");
+ result.append(op);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ShiftExpressionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SimpleAcceptStatementCompletionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SimpleAcceptStatementCompletionImpl.java
new file mode 100644
index 00000000000..8d2998c40c2
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SimpleAcceptStatementCompletionImpl.java
@@ -0,0 +1,48 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.SimpleAcceptStatementCompletion;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Simple Accept Statement Completion</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class SimpleAcceptStatementCompletionImpl extends MinimalEObjectImpl.Container implements SimpleAcceptStatementCompletion
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SimpleAcceptStatementCompletionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.SIMPLE_ACCEPT_STATEMENT_COMPLETION;
+ }
+
+} //SimpleAcceptStatementCompletionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/StatementImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/StatementImpl.java
new file mode 100644
index 00000000000..5de2769f7ef
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/StatementImpl.java
@@ -0,0 +1,48 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.Statement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Statement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class StatementImpl extends MinimalEObjectImpl.Container implements Statement
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StatementImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.STATEMENT;
+ }
+
+} //StatementImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/StatementSequenceImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/StatementSequenceImpl.java
new file mode 100644
index 00000000000..bc4af20b1d3
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/StatementSequenceImpl.java
@@ -0,0 +1,171 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.DocumentedStatement;
+import org.eclipse.papyrus.alf.alf.StatementSequence;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Statement Sequence</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.StatementSequenceImpl#getStatements <em>Statements</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StatementSequenceImpl extends MinimalEObjectImpl.Container implements StatementSequence
+{
+ /**
+ * The cached value of the '{@link #getStatements() <em>Statements</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStatements()
+ * @generated
+ * @ordered
+ */
+ protected EList<DocumentedStatement> statements;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StatementSequenceImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.STATEMENT_SEQUENCE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<DocumentedStatement> getStatements()
+ {
+ if (statements == null)
+ {
+ statements = new EObjectContainmentEList<DocumentedStatement>(DocumentedStatement.class, this, AlfPackage.STATEMENT_SEQUENCE__STATEMENTS);
+ }
+ return statements;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.STATEMENT_SEQUENCE__STATEMENTS:
+ return ((InternalEList<?>)getStatements()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.STATEMENT_SEQUENCE__STATEMENTS:
+ return getStatements();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.STATEMENT_SEQUENCE__STATEMENTS:
+ getStatements().clear();
+ getStatements().addAll((Collection<? extends DocumentedStatement>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.STATEMENT_SEQUENCE__STATEMENTS:
+ getStatements().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.STATEMENT_SEQUENCE__STATEMENTS:
+ return statements != null && !statements.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //StatementSequenceImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SuffixExpressionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SuffixExpressionImpl.java
new file mode 100644
index 00000000000..e2321a940d0
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SuffixExpressionImpl.java
@@ -0,0 +1,48 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.SuffixExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Suffix Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class SuffixExpressionImpl extends MinimalEObjectImpl.Container implements SuffixExpression
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SuffixExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.SUFFIX_EXPRESSION;
+ }
+
+} //SuffixExpressionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SuperInvocationExpressionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SuperInvocationExpressionImpl.java
new file mode 100644
index 00000000000..00fc722e785
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SuperInvocationExpressionImpl.java
@@ -0,0 +1,269 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.QualifiedNameWithBinding;
+import org.eclipse.papyrus.alf.alf.SuperInvocationExpression;
+import org.eclipse.papyrus.alf.alf.Tuple;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Super Invocation Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.SuperInvocationExpressionImpl#getTuple <em>Tuple</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.SuperInvocationExpressionImpl#getOperationName <em>Operation Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SuperInvocationExpressionImpl extends ValueSpecificationImpl implements SuperInvocationExpression
+{
+ /**
+ * The cached value of the '{@link #getTuple() <em>Tuple</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTuple()
+ * @generated
+ * @ordered
+ */
+ protected Tuple tuple;
+
+ /**
+ * The cached value of the '{@link #getOperationName() <em>Operation Name</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOperationName()
+ * @generated
+ * @ordered
+ */
+ protected QualifiedNameWithBinding operationName;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SuperInvocationExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.SUPER_INVOCATION_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Tuple getTuple()
+ {
+ return tuple;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetTuple(Tuple newTuple, NotificationChain msgs)
+ {
+ Tuple oldTuple = tuple;
+ tuple = newTuple;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.SUPER_INVOCATION_EXPRESSION__TUPLE, oldTuple, newTuple);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTuple(Tuple newTuple)
+ {
+ if (newTuple != tuple)
+ {
+ NotificationChain msgs = null;
+ if (tuple != null)
+ msgs = ((InternalEObject)tuple).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SUPER_INVOCATION_EXPRESSION__TUPLE, null, msgs);
+ if (newTuple != null)
+ msgs = ((InternalEObject)newTuple).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SUPER_INVOCATION_EXPRESSION__TUPLE, null, msgs);
+ msgs = basicSetTuple(newTuple, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.SUPER_INVOCATION_EXPRESSION__TUPLE, newTuple, newTuple));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QualifiedNameWithBinding getOperationName()
+ {
+ return operationName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetOperationName(QualifiedNameWithBinding newOperationName, NotificationChain msgs)
+ {
+ QualifiedNameWithBinding oldOperationName = operationName;
+ operationName = newOperationName;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.SUPER_INVOCATION_EXPRESSION__OPERATION_NAME, oldOperationName, newOperationName);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOperationName(QualifiedNameWithBinding newOperationName)
+ {
+ if (newOperationName != operationName)
+ {
+ NotificationChain msgs = null;
+ if (operationName != null)
+ msgs = ((InternalEObject)operationName).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SUPER_INVOCATION_EXPRESSION__OPERATION_NAME, null, msgs);
+ if (newOperationName != null)
+ msgs = ((InternalEObject)newOperationName).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SUPER_INVOCATION_EXPRESSION__OPERATION_NAME, null, msgs);
+ msgs = basicSetOperationName(newOperationName, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.SUPER_INVOCATION_EXPRESSION__OPERATION_NAME, newOperationName, newOperationName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SUPER_INVOCATION_EXPRESSION__TUPLE:
+ return basicSetTuple(null, msgs);
+ case AlfPackage.SUPER_INVOCATION_EXPRESSION__OPERATION_NAME:
+ return basicSetOperationName(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SUPER_INVOCATION_EXPRESSION__TUPLE:
+ return getTuple();
+ case AlfPackage.SUPER_INVOCATION_EXPRESSION__OPERATION_NAME:
+ return getOperationName();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SUPER_INVOCATION_EXPRESSION__TUPLE:
+ setTuple((Tuple)newValue);
+ return;
+ case AlfPackage.SUPER_INVOCATION_EXPRESSION__OPERATION_NAME:
+ setOperationName((QualifiedNameWithBinding)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SUPER_INVOCATION_EXPRESSION__TUPLE:
+ setTuple((Tuple)null);
+ return;
+ case AlfPackage.SUPER_INVOCATION_EXPRESSION__OPERATION_NAME:
+ setOperationName((QualifiedNameWithBinding)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SUPER_INVOCATION_EXPRESSION__TUPLE:
+ return tuple != null;
+ case AlfPackage.SUPER_INVOCATION_EXPRESSION__OPERATION_NAME:
+ return operationName != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //SuperInvocationExpressionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SuperInvocationStatementImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SuperInvocationStatementImpl.java
new file mode 100644
index 00000000000..f348b68817f
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SuperInvocationStatementImpl.java
@@ -0,0 +1,197 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.SuperInvocationExpression;
+import org.eclipse.papyrus.alf.alf.SuperInvocationStatement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Super Invocation Statement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.SuperInvocationStatementImpl#get_super <em>super</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SuperInvocationStatementImpl extends StatementImpl implements SuperInvocationStatement
+{
+ /**
+ * The cached value of the '{@link #get_super() <em>super</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #get_super()
+ * @generated
+ * @ordered
+ */
+ protected SuperInvocationExpression _super;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SuperInvocationStatementImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.SUPER_INVOCATION_STATEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SuperInvocationExpression get_super()
+ {
+ return _super;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSet_super(SuperInvocationExpression new_super, NotificationChain msgs)
+ {
+ SuperInvocationExpression old_super = _super;
+ _super = new_super;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.SUPER_INVOCATION_STATEMENT__SUPER, old_super, new_super);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void set_super(SuperInvocationExpression new_super)
+ {
+ if (new_super != _super)
+ {
+ NotificationChain msgs = null;
+ if (_super != null)
+ msgs = ((InternalEObject)_super).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SUPER_INVOCATION_STATEMENT__SUPER, null, msgs);
+ if (new_super != null)
+ msgs = ((InternalEObject)new_super).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SUPER_INVOCATION_STATEMENT__SUPER, null, msgs);
+ msgs = basicSet_super(new_super, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.SUPER_INVOCATION_STATEMENT__SUPER, new_super, new_super));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SUPER_INVOCATION_STATEMENT__SUPER:
+ return basicSet_super(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SUPER_INVOCATION_STATEMENT__SUPER:
+ return get_super();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SUPER_INVOCATION_STATEMENT__SUPER:
+ set_super((SuperInvocationExpression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SUPER_INVOCATION_STATEMENT__SUPER:
+ set_super((SuperInvocationExpression)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SUPER_INVOCATION_STATEMENT__SUPER:
+ return _super != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //SuperInvocationStatementImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SwitchCaseImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SwitchCaseImpl.java
new file mode 100644
index 00000000000..02c7b8b0b5c
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SwitchCaseImpl.java
@@ -0,0 +1,198 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.Expression;
+import org.eclipse.papyrus.alf.alf.SwitchCase;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Switch Case</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.SwitchCaseImpl#getExpression <em>Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SwitchCaseImpl extends MinimalEObjectImpl.Container implements SwitchCase
+{
+ /**
+ * The cached value of the '{@link #getExpression() <em>Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExpression()
+ * @generated
+ * @ordered
+ */
+ protected Expression expression;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SwitchCaseImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.SWITCH_CASE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Expression getExpression()
+ {
+ return expression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetExpression(Expression newExpression, NotificationChain msgs)
+ {
+ Expression oldExpression = expression;
+ expression = newExpression;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.SWITCH_CASE__EXPRESSION, oldExpression, newExpression);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExpression(Expression newExpression)
+ {
+ if (newExpression != expression)
+ {
+ NotificationChain msgs = null;
+ if (expression != null)
+ msgs = ((InternalEObject)expression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SWITCH_CASE__EXPRESSION, null, msgs);
+ if (newExpression != null)
+ msgs = ((InternalEObject)newExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SWITCH_CASE__EXPRESSION, null, msgs);
+ msgs = basicSetExpression(newExpression, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.SWITCH_CASE__EXPRESSION, newExpression, newExpression));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SWITCH_CASE__EXPRESSION:
+ return basicSetExpression(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SWITCH_CASE__EXPRESSION:
+ return getExpression();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SWITCH_CASE__EXPRESSION:
+ setExpression((Expression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SWITCH_CASE__EXPRESSION:
+ setExpression((Expression)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SWITCH_CASE__EXPRESSION:
+ return expression != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //SwitchCaseImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SwitchClauseImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SwitchClauseImpl.java
new file mode 100644
index 00000000000..e57c475dee4
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SwitchClauseImpl.java
@@ -0,0 +1,245 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.NonEmptyStatementSequence;
+import org.eclipse.papyrus.alf.alf.SwitchCase;
+import org.eclipse.papyrus.alf.alf.SwitchClause;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Switch Clause</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.SwitchClauseImpl#getSwitchCase <em>Switch Case</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.SwitchClauseImpl#getStatementSequence <em>Statement Sequence</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SwitchClauseImpl extends MinimalEObjectImpl.Container implements SwitchClause
+{
+ /**
+ * The cached value of the '{@link #getSwitchCase() <em>Switch Case</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSwitchCase()
+ * @generated
+ * @ordered
+ */
+ protected EList<SwitchCase> switchCase;
+
+ /**
+ * The cached value of the '{@link #getStatementSequence() <em>Statement Sequence</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStatementSequence()
+ * @generated
+ * @ordered
+ */
+ protected NonEmptyStatementSequence statementSequence;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SwitchClauseImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.SWITCH_CLAUSE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<SwitchCase> getSwitchCase()
+ {
+ if (switchCase == null)
+ {
+ switchCase = new EObjectContainmentEList<SwitchCase>(SwitchCase.class, this, AlfPackage.SWITCH_CLAUSE__SWITCH_CASE);
+ }
+ return switchCase;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NonEmptyStatementSequence getStatementSequence()
+ {
+ return statementSequence;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetStatementSequence(NonEmptyStatementSequence newStatementSequence, NotificationChain msgs)
+ {
+ NonEmptyStatementSequence oldStatementSequence = statementSequence;
+ statementSequence = newStatementSequence;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.SWITCH_CLAUSE__STATEMENT_SEQUENCE, oldStatementSequence, newStatementSequence);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStatementSequence(NonEmptyStatementSequence newStatementSequence)
+ {
+ if (newStatementSequence != statementSequence)
+ {
+ NotificationChain msgs = null;
+ if (statementSequence != null)
+ msgs = ((InternalEObject)statementSequence).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SWITCH_CLAUSE__STATEMENT_SEQUENCE, null, msgs);
+ if (newStatementSequence != null)
+ msgs = ((InternalEObject)newStatementSequence).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SWITCH_CLAUSE__STATEMENT_SEQUENCE, null, msgs);
+ msgs = basicSetStatementSequence(newStatementSequence, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.SWITCH_CLAUSE__STATEMENT_SEQUENCE, newStatementSequence, newStatementSequence));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SWITCH_CLAUSE__SWITCH_CASE:
+ return ((InternalEList<?>)getSwitchCase()).basicRemove(otherEnd, msgs);
+ case AlfPackage.SWITCH_CLAUSE__STATEMENT_SEQUENCE:
+ return basicSetStatementSequence(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SWITCH_CLAUSE__SWITCH_CASE:
+ return getSwitchCase();
+ case AlfPackage.SWITCH_CLAUSE__STATEMENT_SEQUENCE:
+ return getStatementSequence();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SWITCH_CLAUSE__SWITCH_CASE:
+ getSwitchCase().clear();
+ getSwitchCase().addAll((Collection<? extends SwitchCase>)newValue);
+ return;
+ case AlfPackage.SWITCH_CLAUSE__STATEMENT_SEQUENCE:
+ setStatementSequence((NonEmptyStatementSequence)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SWITCH_CLAUSE__SWITCH_CASE:
+ getSwitchCase().clear();
+ return;
+ case AlfPackage.SWITCH_CLAUSE__STATEMENT_SEQUENCE:
+ setStatementSequence((NonEmptyStatementSequence)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SWITCH_CLAUSE__SWITCH_CASE:
+ return switchCase != null && !switchCase.isEmpty();
+ case AlfPackage.SWITCH_CLAUSE__STATEMENT_SEQUENCE:
+ return statementSequence != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //SwitchClauseImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SwitchDefaultClauseImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SwitchDefaultClauseImpl.java
new file mode 100644
index 00000000000..3e46fd18e62
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SwitchDefaultClauseImpl.java
@@ -0,0 +1,198 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.NonEmptyStatementSequence;
+import org.eclipse.papyrus.alf.alf.SwitchDefaultClause;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Switch Default Clause</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.SwitchDefaultClauseImpl#getStatementSequence <em>Statement Sequence</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SwitchDefaultClauseImpl extends MinimalEObjectImpl.Container implements SwitchDefaultClause
+{
+ /**
+ * The cached value of the '{@link #getStatementSequence() <em>Statement Sequence</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStatementSequence()
+ * @generated
+ * @ordered
+ */
+ protected NonEmptyStatementSequence statementSequence;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SwitchDefaultClauseImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.SWITCH_DEFAULT_CLAUSE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NonEmptyStatementSequence getStatementSequence()
+ {
+ return statementSequence;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetStatementSequence(NonEmptyStatementSequence newStatementSequence, NotificationChain msgs)
+ {
+ NonEmptyStatementSequence oldStatementSequence = statementSequence;
+ statementSequence = newStatementSequence;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.SWITCH_DEFAULT_CLAUSE__STATEMENT_SEQUENCE, oldStatementSequence, newStatementSequence);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStatementSequence(NonEmptyStatementSequence newStatementSequence)
+ {
+ if (newStatementSequence != statementSequence)
+ {
+ NotificationChain msgs = null;
+ if (statementSequence != null)
+ msgs = ((InternalEObject)statementSequence).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SWITCH_DEFAULT_CLAUSE__STATEMENT_SEQUENCE, null, msgs);
+ if (newStatementSequence != null)
+ msgs = ((InternalEObject)newStatementSequence).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SWITCH_DEFAULT_CLAUSE__STATEMENT_SEQUENCE, null, msgs);
+ msgs = basicSetStatementSequence(newStatementSequence, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.SWITCH_DEFAULT_CLAUSE__STATEMENT_SEQUENCE, newStatementSequence, newStatementSequence));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SWITCH_DEFAULT_CLAUSE__STATEMENT_SEQUENCE:
+ return basicSetStatementSequence(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SWITCH_DEFAULT_CLAUSE__STATEMENT_SEQUENCE:
+ return getStatementSequence();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SWITCH_DEFAULT_CLAUSE__STATEMENT_SEQUENCE:
+ setStatementSequence((NonEmptyStatementSequence)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SWITCH_DEFAULT_CLAUSE__STATEMENT_SEQUENCE:
+ setStatementSequence((NonEmptyStatementSequence)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SWITCH_DEFAULT_CLAUSE__STATEMENT_SEQUENCE:
+ return statementSequence != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //SwitchDefaultClauseImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SwitchStatementImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SwitchStatementImpl.java
new file mode 100644
index 00000000000..4da47fcacc1
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/SwitchStatementImpl.java
@@ -0,0 +1,316 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.Expression;
+import org.eclipse.papyrus.alf.alf.SwitchClause;
+import org.eclipse.papyrus.alf.alf.SwitchDefaultClause;
+import org.eclipse.papyrus.alf.alf.SwitchStatement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Switch Statement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.SwitchStatementImpl#getExpression <em>Expression</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.SwitchStatementImpl#getSwitchClause <em>Switch Clause</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.SwitchStatementImpl#getDefaultClause <em>Default Clause</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SwitchStatementImpl extends StatementImpl implements SwitchStatement
+{
+ /**
+ * The cached value of the '{@link #getExpression() <em>Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExpression()
+ * @generated
+ * @ordered
+ */
+ protected Expression expression;
+
+ /**
+ * The cached value of the '{@link #getSwitchClause() <em>Switch Clause</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSwitchClause()
+ * @generated
+ * @ordered
+ */
+ protected EList<SwitchClause> switchClause;
+
+ /**
+ * The cached value of the '{@link #getDefaultClause() <em>Default Clause</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDefaultClause()
+ * @generated
+ * @ordered
+ */
+ protected SwitchDefaultClause defaultClause;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SwitchStatementImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.SWITCH_STATEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Expression getExpression()
+ {
+ return expression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetExpression(Expression newExpression, NotificationChain msgs)
+ {
+ Expression oldExpression = expression;
+ expression = newExpression;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.SWITCH_STATEMENT__EXPRESSION, oldExpression, newExpression);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExpression(Expression newExpression)
+ {
+ if (newExpression != expression)
+ {
+ NotificationChain msgs = null;
+ if (expression != null)
+ msgs = ((InternalEObject)expression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SWITCH_STATEMENT__EXPRESSION, null, msgs);
+ if (newExpression != null)
+ msgs = ((InternalEObject)newExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SWITCH_STATEMENT__EXPRESSION, null, msgs);
+ msgs = basicSetExpression(newExpression, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.SWITCH_STATEMENT__EXPRESSION, newExpression, newExpression));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<SwitchClause> getSwitchClause()
+ {
+ if (switchClause == null)
+ {
+ switchClause = new EObjectContainmentEList<SwitchClause>(SwitchClause.class, this, AlfPackage.SWITCH_STATEMENT__SWITCH_CLAUSE);
+ }
+ return switchClause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SwitchDefaultClause getDefaultClause()
+ {
+ return defaultClause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetDefaultClause(SwitchDefaultClause newDefaultClause, NotificationChain msgs)
+ {
+ SwitchDefaultClause oldDefaultClause = defaultClause;
+ defaultClause = newDefaultClause;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.SWITCH_STATEMENT__DEFAULT_CLAUSE, oldDefaultClause, newDefaultClause);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDefaultClause(SwitchDefaultClause newDefaultClause)
+ {
+ if (newDefaultClause != defaultClause)
+ {
+ NotificationChain msgs = null;
+ if (defaultClause != null)
+ msgs = ((InternalEObject)defaultClause).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SWITCH_STATEMENT__DEFAULT_CLAUSE, null, msgs);
+ if (newDefaultClause != null)
+ msgs = ((InternalEObject)newDefaultClause).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.SWITCH_STATEMENT__DEFAULT_CLAUSE, null, msgs);
+ msgs = basicSetDefaultClause(newDefaultClause, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.SWITCH_STATEMENT__DEFAULT_CLAUSE, newDefaultClause, newDefaultClause));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SWITCH_STATEMENT__EXPRESSION:
+ return basicSetExpression(null, msgs);
+ case AlfPackage.SWITCH_STATEMENT__SWITCH_CLAUSE:
+ return ((InternalEList<?>)getSwitchClause()).basicRemove(otherEnd, msgs);
+ case AlfPackage.SWITCH_STATEMENT__DEFAULT_CLAUSE:
+ return basicSetDefaultClause(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SWITCH_STATEMENT__EXPRESSION:
+ return getExpression();
+ case AlfPackage.SWITCH_STATEMENT__SWITCH_CLAUSE:
+ return getSwitchClause();
+ case AlfPackage.SWITCH_STATEMENT__DEFAULT_CLAUSE:
+ return getDefaultClause();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SWITCH_STATEMENT__EXPRESSION:
+ setExpression((Expression)newValue);
+ return;
+ case AlfPackage.SWITCH_STATEMENT__SWITCH_CLAUSE:
+ getSwitchClause().clear();
+ getSwitchClause().addAll((Collection<? extends SwitchClause>)newValue);
+ return;
+ case AlfPackage.SWITCH_STATEMENT__DEFAULT_CLAUSE:
+ setDefaultClause((SwitchDefaultClause)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SWITCH_STATEMENT__EXPRESSION:
+ setExpression((Expression)null);
+ return;
+ case AlfPackage.SWITCH_STATEMENT__SWITCH_CLAUSE:
+ getSwitchClause().clear();
+ return;
+ case AlfPackage.SWITCH_STATEMENT__DEFAULT_CLAUSE:
+ setDefaultClause((SwitchDefaultClause)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.SWITCH_STATEMENT__EXPRESSION:
+ return expression != null;
+ case AlfPackage.SWITCH_STATEMENT__SWITCH_CLAUSE:
+ return switchClause != null && !switchClause.isEmpty();
+ case AlfPackage.SWITCH_STATEMENT__DEFAULT_CLAUSE:
+ return defaultClause != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //SwitchStatementImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/TemplateBindingImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/TemplateBindingImpl.java
new file mode 100644
index 00000000000..4f451a9ba5d
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/TemplateBindingImpl.java
@@ -0,0 +1,171 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.NamedTemplateBinding;
+import org.eclipse.papyrus.alf.alf.TemplateBinding;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Template Binding</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.TemplateBindingImpl#getBindings <em>Bindings</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TemplateBindingImpl extends MinimalEObjectImpl.Container implements TemplateBinding
+{
+ /**
+ * The cached value of the '{@link #getBindings() <em>Bindings</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBindings()
+ * @generated
+ * @ordered
+ */
+ protected EList<NamedTemplateBinding> bindings;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TemplateBindingImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.TEMPLATE_BINDING;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<NamedTemplateBinding> getBindings()
+ {
+ if (bindings == null)
+ {
+ bindings = new EObjectContainmentEList<NamedTemplateBinding>(NamedTemplateBinding.class, this, AlfPackage.TEMPLATE_BINDING__BINDINGS);
+ }
+ return bindings;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.TEMPLATE_BINDING__BINDINGS:
+ return ((InternalEList<?>)getBindings()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.TEMPLATE_BINDING__BINDINGS:
+ return getBindings();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.TEMPLATE_BINDING__BINDINGS:
+ getBindings().clear();
+ getBindings().addAll((Collection<? extends NamedTemplateBinding>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.TEMPLATE_BINDING__BINDINGS:
+ getBindings().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.TEMPLATE_BINDING__BINDINGS:
+ return bindings != null && !bindings.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //TemplateBindingImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/TestImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/TestImpl.java
new file mode 100644
index 00000000000..b647c22d82b
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/TestImpl.java
@@ -0,0 +1,323 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.AssignmentCompletion;
+import org.eclipse.papyrus.alf.alf.Block;
+import org.eclipse.papyrus.alf.alf.Expression;
+import org.eclipse.papyrus.alf.alf.Statement;
+import org.eclipse.papyrus.alf.alf.Test;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Test</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.TestImpl#getExpression <em>Expression</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.TestImpl#getAssignExpression <em>Assign Expression</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.TestImpl#getStatements <em>Statements</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.TestImpl#getBlock <em>Block</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TestImpl extends MinimalEObjectImpl.Container implements Test
+{
+ /**
+ * The cached value of the '{@link #getExpression() <em>Expression</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExpression()
+ * @generated
+ * @ordered
+ */
+ protected EList<Expression> expression;
+
+ /**
+ * The cached value of the '{@link #getAssignExpression() <em>Assign Expression</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAssignExpression()
+ * @generated
+ * @ordered
+ */
+ protected EList<AssignmentCompletion> assignExpression;
+
+ /**
+ * The cached value of the '{@link #getStatements() <em>Statements</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStatements()
+ * @generated
+ * @ordered
+ */
+ protected EList<Statement> statements;
+
+ /**
+ * The cached value of the '{@link #getBlock() <em>Block</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBlock()
+ * @generated
+ * @ordered
+ */
+ protected Block block;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TestImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.TEST;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Expression> getExpression()
+ {
+ if (expression == null)
+ {
+ expression = new EObjectContainmentEList<Expression>(Expression.class, this, AlfPackage.TEST__EXPRESSION);
+ }
+ return expression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<AssignmentCompletion> getAssignExpression()
+ {
+ if (assignExpression == null)
+ {
+ assignExpression = new EObjectContainmentEList<AssignmentCompletion>(AssignmentCompletion.class, this, AlfPackage.TEST__ASSIGN_EXPRESSION);
+ }
+ return assignExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Statement> getStatements()
+ {
+ if (statements == null)
+ {
+ statements = new EObjectContainmentEList<Statement>(Statement.class, this, AlfPackage.TEST__STATEMENTS);
+ }
+ return statements;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Block getBlock()
+ {
+ return block;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetBlock(Block newBlock, NotificationChain msgs)
+ {
+ Block oldBlock = block;
+ block = newBlock;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.TEST__BLOCK, oldBlock, newBlock);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBlock(Block newBlock)
+ {
+ if (newBlock != block)
+ {
+ NotificationChain msgs = null;
+ if (block != null)
+ msgs = ((InternalEObject)block).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.TEST__BLOCK, null, msgs);
+ if (newBlock != null)
+ msgs = ((InternalEObject)newBlock).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.TEST__BLOCK, null, msgs);
+ msgs = basicSetBlock(newBlock, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.TEST__BLOCK, newBlock, newBlock));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.TEST__EXPRESSION:
+ return ((InternalEList<?>)getExpression()).basicRemove(otherEnd, msgs);
+ case AlfPackage.TEST__ASSIGN_EXPRESSION:
+ return ((InternalEList<?>)getAssignExpression()).basicRemove(otherEnd, msgs);
+ case AlfPackage.TEST__STATEMENTS:
+ return ((InternalEList<?>)getStatements()).basicRemove(otherEnd, msgs);
+ case AlfPackage.TEST__BLOCK:
+ return basicSetBlock(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.TEST__EXPRESSION:
+ return getExpression();
+ case AlfPackage.TEST__ASSIGN_EXPRESSION:
+ return getAssignExpression();
+ case AlfPackage.TEST__STATEMENTS:
+ return getStatements();
+ case AlfPackage.TEST__BLOCK:
+ return getBlock();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.TEST__EXPRESSION:
+ getExpression().clear();
+ getExpression().addAll((Collection<? extends Expression>)newValue);
+ return;
+ case AlfPackage.TEST__ASSIGN_EXPRESSION:
+ getAssignExpression().clear();
+ getAssignExpression().addAll((Collection<? extends AssignmentCompletion>)newValue);
+ return;
+ case AlfPackage.TEST__STATEMENTS:
+ getStatements().clear();
+ getStatements().addAll((Collection<? extends Statement>)newValue);
+ return;
+ case AlfPackage.TEST__BLOCK:
+ setBlock((Block)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.TEST__EXPRESSION:
+ getExpression().clear();
+ return;
+ case AlfPackage.TEST__ASSIGN_EXPRESSION:
+ getAssignExpression().clear();
+ return;
+ case AlfPackage.TEST__STATEMENTS:
+ getStatements().clear();
+ return;
+ case AlfPackage.TEST__BLOCK:
+ setBlock((Block)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.TEST__EXPRESSION:
+ return expression != null && !expression.isEmpty();
+ case AlfPackage.TEST__ASSIGN_EXPRESSION:
+ return assignExpression != null && !assignExpression.isEmpty();
+ case AlfPackage.TEST__STATEMENTS:
+ return statements != null && !statements.isEmpty();
+ case AlfPackage.TEST__BLOCK:
+ return block != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //TestImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ThisExpressionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ThisExpressionImpl.java
new file mode 100644
index 00000000000..301cd61b72b
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ThisExpressionImpl.java
@@ -0,0 +1,197 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.SuffixExpression;
+import org.eclipse.papyrus.alf.alf.ThisExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>This Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.ThisExpressionImpl#getSuffix <em>Suffix</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ThisExpressionImpl extends ValueSpecificationImpl implements ThisExpression
+{
+ /**
+ * The cached value of the '{@link #getSuffix() <em>Suffix</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSuffix()
+ * @generated
+ * @ordered
+ */
+ protected SuffixExpression suffix;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ThisExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.THIS_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SuffixExpression getSuffix()
+ {
+ return suffix;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSuffix(SuffixExpression newSuffix, NotificationChain msgs)
+ {
+ SuffixExpression oldSuffix = suffix;
+ suffix = newSuffix;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.THIS_EXPRESSION__SUFFIX, oldSuffix, newSuffix);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSuffix(SuffixExpression newSuffix)
+ {
+ if (newSuffix != suffix)
+ {
+ NotificationChain msgs = null;
+ if (suffix != null)
+ msgs = ((InternalEObject)suffix).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.THIS_EXPRESSION__SUFFIX, null, msgs);
+ if (newSuffix != null)
+ msgs = ((InternalEObject)newSuffix).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.THIS_EXPRESSION__SUFFIX, null, msgs);
+ msgs = basicSetSuffix(newSuffix, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.THIS_EXPRESSION__SUFFIX, newSuffix, newSuffix));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.THIS_EXPRESSION__SUFFIX:
+ return basicSetSuffix(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.THIS_EXPRESSION__SUFFIX:
+ return getSuffix();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.THIS_EXPRESSION__SUFFIX:
+ setSuffix((SuffixExpression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.THIS_EXPRESSION__SUFFIX:
+ setSuffix((SuffixExpression)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.THIS_EXPRESSION__SUFFIX:
+ return suffix != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ThisExpressionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ThisInvocationStatementImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ThisInvocationStatementImpl.java
new file mode 100644
index 00000000000..e7251e3b67e
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ThisInvocationStatementImpl.java
@@ -0,0 +1,269 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.AssignmentCompletion;
+import org.eclipse.papyrus.alf.alf.ThisExpression;
+import org.eclipse.papyrus.alf.alf.ThisInvocationStatement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>This Invocation Statement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.ThisInvocationStatementImpl#get_this <em>this</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.ThisInvocationStatementImpl#getAssignmentCompletion <em>Assignment Completion</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ThisInvocationStatementImpl extends StatementImpl implements ThisInvocationStatement
+{
+ /**
+ * The cached value of the '{@link #get_this() <em>this</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #get_this()
+ * @generated
+ * @ordered
+ */
+ protected ThisExpression _this;
+
+ /**
+ * The cached value of the '{@link #getAssignmentCompletion() <em>Assignment Completion</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAssignmentCompletion()
+ * @generated
+ * @ordered
+ */
+ protected AssignmentCompletion assignmentCompletion;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ThisInvocationStatementImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.THIS_INVOCATION_STATEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ThisExpression get_this()
+ {
+ return _this;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSet_this(ThisExpression new_this, NotificationChain msgs)
+ {
+ ThisExpression old_this = _this;
+ _this = new_this;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.THIS_INVOCATION_STATEMENT__THIS, old_this, new_this);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void set_this(ThisExpression new_this)
+ {
+ if (new_this != _this)
+ {
+ NotificationChain msgs = null;
+ if (_this != null)
+ msgs = ((InternalEObject)_this).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.THIS_INVOCATION_STATEMENT__THIS, null, msgs);
+ if (new_this != null)
+ msgs = ((InternalEObject)new_this).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.THIS_INVOCATION_STATEMENT__THIS, null, msgs);
+ msgs = basicSet_this(new_this, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.THIS_INVOCATION_STATEMENT__THIS, new_this, new_this));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AssignmentCompletion getAssignmentCompletion()
+ {
+ return assignmentCompletion;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetAssignmentCompletion(AssignmentCompletion newAssignmentCompletion, NotificationChain msgs)
+ {
+ AssignmentCompletion oldAssignmentCompletion = assignmentCompletion;
+ assignmentCompletion = newAssignmentCompletion;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.THIS_INVOCATION_STATEMENT__ASSIGNMENT_COMPLETION, oldAssignmentCompletion, newAssignmentCompletion);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAssignmentCompletion(AssignmentCompletion newAssignmentCompletion)
+ {
+ if (newAssignmentCompletion != assignmentCompletion)
+ {
+ NotificationChain msgs = null;
+ if (assignmentCompletion != null)
+ msgs = ((InternalEObject)assignmentCompletion).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.THIS_INVOCATION_STATEMENT__ASSIGNMENT_COMPLETION, null, msgs);
+ if (newAssignmentCompletion != null)
+ msgs = ((InternalEObject)newAssignmentCompletion).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.THIS_INVOCATION_STATEMENT__ASSIGNMENT_COMPLETION, null, msgs);
+ msgs = basicSetAssignmentCompletion(newAssignmentCompletion, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.THIS_INVOCATION_STATEMENT__ASSIGNMENT_COMPLETION, newAssignmentCompletion, newAssignmentCompletion));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.THIS_INVOCATION_STATEMENT__THIS:
+ return basicSet_this(null, msgs);
+ case AlfPackage.THIS_INVOCATION_STATEMENT__ASSIGNMENT_COMPLETION:
+ return basicSetAssignmentCompletion(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.THIS_INVOCATION_STATEMENT__THIS:
+ return get_this();
+ case AlfPackage.THIS_INVOCATION_STATEMENT__ASSIGNMENT_COMPLETION:
+ return getAssignmentCompletion();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.THIS_INVOCATION_STATEMENT__THIS:
+ set_this((ThisExpression)newValue);
+ return;
+ case AlfPackage.THIS_INVOCATION_STATEMENT__ASSIGNMENT_COMPLETION:
+ setAssignmentCompletion((AssignmentCompletion)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.THIS_INVOCATION_STATEMENT__THIS:
+ set_this((ThisExpression)null);
+ return;
+ case AlfPackage.THIS_INVOCATION_STATEMENT__ASSIGNMENT_COMPLETION:
+ setAssignmentCompletion((AssignmentCompletion)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.THIS_INVOCATION_STATEMENT__THIS:
+ return _this != null;
+ case AlfPackage.THIS_INVOCATION_STATEMENT__ASSIGNMENT_COMPLETION:
+ return assignmentCompletion != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ThisInvocationStatementImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/TupleElementImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/TupleElementImpl.java
new file mode 100644
index 00000000000..95a7db88823
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/TupleElementImpl.java
@@ -0,0 +1,198 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.Expression;
+import org.eclipse.papyrus.alf.alf.TupleElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Tuple Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.TupleElementImpl#getArgument <em>Argument</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TupleElementImpl extends MinimalEObjectImpl.Container implements TupleElement
+{
+ /**
+ * The cached value of the '{@link #getArgument() <em>Argument</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getArgument()
+ * @generated
+ * @ordered
+ */
+ protected Expression argument;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TupleElementImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.TUPLE_ELEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Expression getArgument()
+ {
+ return argument;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetArgument(Expression newArgument, NotificationChain msgs)
+ {
+ Expression oldArgument = argument;
+ argument = newArgument;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.TUPLE_ELEMENT__ARGUMENT, oldArgument, newArgument);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setArgument(Expression newArgument)
+ {
+ if (newArgument != argument)
+ {
+ NotificationChain msgs = null;
+ if (argument != null)
+ msgs = ((InternalEObject)argument).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.TUPLE_ELEMENT__ARGUMENT, null, msgs);
+ if (newArgument != null)
+ msgs = ((InternalEObject)newArgument).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.TUPLE_ELEMENT__ARGUMENT, null, msgs);
+ msgs = basicSetArgument(newArgument, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.TUPLE_ELEMENT__ARGUMENT, newArgument, newArgument));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.TUPLE_ELEMENT__ARGUMENT:
+ return basicSetArgument(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.TUPLE_ELEMENT__ARGUMENT:
+ return getArgument();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.TUPLE_ELEMENT__ARGUMENT:
+ setArgument((Expression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.TUPLE_ELEMENT__ARGUMENT:
+ setArgument((Expression)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.TUPLE_ELEMENT__ARGUMENT:
+ return argument != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //TupleElementImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/TupleImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/TupleImpl.java
new file mode 100644
index 00000000000..5065cb2920a
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/TupleImpl.java
@@ -0,0 +1,171 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.Tuple;
+import org.eclipse.papyrus.alf.alf.TupleElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Tuple</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.TupleImpl#getTupleElements <em>Tuple Elements</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TupleImpl extends MinimalEObjectImpl.Container implements Tuple
+{
+ /**
+ * The cached value of the '{@link #getTupleElements() <em>Tuple Elements</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTupleElements()
+ * @generated
+ * @ordered
+ */
+ protected EList<TupleElement> tupleElements;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TupleImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.TUPLE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<TupleElement> getTupleElements()
+ {
+ if (tupleElements == null)
+ {
+ tupleElements = new EObjectContainmentEList<TupleElement>(TupleElement.class, this, AlfPackage.TUPLE__TUPLE_ELEMENTS);
+ }
+ return tupleElements;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.TUPLE__TUPLE_ELEMENTS:
+ return ((InternalEList<?>)getTupleElements()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.TUPLE__TUPLE_ELEMENTS:
+ return getTupleElements();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.TUPLE__TUPLE_ELEMENTS:
+ getTupleElements().clear();
+ getTupleElements().addAll((Collection<? extends TupleElement>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.TUPLE__TUPLE_ELEMENTS:
+ getTupleElements().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.TUPLE__TUPLE_ELEMENTS:
+ return tupleElements != null && !tupleElements.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //TupleImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/UNLIMITED_LITERALImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/UNLIMITED_LITERALImpl.java
new file mode 100644
index 00000000000..c6164f574bf
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/UNLIMITED_LITERALImpl.java
@@ -0,0 +1,46 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.UNLIMITED_LITERAL;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>UNLIMITED LITERAL</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class UNLIMITED_LITERALImpl extends NUMBER_LITERALImpl implements UNLIMITED_LITERAL
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected UNLIMITED_LITERALImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.UNLIMITED_LITERAL;
+ }
+
+} //UNLIMITED_LITERALImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/UnaryExpressionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/UnaryExpressionImpl.java
new file mode 100644
index 00000000000..55d780b2772
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/UnaryExpressionImpl.java
@@ -0,0 +1,269 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.PrimaryExpression;
+import org.eclipse.papyrus.alf.alf.UnaryExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Unary Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.UnaryExpressionImpl#getOp <em>Op</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.UnaryExpressionImpl#getExp <em>Exp</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class UnaryExpressionImpl extends MinimalEObjectImpl.Container implements UnaryExpression
+{
+ /**
+ * The default value of the '{@link #getOp() <em>Op</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOp()
+ * @generated
+ * @ordered
+ */
+ protected static final String OP_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getOp() <em>Op</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOp()
+ * @generated
+ * @ordered
+ */
+ protected String op = OP_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getExp() <em>Exp</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExp()
+ * @generated
+ * @ordered
+ */
+ protected PrimaryExpression exp;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected UnaryExpressionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.UNARY_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getOp()
+ {
+ return op;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOp(String newOp)
+ {
+ String oldOp = op;
+ op = newOp;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.UNARY_EXPRESSION__OP, oldOp, op));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PrimaryExpression getExp()
+ {
+ return exp;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetExp(PrimaryExpression newExp, NotificationChain msgs)
+ {
+ PrimaryExpression oldExp = exp;
+ exp = newExp;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.UNARY_EXPRESSION__EXP, oldExp, newExp);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExp(PrimaryExpression newExp)
+ {
+ if (newExp != exp)
+ {
+ NotificationChain msgs = null;
+ if (exp != null)
+ msgs = ((InternalEObject)exp).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.UNARY_EXPRESSION__EXP, null, msgs);
+ if (newExp != null)
+ msgs = ((InternalEObject)newExp).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.UNARY_EXPRESSION__EXP, null, msgs);
+ msgs = basicSetExp(newExp, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.UNARY_EXPRESSION__EXP, newExp, newExp));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.UNARY_EXPRESSION__EXP:
+ return basicSetExp(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.UNARY_EXPRESSION__OP:
+ return getOp();
+ case AlfPackage.UNARY_EXPRESSION__EXP:
+ return getExp();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.UNARY_EXPRESSION__OP:
+ setOp((String)newValue);
+ return;
+ case AlfPackage.UNARY_EXPRESSION__EXP:
+ setExp((PrimaryExpression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.UNARY_EXPRESSION__OP:
+ setOp(OP_EDEFAULT);
+ return;
+ case AlfPackage.UNARY_EXPRESSION__EXP:
+ setExp((PrimaryExpression)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.UNARY_EXPRESSION__OP:
+ return OP_EDEFAULT == null ? op != null : !OP_EDEFAULT.equals(op);
+ case AlfPackage.UNARY_EXPRESSION__EXP:
+ return exp != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (op: ");
+ result.append(op);
+ result.append(')');
+ return result.toString();
+ }
+
+} //UnaryExpressionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/UnqualifiedNameImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/UnqualifiedNameImpl.java
new file mode 100644
index 00000000000..2bfaf8c5644
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/UnqualifiedNameImpl.java
@@ -0,0 +1,269 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.TemplateBinding;
+import org.eclipse.papyrus.alf.alf.UnqualifiedName;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Unqualified Name</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.UnqualifiedNameImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.UnqualifiedNameImpl#getTemplateBinding <em>Template Binding</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class UnqualifiedNameImpl extends MinimalEObjectImpl.Container implements UnqualifiedName
+{
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getTemplateBinding() <em>Template Binding</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTemplateBinding()
+ * @generated
+ * @ordered
+ */
+ protected TemplateBinding templateBinding;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected UnqualifiedNameImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.UNQUALIFIED_NAME;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName)
+ {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.UNQUALIFIED_NAME__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateBinding getTemplateBinding()
+ {
+ return templateBinding;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetTemplateBinding(TemplateBinding newTemplateBinding, NotificationChain msgs)
+ {
+ TemplateBinding oldTemplateBinding = templateBinding;
+ templateBinding = newTemplateBinding;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.UNQUALIFIED_NAME__TEMPLATE_BINDING, oldTemplateBinding, newTemplateBinding);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTemplateBinding(TemplateBinding newTemplateBinding)
+ {
+ if (newTemplateBinding != templateBinding)
+ {
+ NotificationChain msgs = null;
+ if (templateBinding != null)
+ msgs = ((InternalEObject)templateBinding).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.UNQUALIFIED_NAME__TEMPLATE_BINDING, null, msgs);
+ if (newTemplateBinding != null)
+ msgs = ((InternalEObject)newTemplateBinding).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.UNQUALIFIED_NAME__TEMPLATE_BINDING, null, msgs);
+ msgs = basicSetTemplateBinding(newTemplateBinding, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.UNQUALIFIED_NAME__TEMPLATE_BINDING, newTemplateBinding, newTemplateBinding));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.UNQUALIFIED_NAME__TEMPLATE_BINDING:
+ return basicSetTemplateBinding(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.UNQUALIFIED_NAME__NAME:
+ return getName();
+ case AlfPackage.UNQUALIFIED_NAME__TEMPLATE_BINDING:
+ return getTemplateBinding();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.UNQUALIFIED_NAME__NAME:
+ setName((String)newValue);
+ return;
+ case AlfPackage.UNQUALIFIED_NAME__TEMPLATE_BINDING:
+ setTemplateBinding((TemplateBinding)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.UNQUALIFIED_NAME__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case AlfPackage.UNQUALIFIED_NAME__TEMPLATE_BINDING:
+ setTemplateBinding((TemplateBinding)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.UNQUALIFIED_NAME__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case AlfPackage.UNQUALIFIED_NAME__TEMPLATE_BINDING:
+ return templateBinding != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} //UnqualifiedNameImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ValueSpecificationImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ValueSpecificationImpl.java
new file mode 100644
index 00000000000..0fe2d112c55
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/ValueSpecificationImpl.java
@@ -0,0 +1,48 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.ValueSpecification;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Value Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class ValueSpecificationImpl extends MinimalEObjectImpl.Container implements ValueSpecification
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ValueSpecificationImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.VALUE_SPECIFICATION;
+ }
+
+} //ValueSpecificationImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/VariableDeclarationCompletionImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/VariableDeclarationCompletionImpl.java
new file mode 100644
index 00000000000..a6bca30dc20
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/VariableDeclarationCompletionImpl.java
@@ -0,0 +1,325 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.AssignmentCompletion;
+import org.eclipse.papyrus.alf.alf.VariableDeclarationCompletion;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Variable Declaration Completion</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.VariableDeclarationCompletionImpl#isMultiplicityIndicator <em>Multiplicity Indicator</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.VariableDeclarationCompletionImpl#getVariableName <em>Variable Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.VariableDeclarationCompletionImpl#getInitValue <em>Init Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class VariableDeclarationCompletionImpl extends MinimalEObjectImpl.Container implements VariableDeclarationCompletion
+{
+ /**
+ * The default value of the '{@link #isMultiplicityIndicator() <em>Multiplicity Indicator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isMultiplicityIndicator()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean MULTIPLICITY_INDICATOR_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isMultiplicityIndicator() <em>Multiplicity Indicator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isMultiplicityIndicator()
+ * @generated
+ * @ordered
+ */
+ protected boolean multiplicityIndicator = MULTIPLICITY_INDICATOR_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getVariableName() <em>Variable Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVariableName()
+ * @generated
+ * @ordered
+ */
+ protected static final String VARIABLE_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getVariableName() <em>Variable Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVariableName()
+ * @generated
+ * @ordered
+ */
+ protected String variableName = VARIABLE_NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getInitValue() <em>Init Value</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInitValue()
+ * @generated
+ * @ordered
+ */
+ protected AssignmentCompletion initValue;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected VariableDeclarationCompletionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.VARIABLE_DECLARATION_COMPLETION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isMultiplicityIndicator()
+ {
+ return multiplicityIndicator;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMultiplicityIndicator(boolean newMultiplicityIndicator)
+ {
+ boolean oldMultiplicityIndicator = multiplicityIndicator;
+ multiplicityIndicator = newMultiplicityIndicator;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.VARIABLE_DECLARATION_COMPLETION__MULTIPLICITY_INDICATOR, oldMultiplicityIndicator, multiplicityIndicator));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getVariableName()
+ {
+ return variableName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVariableName(String newVariableName)
+ {
+ String oldVariableName = variableName;
+ variableName = newVariableName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.VARIABLE_DECLARATION_COMPLETION__VARIABLE_NAME, oldVariableName, variableName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AssignmentCompletion getInitValue()
+ {
+ return initValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetInitValue(AssignmentCompletion newInitValue, NotificationChain msgs)
+ {
+ AssignmentCompletion oldInitValue = initValue;
+ initValue = newInitValue;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.VARIABLE_DECLARATION_COMPLETION__INIT_VALUE, oldInitValue, newInitValue);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInitValue(AssignmentCompletion newInitValue)
+ {
+ if (newInitValue != initValue)
+ {
+ NotificationChain msgs = null;
+ if (initValue != null)
+ msgs = ((InternalEObject)initValue).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.VARIABLE_DECLARATION_COMPLETION__INIT_VALUE, null, msgs);
+ if (newInitValue != null)
+ msgs = ((InternalEObject)newInitValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.VARIABLE_DECLARATION_COMPLETION__INIT_VALUE, null, msgs);
+ msgs = basicSetInitValue(newInitValue, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.VARIABLE_DECLARATION_COMPLETION__INIT_VALUE, newInitValue, newInitValue));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.VARIABLE_DECLARATION_COMPLETION__INIT_VALUE:
+ return basicSetInitValue(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.VARIABLE_DECLARATION_COMPLETION__MULTIPLICITY_INDICATOR:
+ return isMultiplicityIndicator();
+ case AlfPackage.VARIABLE_DECLARATION_COMPLETION__VARIABLE_NAME:
+ return getVariableName();
+ case AlfPackage.VARIABLE_DECLARATION_COMPLETION__INIT_VALUE:
+ return getInitValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.VARIABLE_DECLARATION_COMPLETION__MULTIPLICITY_INDICATOR:
+ setMultiplicityIndicator((Boolean)newValue);
+ return;
+ case AlfPackage.VARIABLE_DECLARATION_COMPLETION__VARIABLE_NAME:
+ setVariableName((String)newValue);
+ return;
+ case AlfPackage.VARIABLE_DECLARATION_COMPLETION__INIT_VALUE:
+ setInitValue((AssignmentCompletion)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.VARIABLE_DECLARATION_COMPLETION__MULTIPLICITY_INDICATOR:
+ setMultiplicityIndicator(MULTIPLICITY_INDICATOR_EDEFAULT);
+ return;
+ case AlfPackage.VARIABLE_DECLARATION_COMPLETION__VARIABLE_NAME:
+ setVariableName(VARIABLE_NAME_EDEFAULT);
+ return;
+ case AlfPackage.VARIABLE_DECLARATION_COMPLETION__INIT_VALUE:
+ setInitValue((AssignmentCompletion)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.VARIABLE_DECLARATION_COMPLETION__MULTIPLICITY_INDICATOR:
+ return multiplicityIndicator != MULTIPLICITY_INDICATOR_EDEFAULT;
+ case AlfPackage.VARIABLE_DECLARATION_COMPLETION__VARIABLE_NAME:
+ return VARIABLE_NAME_EDEFAULT == null ? variableName != null : !VARIABLE_NAME_EDEFAULT.equals(variableName);
+ case AlfPackage.VARIABLE_DECLARATION_COMPLETION__INIT_VALUE:
+ return initValue != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (multiplicityIndicator: ");
+ result.append(multiplicityIndicator);
+ result.append(", variableName: ");
+ result.append(variableName);
+ result.append(')');
+ return result.toString();
+ }
+
+} //VariableDeclarationCompletionImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/WhileStatementImpl.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/WhileStatementImpl.java
new file mode 100644
index 00000000000..481768e8718
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/impl/WhileStatementImpl.java
@@ -0,0 +1,269 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.Block;
+import org.eclipse.papyrus.alf.alf.Expression;
+import org.eclipse.papyrus.alf.alf.WhileStatement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>While Statement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.WhileStatementImpl#getCondition <em>Condition</em>}</li>
+ * <li>{@link org.eclipse.papyrus.alf.alf.impl.WhileStatementImpl#getBlock <em>Block</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class WhileStatementImpl extends StatementImpl implements WhileStatement
+{
+ /**
+ * The cached value of the '{@link #getCondition() <em>Condition</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCondition()
+ * @generated
+ * @ordered
+ */
+ protected Expression condition;
+
+ /**
+ * The cached value of the '{@link #getBlock() <em>Block</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBlock()
+ * @generated
+ * @ordered
+ */
+ protected Block block;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected WhileStatementImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return AlfPackage.Literals.WHILE_STATEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Expression getCondition()
+ {
+ return condition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetCondition(Expression newCondition, NotificationChain msgs)
+ {
+ Expression oldCondition = condition;
+ condition = newCondition;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.WHILE_STATEMENT__CONDITION, oldCondition, newCondition);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCondition(Expression newCondition)
+ {
+ if (newCondition != condition)
+ {
+ NotificationChain msgs = null;
+ if (condition != null)
+ msgs = ((InternalEObject)condition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.WHILE_STATEMENT__CONDITION, null, msgs);
+ if (newCondition != null)
+ msgs = ((InternalEObject)newCondition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.WHILE_STATEMENT__CONDITION, null, msgs);
+ msgs = basicSetCondition(newCondition, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.WHILE_STATEMENT__CONDITION, newCondition, newCondition));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Block getBlock()
+ {
+ return block;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetBlock(Block newBlock, NotificationChain msgs)
+ {
+ Block oldBlock = block;
+ block = newBlock;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlfPackage.WHILE_STATEMENT__BLOCK, oldBlock, newBlock);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBlock(Block newBlock)
+ {
+ if (newBlock != block)
+ {
+ NotificationChain msgs = null;
+ if (block != null)
+ msgs = ((InternalEObject)block).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlfPackage.WHILE_STATEMENT__BLOCK, null, msgs);
+ if (newBlock != null)
+ msgs = ((InternalEObject)newBlock).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlfPackage.WHILE_STATEMENT__BLOCK, null, msgs);
+ msgs = basicSetBlock(newBlock, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AlfPackage.WHILE_STATEMENT__BLOCK, newBlock, newBlock));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.WHILE_STATEMENT__CONDITION:
+ return basicSetCondition(null, msgs);
+ case AlfPackage.WHILE_STATEMENT__BLOCK:
+ return basicSetBlock(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.WHILE_STATEMENT__CONDITION:
+ return getCondition();
+ case AlfPackage.WHILE_STATEMENT__BLOCK:
+ return getBlock();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.WHILE_STATEMENT__CONDITION:
+ setCondition((Expression)newValue);
+ return;
+ case AlfPackage.WHILE_STATEMENT__BLOCK:
+ setBlock((Block)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.WHILE_STATEMENT__CONDITION:
+ setCondition((Expression)null);
+ return;
+ case AlfPackage.WHILE_STATEMENT__BLOCK:
+ setBlock((Block)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case AlfPackage.WHILE_STATEMENT__CONDITION:
+ return condition != null;
+ case AlfPackage.WHILE_STATEMENT__BLOCK:
+ return block != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //WhileStatementImpl
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/util/AlfAdapterFactory.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/util/AlfAdapterFactory.java
new file mode 100644
index 00000000000..e5d6a2a5393
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/util/AlfAdapterFactory.java
@@ -0,0 +1,2156 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.alf.alf.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage
+ * @generated
+ */
+public class AlfAdapterFactory extends AdapterFactoryImpl
+{
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static AlfPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AlfAdapterFactory()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = AlfPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object)
+ {
+ if (object == modelPackage)
+ {
+ return true;
+ }
+ if (object instanceof EObject)
+ {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AlfSwitch<Adapter> modelSwitch =
+ new AlfSwitch<Adapter>()
+ {
+ @Override
+ public Adapter caseTest(Test object)
+ {
+ return createTestAdapter();
+ }
+ @Override
+ public Adapter caseLITERAL(LITERAL object)
+ {
+ return createLITERALAdapter();
+ }
+ @Override
+ public Adapter caseBOOLEAN_LITERAL(BOOLEAN_LITERAL object)
+ {
+ return createBOOLEAN_LITERALAdapter();
+ }
+ @Override
+ public Adapter caseNUMBER_LITERAL(NUMBER_LITERAL object)
+ {
+ return createNUMBER_LITERALAdapter();
+ }
+ @Override
+ public Adapter caseINTEGER_LITERAL(INTEGER_LITERAL object)
+ {
+ return createINTEGER_LITERALAdapter();
+ }
+ @Override
+ public Adapter caseUNLIMITED_LITERAL(UNLIMITED_LITERAL object)
+ {
+ return createUNLIMITED_LITERALAdapter();
+ }
+ @Override
+ public Adapter caseSTRING_LITERAL(STRING_LITERAL object)
+ {
+ return createSTRING_LITERALAdapter();
+ }
+ @Override
+ public Adapter caseNameExpression(NameExpression object)
+ {
+ return createNameExpressionAdapter();
+ }
+ @Override
+ public Adapter caseQualifiedNamePath(QualifiedNamePath object)
+ {
+ return createQualifiedNamePathAdapter();
+ }
+ @Override
+ public Adapter caseUnqualifiedName(UnqualifiedName object)
+ {
+ return createUnqualifiedNameAdapter();
+ }
+ @Override
+ public Adapter caseTemplateBinding(TemplateBinding object)
+ {
+ return createTemplateBindingAdapter();
+ }
+ @Override
+ public Adapter caseNamedTemplateBinding(NamedTemplateBinding object)
+ {
+ return createNamedTemplateBindingAdapter();
+ }
+ @Override
+ public Adapter caseQualifiedNameWithBinding(QualifiedNameWithBinding object)
+ {
+ return createQualifiedNameWithBindingAdapter();
+ }
+ @Override
+ public Adapter caseTuple(Tuple object)
+ {
+ return createTupleAdapter();
+ }
+ @Override
+ public Adapter caseTupleElement(TupleElement object)
+ {
+ return createTupleElementAdapter();
+ }
+ @Override
+ public Adapter caseExpression(Expression object)
+ {
+ return createExpressionAdapter();
+ }
+ @Override
+ public Adapter caseConditionalTestExpression(ConditionalTestExpression object)
+ {
+ return createConditionalTestExpressionAdapter();
+ }
+ @Override
+ public Adapter caseConditionalOrExpression(ConditionalOrExpression object)
+ {
+ return createConditionalOrExpressionAdapter();
+ }
+ @Override
+ public Adapter caseConditionalAndExpression(ConditionalAndExpression object)
+ {
+ return createConditionalAndExpressionAdapter();
+ }
+ @Override
+ public Adapter caseInclusiveOrExpression(InclusiveOrExpression object)
+ {
+ return createInclusiveOrExpressionAdapter();
+ }
+ @Override
+ public Adapter caseExclusiveOrExpression(ExclusiveOrExpression object)
+ {
+ return createExclusiveOrExpressionAdapter();
+ }
+ @Override
+ public Adapter caseAndExpression(AndExpression object)
+ {
+ return createAndExpressionAdapter();
+ }
+ @Override
+ public Adapter caseEqualityExpression(EqualityExpression object)
+ {
+ return createEqualityExpressionAdapter();
+ }
+ @Override
+ public Adapter caseClassificationExpression(ClassificationExpression object)
+ {
+ return createClassificationExpressionAdapter();
+ }
+ @Override
+ public Adapter caseRelationalExpression(RelationalExpression object)
+ {
+ return createRelationalExpressionAdapter();
+ }
+ @Override
+ public Adapter caseShiftExpression(ShiftExpression object)
+ {
+ return createShiftExpressionAdapter();
+ }
+ @Override
+ public Adapter caseAdditiveExpression(AdditiveExpression object)
+ {
+ return createAdditiveExpressionAdapter();
+ }
+ @Override
+ public Adapter caseMultiplicativeExpression(MultiplicativeExpression object)
+ {
+ return createMultiplicativeExpressionAdapter();
+ }
+ @Override
+ public Adapter caseUnaryExpression(UnaryExpression object)
+ {
+ return createUnaryExpressionAdapter();
+ }
+ @Override
+ public Adapter casePrimaryExpression(PrimaryExpression object)
+ {
+ return createPrimaryExpressionAdapter();
+ }
+ @Override
+ public Adapter caseSuffixExpression(SuffixExpression object)
+ {
+ return createSuffixExpressionAdapter();
+ }
+ @Override
+ public Adapter caseOperationCallExpression(OperationCallExpression object)
+ {
+ return createOperationCallExpressionAdapter();
+ }
+ @Override
+ public Adapter casePropertyCallExpression(PropertyCallExpression object)
+ {
+ return createPropertyCallExpressionAdapter();
+ }
+ @Override
+ public Adapter caseLinkOperationExpression(LinkOperationExpression object)
+ {
+ return createLinkOperationExpressionAdapter();
+ }
+ @Override
+ public Adapter caseLinkOperationTuple(LinkOperationTuple object)
+ {
+ return createLinkOperationTupleAdapter();
+ }
+ @Override
+ public Adapter caseLinkOperationTupleElement(LinkOperationTupleElement object)
+ {
+ return createLinkOperationTupleElementAdapter();
+ }
+ @Override
+ public Adapter caseSequenceOperationExpression(SequenceOperationExpression object)
+ {
+ return createSequenceOperationExpressionAdapter();
+ }
+ @Override
+ public Adapter caseSequenceReductionExpression(SequenceReductionExpression object)
+ {
+ return createSequenceReductionExpressionAdapter();
+ }
+ @Override
+ public Adapter caseSequenceExpansionExpression(SequenceExpansionExpression object)
+ {
+ return createSequenceExpansionExpressionAdapter();
+ }
+ @Override
+ public Adapter caseSelectOrRejectOperation(SelectOrRejectOperation object)
+ {
+ return createSelectOrRejectOperationAdapter();
+ }
+ @Override
+ public Adapter caseCollectOrIterateOperation(CollectOrIterateOperation object)
+ {
+ return createCollectOrIterateOperationAdapter();
+ }
+ @Override
+ public Adapter caseForAllOrExistsOrOneOperation(ForAllOrExistsOrOneOperation object)
+ {
+ return createForAllOrExistsOrOneOperationAdapter();
+ }
+ @Override
+ public Adapter caseIsUniqueOperation(IsUniqueOperation object)
+ {
+ return createIsUniqueOperationAdapter();
+ }
+ @Override
+ public Adapter caseValueSpecification(ValueSpecification object)
+ {
+ return createValueSpecificationAdapter();
+ }
+ @Override
+ public Adapter caseNonLiteralValueSpecification(NonLiteralValueSpecification object)
+ {
+ return createNonLiteralValueSpecificationAdapter();
+ }
+ @Override
+ public Adapter caseParenthesizedExpression(ParenthesizedExpression object)
+ {
+ return createParenthesizedExpressionAdapter();
+ }
+ @Override
+ public Adapter caseNullExpression(NullExpression object)
+ {
+ return createNullExpressionAdapter();
+ }
+ @Override
+ public Adapter caseThisExpression(ThisExpression object)
+ {
+ return createThisExpressionAdapter();
+ }
+ @Override
+ public Adapter caseSuperInvocationExpression(SuperInvocationExpression object)
+ {
+ return createSuperInvocationExpressionAdapter();
+ }
+ @Override
+ public Adapter caseInstanceCreationExpression(InstanceCreationExpression object)
+ {
+ return createInstanceCreationExpressionAdapter();
+ }
+ @Override
+ public Adapter caseInstanceCreationTuple(InstanceCreationTuple object)
+ {
+ return createInstanceCreationTupleAdapter();
+ }
+ @Override
+ public Adapter caseInstanceCreationTupleElement(InstanceCreationTupleElement object)
+ {
+ return createInstanceCreationTupleElementAdapter();
+ }
+ @Override
+ public Adapter caseSequenceConstructionOrAccessCompletion(SequenceConstructionOrAccessCompletion object)
+ {
+ return createSequenceConstructionOrAccessCompletionAdapter();
+ }
+ @Override
+ public Adapter caseAccessCompletion(AccessCompletion object)
+ {
+ return createAccessCompletionAdapter();
+ }
+ @Override
+ public Adapter casePartialSequenceConstructionCompletion(PartialSequenceConstructionCompletion object)
+ {
+ return createPartialSequenceConstructionCompletionAdapter();
+ }
+ @Override
+ public Adapter caseSequenceConstructionExpression(SequenceConstructionExpression object)
+ {
+ return createSequenceConstructionExpressionAdapter();
+ }
+ @Override
+ public Adapter caseSequenceElement(SequenceElement object)
+ {
+ return createSequenceElementAdapter();
+ }
+ @Override
+ public Adapter caseClassExtentExpression(ClassExtentExpression object)
+ {
+ return createClassExtentExpressionAdapter();
+ }
+ @Override
+ public Adapter caseBlock(Block object)
+ {
+ return createBlockAdapter();
+ }
+ @Override
+ public Adapter caseStatementSequence(StatementSequence object)
+ {
+ return createStatementSequenceAdapter();
+ }
+ @Override
+ public Adapter caseDocumentedStatement(DocumentedStatement object)
+ {
+ return createDocumentedStatementAdapter();
+ }
+ @Override
+ public Adapter caseInlineStatement(InlineStatement object)
+ {
+ return createInlineStatementAdapter();
+ }
+ @Override
+ public Adapter caseAnnotatedStatement(AnnotatedStatement object)
+ {
+ return createAnnotatedStatementAdapter();
+ }
+ @Override
+ public Adapter caseStatement(Statement object)
+ {
+ return createStatementAdapter();
+ }
+ @Override
+ public Adapter caseAnnotation(Annotation object)
+ {
+ return createAnnotationAdapter();
+ }
+ @Override
+ public Adapter caseBlockStatement(BlockStatement object)
+ {
+ return createBlockStatementAdapter();
+ }
+ @Override
+ public Adapter caseEmptyStatement(EmptyStatement object)
+ {
+ return createEmptyStatementAdapter();
+ }
+ @Override
+ public Adapter caseLocalNameDeclarationStatement(LocalNameDeclarationStatement object)
+ {
+ return createLocalNameDeclarationStatementAdapter();
+ }
+ @Override
+ public Adapter caseIfStatement(IfStatement object)
+ {
+ return createIfStatementAdapter();
+ }
+ @Override
+ public Adapter caseSequentialClauses(SequentialClauses object)
+ {
+ return createSequentialClausesAdapter();
+ }
+ @Override
+ public Adapter caseConcurrentClauses(ConcurrentClauses object)
+ {
+ return createConcurrentClausesAdapter();
+ }
+ @Override
+ public Adapter caseNonFinalClause(NonFinalClause object)
+ {
+ return createNonFinalClauseAdapter();
+ }
+ @Override
+ public Adapter caseFinalClause(FinalClause object)
+ {
+ return createFinalClauseAdapter();
+ }
+ @Override
+ public Adapter caseSwitchStatement(SwitchStatement object)
+ {
+ return createSwitchStatementAdapter();
+ }
+ @Override
+ public Adapter caseSwitchClause(SwitchClause object)
+ {
+ return createSwitchClauseAdapter();
+ }
+ @Override
+ public Adapter caseSwitchCase(SwitchCase object)
+ {
+ return createSwitchCaseAdapter();
+ }
+ @Override
+ public Adapter caseSwitchDefaultClause(SwitchDefaultClause object)
+ {
+ return createSwitchDefaultClauseAdapter();
+ }
+ @Override
+ public Adapter caseNonEmptyStatementSequence(NonEmptyStatementSequence object)
+ {
+ return createNonEmptyStatementSequenceAdapter();
+ }
+ @Override
+ public Adapter caseWhileStatement(WhileStatement object)
+ {
+ return createWhileStatementAdapter();
+ }
+ @Override
+ public Adapter caseDoStatement(DoStatement object)
+ {
+ return createDoStatementAdapter();
+ }
+ @Override
+ public Adapter caseForStatement(ForStatement object)
+ {
+ return createForStatementAdapter();
+ }
+ @Override
+ public Adapter caseForControl(ForControl object)
+ {
+ return createForControlAdapter();
+ }
+ @Override
+ public Adapter caseLoopVariableDefinition(LoopVariableDefinition object)
+ {
+ return createLoopVariableDefinitionAdapter();
+ }
+ @Override
+ public Adapter caseBreakStatement(BreakStatement object)
+ {
+ return createBreakStatementAdapter();
+ }
+ @Override
+ public Adapter caseReturnStatement(ReturnStatement object)
+ {
+ return createReturnStatementAdapter();
+ }
+ @Override
+ public Adapter caseAcceptStatement(AcceptStatement object)
+ {
+ return createAcceptStatementAdapter();
+ }
+ @Override
+ public Adapter caseSimpleAcceptStatementCompletion(SimpleAcceptStatementCompletion object)
+ {
+ return createSimpleAcceptStatementCompletionAdapter();
+ }
+ @Override
+ public Adapter caseCompoundAcceptStatementCompletion(CompoundAcceptStatementCompletion object)
+ {
+ return createCompoundAcceptStatementCompletionAdapter();
+ }
+ @Override
+ public Adapter caseAcceptBlock(AcceptBlock object)
+ {
+ return createAcceptBlockAdapter();
+ }
+ @Override
+ public Adapter caseAcceptClause(AcceptClause object)
+ {
+ return createAcceptClauseAdapter();
+ }
+ @Override
+ public Adapter caseClassifyStatement(ClassifyStatement object)
+ {
+ return createClassifyStatementAdapter();
+ }
+ @Override
+ public Adapter caseClassificationClause(ClassificationClause object)
+ {
+ return createClassificationClauseAdapter();
+ }
+ @Override
+ public Adapter caseClassificationFromClause(ClassificationFromClause object)
+ {
+ return createClassificationFromClauseAdapter();
+ }
+ @Override
+ public Adapter caseClassificationToClause(ClassificationToClause object)
+ {
+ return createClassificationToClauseAdapter();
+ }
+ @Override
+ public Adapter caseReclassifyAllClause(ReclassifyAllClause object)
+ {
+ return createReclassifyAllClauseAdapter();
+ }
+ @Override
+ public Adapter caseQualifiedNameList(QualifiedNameList object)
+ {
+ return createQualifiedNameListAdapter();
+ }
+ @Override
+ public Adapter caseInvocationOrAssignementOrDeclarationStatement(InvocationOrAssignementOrDeclarationStatement object)
+ {
+ return createInvocationOrAssignementOrDeclarationStatementAdapter();
+ }
+ @Override
+ public Adapter caseSuperInvocationStatement(SuperInvocationStatement object)
+ {
+ return createSuperInvocationStatementAdapter();
+ }
+ @Override
+ public Adapter caseThisInvocationStatement(ThisInvocationStatement object)
+ {
+ return createThisInvocationStatementAdapter();
+ }
+ @Override
+ public Adapter caseInstanceCreationInvocationStatement(InstanceCreationInvocationStatement object)
+ {
+ return createInstanceCreationInvocationStatementAdapter();
+ }
+ @Override
+ public Adapter caseVariableDeclarationCompletion(VariableDeclarationCompletion object)
+ {
+ return createVariableDeclarationCompletionAdapter();
+ }
+ @Override
+ public Adapter caseAssignmentCompletion(AssignmentCompletion object)
+ {
+ return createAssignmentCompletionAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object)
+ {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target)
+ {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.Test <em>Test</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.Test
+ * @generated
+ */
+ public Adapter createTestAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.LITERAL <em>LITERAL</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.LITERAL
+ * @generated
+ */
+ public Adapter createLITERALAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.BOOLEAN_LITERAL <em>BOOLEAN LITERAL</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.BOOLEAN_LITERAL
+ * @generated
+ */
+ public Adapter createBOOLEAN_LITERALAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.NUMBER_LITERAL <em>NUMBER LITERAL</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.NUMBER_LITERAL
+ * @generated
+ */
+ public Adapter createNUMBER_LITERALAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.INTEGER_LITERAL <em>INTEGER LITERAL</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.INTEGER_LITERAL
+ * @generated
+ */
+ public Adapter createINTEGER_LITERALAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.UNLIMITED_LITERAL <em>UNLIMITED LITERAL</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.UNLIMITED_LITERAL
+ * @generated
+ */
+ public Adapter createUNLIMITED_LITERALAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.STRING_LITERAL <em>STRING LITERAL</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.STRING_LITERAL
+ * @generated
+ */
+ public Adapter createSTRING_LITERALAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.NameExpression <em>Name Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.NameExpression
+ * @generated
+ */
+ public Adapter createNameExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.QualifiedNamePath <em>Qualified Name Path</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.QualifiedNamePath
+ * @generated
+ */
+ public Adapter createQualifiedNamePathAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.UnqualifiedName <em>Unqualified Name</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.UnqualifiedName
+ * @generated
+ */
+ public Adapter createUnqualifiedNameAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.TemplateBinding <em>Template Binding</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.TemplateBinding
+ * @generated
+ */
+ public Adapter createTemplateBindingAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.NamedTemplateBinding <em>Named Template Binding</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.NamedTemplateBinding
+ * @generated
+ */
+ public Adapter createNamedTemplateBindingAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.QualifiedNameWithBinding <em>Qualified Name With Binding</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.QualifiedNameWithBinding
+ * @generated
+ */
+ public Adapter createQualifiedNameWithBindingAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.Tuple <em>Tuple</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.Tuple
+ * @generated
+ */
+ public Adapter createTupleAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.TupleElement <em>Tuple Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.TupleElement
+ * @generated
+ */
+ public Adapter createTupleElementAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.Expression <em>Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.Expression
+ * @generated
+ */
+ public Adapter createExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.ConditionalTestExpression <em>Conditional Test Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.ConditionalTestExpression
+ * @generated
+ */
+ public Adapter createConditionalTestExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.ConditionalOrExpression <em>Conditional Or Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.ConditionalOrExpression
+ * @generated
+ */
+ public Adapter createConditionalOrExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.ConditionalAndExpression <em>Conditional And Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.ConditionalAndExpression
+ * @generated
+ */
+ public Adapter createConditionalAndExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.InclusiveOrExpression <em>Inclusive Or Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.InclusiveOrExpression
+ * @generated
+ */
+ public Adapter createInclusiveOrExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.ExclusiveOrExpression <em>Exclusive Or Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.ExclusiveOrExpression
+ * @generated
+ */
+ public Adapter createExclusiveOrExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.AndExpression <em>And Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.AndExpression
+ * @generated
+ */
+ public Adapter createAndExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.EqualityExpression <em>Equality Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.EqualityExpression
+ * @generated
+ */
+ public Adapter createEqualityExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.ClassificationExpression <em>Classification Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.ClassificationExpression
+ * @generated
+ */
+ public Adapter createClassificationExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.RelationalExpression <em>Relational Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.RelationalExpression
+ * @generated
+ */
+ public Adapter createRelationalExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.ShiftExpression <em>Shift Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.ShiftExpression
+ * @generated
+ */
+ public Adapter createShiftExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.AdditiveExpression <em>Additive Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.AdditiveExpression
+ * @generated
+ */
+ public Adapter createAdditiveExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.MultiplicativeExpression <em>Multiplicative Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.MultiplicativeExpression
+ * @generated
+ */
+ public Adapter createMultiplicativeExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.UnaryExpression <em>Unary Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.UnaryExpression
+ * @generated
+ */
+ public Adapter createUnaryExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.PrimaryExpression <em>Primary Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.PrimaryExpression
+ * @generated
+ */
+ public Adapter createPrimaryExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.SuffixExpression <em>Suffix Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.SuffixExpression
+ * @generated
+ */
+ public Adapter createSuffixExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.OperationCallExpression <em>Operation Call Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.OperationCallExpression
+ * @generated
+ */
+ public Adapter createOperationCallExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.PropertyCallExpression <em>Property Call Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.PropertyCallExpression
+ * @generated
+ */
+ public Adapter createPropertyCallExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.LinkOperationExpression <em>Link Operation Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.LinkOperationExpression
+ * @generated
+ */
+ public Adapter createLinkOperationExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.LinkOperationTuple <em>Link Operation Tuple</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.LinkOperationTuple
+ * @generated
+ */
+ public Adapter createLinkOperationTupleAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.LinkOperationTupleElement <em>Link Operation Tuple Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.LinkOperationTupleElement
+ * @generated
+ */
+ public Adapter createLinkOperationTupleElementAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.SequenceOperationExpression <em>Sequence Operation Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.SequenceOperationExpression
+ * @generated
+ */
+ public Adapter createSequenceOperationExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.SequenceReductionExpression <em>Sequence Reduction Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.SequenceReductionExpression
+ * @generated
+ */
+ public Adapter createSequenceReductionExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.SequenceExpansionExpression <em>Sequence Expansion Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.SequenceExpansionExpression
+ * @generated
+ */
+ public Adapter createSequenceExpansionExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.SelectOrRejectOperation <em>Select Or Reject Operation</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.SelectOrRejectOperation
+ * @generated
+ */
+ public Adapter createSelectOrRejectOperationAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.CollectOrIterateOperation <em>Collect Or Iterate Operation</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.CollectOrIterateOperation
+ * @generated
+ */
+ public Adapter createCollectOrIterateOperationAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.ForAllOrExistsOrOneOperation <em>For All Or Exists Or One Operation</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.ForAllOrExistsOrOneOperation
+ * @generated
+ */
+ public Adapter createForAllOrExistsOrOneOperationAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.IsUniqueOperation <em>Is Unique Operation</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.IsUniqueOperation
+ * @generated
+ */
+ public Adapter createIsUniqueOperationAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.ValueSpecification <em>Value Specification</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.ValueSpecification
+ * @generated
+ */
+ public Adapter createValueSpecificationAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.NonLiteralValueSpecification <em>Non Literal Value Specification</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.NonLiteralValueSpecification
+ * @generated
+ */
+ public Adapter createNonLiteralValueSpecificationAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.ParenthesizedExpression <em>Parenthesized Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.ParenthesizedExpression
+ * @generated
+ */
+ public Adapter createParenthesizedExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.NullExpression <em>Null Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.NullExpression
+ * @generated
+ */
+ public Adapter createNullExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.ThisExpression <em>This Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.ThisExpression
+ * @generated
+ */
+ public Adapter createThisExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.SuperInvocationExpression <em>Super Invocation Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.SuperInvocationExpression
+ * @generated
+ */
+ public Adapter createSuperInvocationExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.InstanceCreationExpression <em>Instance Creation Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.InstanceCreationExpression
+ * @generated
+ */
+ public Adapter createInstanceCreationExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.InstanceCreationTuple <em>Instance Creation Tuple</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.InstanceCreationTuple
+ * @generated
+ */
+ public Adapter createInstanceCreationTupleAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.InstanceCreationTupleElement <em>Instance Creation Tuple Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.InstanceCreationTupleElement
+ * @generated
+ */
+ public Adapter createInstanceCreationTupleElementAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.SequenceConstructionOrAccessCompletion <em>Sequence Construction Or Access Completion</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.SequenceConstructionOrAccessCompletion
+ * @generated
+ */
+ public Adapter createSequenceConstructionOrAccessCompletionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.AccessCompletion <em>Access Completion</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.AccessCompletion
+ * @generated
+ */
+ public Adapter createAccessCompletionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.PartialSequenceConstructionCompletion <em>Partial Sequence Construction Completion</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.PartialSequenceConstructionCompletion
+ * @generated
+ */
+ public Adapter createPartialSequenceConstructionCompletionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.SequenceConstructionExpression <em>Sequence Construction Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.SequenceConstructionExpression
+ * @generated
+ */
+ public Adapter createSequenceConstructionExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.SequenceElement <em>Sequence Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.SequenceElement
+ * @generated
+ */
+ public Adapter createSequenceElementAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.ClassExtentExpression <em>Class Extent Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.ClassExtentExpression
+ * @generated
+ */
+ public Adapter createClassExtentExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.Block <em>Block</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.Block
+ * @generated
+ */
+ public Adapter createBlockAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.StatementSequence <em>Statement Sequence</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.StatementSequence
+ * @generated
+ */
+ public Adapter createStatementSequenceAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.DocumentedStatement <em>Documented Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.DocumentedStatement
+ * @generated
+ */
+ public Adapter createDocumentedStatementAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.InlineStatement <em>Inline Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.InlineStatement
+ * @generated
+ */
+ public Adapter createInlineStatementAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.AnnotatedStatement <em>Annotated Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.AnnotatedStatement
+ * @generated
+ */
+ public Adapter createAnnotatedStatementAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.Statement <em>Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.Statement
+ * @generated
+ */
+ public Adapter createStatementAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.Annotation <em>Annotation</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.Annotation
+ * @generated
+ */
+ public Adapter createAnnotationAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.BlockStatement <em>Block Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.BlockStatement
+ * @generated
+ */
+ public Adapter createBlockStatementAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.EmptyStatement <em>Empty Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.EmptyStatement
+ * @generated
+ */
+ public Adapter createEmptyStatementAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.LocalNameDeclarationStatement <em>Local Name Declaration Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.LocalNameDeclarationStatement
+ * @generated
+ */
+ public Adapter createLocalNameDeclarationStatementAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.IfStatement <em>If Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.IfStatement
+ * @generated
+ */
+ public Adapter createIfStatementAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.SequentialClauses <em>Sequential Clauses</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.SequentialClauses
+ * @generated
+ */
+ public Adapter createSequentialClausesAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.ConcurrentClauses <em>Concurrent Clauses</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.ConcurrentClauses
+ * @generated
+ */
+ public Adapter createConcurrentClausesAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.NonFinalClause <em>Non Final Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.NonFinalClause
+ * @generated
+ */
+ public Adapter createNonFinalClauseAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.FinalClause <em>Final Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.FinalClause
+ * @generated
+ */
+ public Adapter createFinalClauseAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.SwitchStatement <em>Switch Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.SwitchStatement
+ * @generated
+ */
+ public Adapter createSwitchStatementAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.SwitchClause <em>Switch Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.SwitchClause
+ * @generated
+ */
+ public Adapter createSwitchClauseAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.SwitchCase <em>Switch Case</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.SwitchCase
+ * @generated
+ */
+ public Adapter createSwitchCaseAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.SwitchDefaultClause <em>Switch Default Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.SwitchDefaultClause
+ * @generated
+ */
+ public Adapter createSwitchDefaultClauseAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.NonEmptyStatementSequence <em>Non Empty Statement Sequence</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.NonEmptyStatementSequence
+ * @generated
+ */
+ public Adapter createNonEmptyStatementSequenceAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.WhileStatement <em>While Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.WhileStatement
+ * @generated
+ */
+ public Adapter createWhileStatementAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.DoStatement <em>Do Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.DoStatement
+ * @generated
+ */
+ public Adapter createDoStatementAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.ForStatement <em>For Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.ForStatement
+ * @generated
+ */
+ public Adapter createForStatementAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.ForControl <em>For Control</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.ForControl
+ * @generated
+ */
+ public Adapter createForControlAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.LoopVariableDefinition <em>Loop Variable Definition</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.LoopVariableDefinition
+ * @generated
+ */
+ public Adapter createLoopVariableDefinitionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.BreakStatement <em>Break Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.BreakStatement
+ * @generated
+ */
+ public Adapter createBreakStatementAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.ReturnStatement <em>Return Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.ReturnStatement
+ * @generated
+ */
+ public Adapter createReturnStatementAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.AcceptStatement <em>Accept Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.AcceptStatement
+ * @generated
+ */
+ public Adapter createAcceptStatementAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.SimpleAcceptStatementCompletion <em>Simple Accept Statement Completion</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.SimpleAcceptStatementCompletion
+ * @generated
+ */
+ public Adapter createSimpleAcceptStatementCompletionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.CompoundAcceptStatementCompletion <em>Compound Accept Statement Completion</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.CompoundAcceptStatementCompletion
+ * @generated
+ */
+ public Adapter createCompoundAcceptStatementCompletionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.AcceptBlock <em>Accept Block</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.AcceptBlock
+ * @generated
+ */
+ public Adapter createAcceptBlockAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.AcceptClause <em>Accept Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.AcceptClause
+ * @generated
+ */
+ public Adapter createAcceptClauseAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.ClassifyStatement <em>Classify Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.ClassifyStatement
+ * @generated
+ */
+ public Adapter createClassifyStatementAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.ClassificationClause <em>Classification Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.ClassificationClause
+ * @generated
+ */
+ public Adapter createClassificationClauseAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.ClassificationFromClause <em>Classification From Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.ClassificationFromClause
+ * @generated
+ */
+ public Adapter createClassificationFromClauseAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.ClassificationToClause <em>Classification To Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.ClassificationToClause
+ * @generated
+ */
+ public Adapter createClassificationToClauseAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.ReclassifyAllClause <em>Reclassify All Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.ReclassifyAllClause
+ * @generated
+ */
+ public Adapter createReclassifyAllClauseAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.QualifiedNameList <em>Qualified Name List</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.QualifiedNameList
+ * @generated
+ */
+ public Adapter createQualifiedNameListAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.InvocationOrAssignementOrDeclarationStatement <em>Invocation Or Assignement Or Declaration Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.InvocationOrAssignementOrDeclarationStatement
+ * @generated
+ */
+ public Adapter createInvocationOrAssignementOrDeclarationStatementAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.SuperInvocationStatement <em>Super Invocation Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.SuperInvocationStatement
+ * @generated
+ */
+ public Adapter createSuperInvocationStatementAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.ThisInvocationStatement <em>This Invocation Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.ThisInvocationStatement
+ * @generated
+ */
+ public Adapter createThisInvocationStatementAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.InstanceCreationInvocationStatement <em>Instance Creation Invocation Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.InstanceCreationInvocationStatement
+ * @generated
+ */
+ public Adapter createInstanceCreationInvocationStatementAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.VariableDeclarationCompletion <em>Variable Declaration Completion</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.VariableDeclarationCompletion
+ * @generated
+ */
+ public Adapter createVariableDeclarationCompletionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.alf.alf.AssignmentCompletion <em>Assignment Completion</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.alf.alf.AssignmentCompletion
+ * @generated
+ */
+ public Adapter createAssignmentCompletionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter()
+ {
+ return null;
+ }
+
+} //AlfAdapterFactory
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/util/AlfSwitch.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/util/AlfSwitch.java
new file mode 100644
index 00000000000..1ac10761380
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/alf/util/AlfSwitch.java
@@ -0,0 +1,2507 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.papyrus.alf.alf.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.papyrus.alf.alf.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.alf.alf.AlfPackage
+ * @generated
+ */
+public class AlfSwitch<T> extends Switch<T>
+{
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static AlfPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AlfSwitch()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = AlfPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage)
+ {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject)
+ {
+ switch (classifierID)
+ {
+ case AlfPackage.TEST:
+ {
+ Test test = (Test)theEObject;
+ T result = caseTest(test);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.LITERAL:
+ {
+ LITERAL literal = (LITERAL)theEObject;
+ T result = caseLITERAL(literal);
+ if (result == null) result = caseValueSpecification(literal);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.BOOLEAN_LITERAL:
+ {
+ BOOLEAN_LITERAL booleaN_LITERAL = (BOOLEAN_LITERAL)theEObject;
+ T result = caseBOOLEAN_LITERAL(booleaN_LITERAL);
+ if (result == null) result = caseLITERAL(booleaN_LITERAL);
+ if (result == null) result = caseValueSpecification(booleaN_LITERAL);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.NUMBER_LITERAL:
+ {
+ NUMBER_LITERAL numbeR_LITERAL = (NUMBER_LITERAL)theEObject;
+ T result = caseNUMBER_LITERAL(numbeR_LITERAL);
+ if (result == null) result = caseLITERAL(numbeR_LITERAL);
+ if (result == null) result = caseValueSpecification(numbeR_LITERAL);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.INTEGER_LITERAL:
+ {
+ INTEGER_LITERAL integeR_LITERAL = (INTEGER_LITERAL)theEObject;
+ T result = caseINTEGER_LITERAL(integeR_LITERAL);
+ if (result == null) result = caseNUMBER_LITERAL(integeR_LITERAL);
+ if (result == null) result = caseLITERAL(integeR_LITERAL);
+ if (result == null) result = caseValueSpecification(integeR_LITERAL);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.UNLIMITED_LITERAL:
+ {
+ UNLIMITED_LITERAL unlimiteD_LITERAL = (UNLIMITED_LITERAL)theEObject;
+ T result = caseUNLIMITED_LITERAL(unlimiteD_LITERAL);
+ if (result == null) result = caseNUMBER_LITERAL(unlimiteD_LITERAL);
+ if (result == null) result = caseLITERAL(unlimiteD_LITERAL);
+ if (result == null) result = caseValueSpecification(unlimiteD_LITERAL);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.STRING_LITERAL:
+ {
+ STRING_LITERAL strinG_LITERAL = (STRING_LITERAL)theEObject;
+ T result = caseSTRING_LITERAL(strinG_LITERAL);
+ if (result == null) result = caseLITERAL(strinG_LITERAL);
+ if (result == null) result = caseValueSpecification(strinG_LITERAL);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.NAME_EXPRESSION:
+ {
+ NameExpression nameExpression = (NameExpression)theEObject;
+ T result = caseNameExpression(nameExpression);
+ if (result == null) result = caseValueSpecification(nameExpression);
+ if (result == null) result = caseNonLiteralValueSpecification(nameExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.QUALIFIED_NAME_PATH:
+ {
+ QualifiedNamePath qualifiedNamePath = (QualifiedNamePath)theEObject;
+ T result = caseQualifiedNamePath(qualifiedNamePath);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.UNQUALIFIED_NAME:
+ {
+ UnqualifiedName unqualifiedName = (UnqualifiedName)theEObject;
+ T result = caseUnqualifiedName(unqualifiedName);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.TEMPLATE_BINDING:
+ {
+ TemplateBinding templateBinding = (TemplateBinding)theEObject;
+ T result = caseTemplateBinding(templateBinding);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.NAMED_TEMPLATE_BINDING:
+ {
+ NamedTemplateBinding namedTemplateBinding = (NamedTemplateBinding)theEObject;
+ T result = caseNamedTemplateBinding(namedTemplateBinding);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.QUALIFIED_NAME_WITH_BINDING:
+ {
+ QualifiedNameWithBinding qualifiedNameWithBinding = (QualifiedNameWithBinding)theEObject;
+ T result = caseQualifiedNameWithBinding(qualifiedNameWithBinding);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.TUPLE:
+ {
+ Tuple tuple = (Tuple)theEObject;
+ T result = caseTuple(tuple);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.TUPLE_ELEMENT:
+ {
+ TupleElement tupleElement = (TupleElement)theEObject;
+ T result = caseTupleElement(tupleElement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.EXPRESSION:
+ {
+ Expression expression = (Expression)theEObject;
+ T result = caseExpression(expression);
+ if (result == null) result = caseSequenceElement(expression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.CONDITIONAL_TEST_EXPRESSION:
+ {
+ ConditionalTestExpression conditionalTestExpression = (ConditionalTestExpression)theEObject;
+ T result = caseConditionalTestExpression(conditionalTestExpression);
+ if (result == null) result = caseExpression(conditionalTestExpression);
+ if (result == null) result = caseSequenceElement(conditionalTestExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.CONDITIONAL_OR_EXPRESSION:
+ {
+ ConditionalOrExpression conditionalOrExpression = (ConditionalOrExpression)theEObject;
+ T result = caseConditionalOrExpression(conditionalOrExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.CONDITIONAL_AND_EXPRESSION:
+ {
+ ConditionalAndExpression conditionalAndExpression = (ConditionalAndExpression)theEObject;
+ T result = caseConditionalAndExpression(conditionalAndExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.INCLUSIVE_OR_EXPRESSION:
+ {
+ InclusiveOrExpression inclusiveOrExpression = (InclusiveOrExpression)theEObject;
+ T result = caseInclusiveOrExpression(inclusiveOrExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.EXCLUSIVE_OR_EXPRESSION:
+ {
+ ExclusiveOrExpression exclusiveOrExpression = (ExclusiveOrExpression)theEObject;
+ T result = caseExclusiveOrExpression(exclusiveOrExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.AND_EXPRESSION:
+ {
+ AndExpression andExpression = (AndExpression)theEObject;
+ T result = caseAndExpression(andExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.EQUALITY_EXPRESSION:
+ {
+ EqualityExpression equalityExpression = (EqualityExpression)theEObject;
+ T result = caseEqualityExpression(equalityExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.CLASSIFICATION_EXPRESSION:
+ {
+ ClassificationExpression classificationExpression = (ClassificationExpression)theEObject;
+ T result = caseClassificationExpression(classificationExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.RELATIONAL_EXPRESSION:
+ {
+ RelationalExpression relationalExpression = (RelationalExpression)theEObject;
+ T result = caseRelationalExpression(relationalExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.SHIFT_EXPRESSION:
+ {
+ ShiftExpression shiftExpression = (ShiftExpression)theEObject;
+ T result = caseShiftExpression(shiftExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.ADDITIVE_EXPRESSION:
+ {
+ AdditiveExpression additiveExpression = (AdditiveExpression)theEObject;
+ T result = caseAdditiveExpression(additiveExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.MULTIPLICATIVE_EXPRESSION:
+ {
+ MultiplicativeExpression multiplicativeExpression = (MultiplicativeExpression)theEObject;
+ T result = caseMultiplicativeExpression(multiplicativeExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.UNARY_EXPRESSION:
+ {
+ UnaryExpression unaryExpression = (UnaryExpression)theEObject;
+ T result = caseUnaryExpression(unaryExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.PRIMARY_EXPRESSION:
+ {
+ PrimaryExpression primaryExpression = (PrimaryExpression)theEObject;
+ T result = casePrimaryExpression(primaryExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.SUFFIX_EXPRESSION:
+ {
+ SuffixExpression suffixExpression = (SuffixExpression)theEObject;
+ T result = caseSuffixExpression(suffixExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.OPERATION_CALL_EXPRESSION:
+ {
+ OperationCallExpression operationCallExpression = (OperationCallExpression)theEObject;
+ T result = caseOperationCallExpression(operationCallExpression);
+ if (result == null) result = caseSuffixExpression(operationCallExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.PROPERTY_CALL_EXPRESSION:
+ {
+ PropertyCallExpression propertyCallExpression = (PropertyCallExpression)theEObject;
+ T result = casePropertyCallExpression(propertyCallExpression);
+ if (result == null) result = caseSuffixExpression(propertyCallExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.LINK_OPERATION_EXPRESSION:
+ {
+ LinkOperationExpression linkOperationExpression = (LinkOperationExpression)theEObject;
+ T result = caseLinkOperationExpression(linkOperationExpression);
+ if (result == null) result = caseSuffixExpression(linkOperationExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.LINK_OPERATION_TUPLE:
+ {
+ LinkOperationTuple linkOperationTuple = (LinkOperationTuple)theEObject;
+ T result = caseLinkOperationTuple(linkOperationTuple);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.LINK_OPERATION_TUPLE_ELEMENT:
+ {
+ LinkOperationTupleElement linkOperationTupleElement = (LinkOperationTupleElement)theEObject;
+ T result = caseLinkOperationTupleElement(linkOperationTupleElement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.SEQUENCE_OPERATION_EXPRESSION:
+ {
+ SequenceOperationExpression sequenceOperationExpression = (SequenceOperationExpression)theEObject;
+ T result = caseSequenceOperationExpression(sequenceOperationExpression);
+ if (result == null) result = caseSuffixExpression(sequenceOperationExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.SEQUENCE_REDUCTION_EXPRESSION:
+ {
+ SequenceReductionExpression sequenceReductionExpression = (SequenceReductionExpression)theEObject;
+ T result = caseSequenceReductionExpression(sequenceReductionExpression);
+ if (result == null) result = caseSuffixExpression(sequenceReductionExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.SEQUENCE_EXPANSION_EXPRESSION:
+ {
+ SequenceExpansionExpression sequenceExpansionExpression = (SequenceExpansionExpression)theEObject;
+ T result = caseSequenceExpansionExpression(sequenceExpansionExpression);
+ if (result == null) result = caseSuffixExpression(sequenceExpansionExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.SELECT_OR_REJECT_OPERATION:
+ {
+ SelectOrRejectOperation selectOrRejectOperation = (SelectOrRejectOperation)theEObject;
+ T result = caseSelectOrRejectOperation(selectOrRejectOperation);
+ if (result == null) result = caseSequenceExpansionExpression(selectOrRejectOperation);
+ if (result == null) result = caseSuffixExpression(selectOrRejectOperation);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.COLLECT_OR_ITERATE_OPERATION:
+ {
+ CollectOrIterateOperation collectOrIterateOperation = (CollectOrIterateOperation)theEObject;
+ T result = caseCollectOrIterateOperation(collectOrIterateOperation);
+ if (result == null) result = caseSequenceExpansionExpression(collectOrIterateOperation);
+ if (result == null) result = caseSuffixExpression(collectOrIterateOperation);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.FOR_ALL_OR_EXISTS_OR_ONE_OPERATION:
+ {
+ ForAllOrExistsOrOneOperation forAllOrExistsOrOneOperation = (ForAllOrExistsOrOneOperation)theEObject;
+ T result = caseForAllOrExistsOrOneOperation(forAllOrExistsOrOneOperation);
+ if (result == null) result = caseSequenceExpansionExpression(forAllOrExistsOrOneOperation);
+ if (result == null) result = caseSuffixExpression(forAllOrExistsOrOneOperation);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.IS_UNIQUE_OPERATION:
+ {
+ IsUniqueOperation isUniqueOperation = (IsUniqueOperation)theEObject;
+ T result = caseIsUniqueOperation(isUniqueOperation);
+ if (result == null) result = caseSequenceExpansionExpression(isUniqueOperation);
+ if (result == null) result = caseSuffixExpression(isUniqueOperation);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.VALUE_SPECIFICATION:
+ {
+ ValueSpecification valueSpecification = (ValueSpecification)theEObject;
+ T result = caseValueSpecification(valueSpecification);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.NON_LITERAL_VALUE_SPECIFICATION:
+ {
+ NonLiteralValueSpecification nonLiteralValueSpecification = (NonLiteralValueSpecification)theEObject;
+ T result = caseNonLiteralValueSpecification(nonLiteralValueSpecification);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.PARENTHESIZED_EXPRESSION:
+ {
+ ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression)theEObject;
+ T result = caseParenthesizedExpression(parenthesizedExpression);
+ if (result == null) result = caseValueSpecification(parenthesizedExpression);
+ if (result == null) result = caseNonLiteralValueSpecification(parenthesizedExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.NULL_EXPRESSION:
+ {
+ NullExpression nullExpression = (NullExpression)theEObject;
+ T result = caseNullExpression(nullExpression);
+ if (result == null) result = caseValueSpecification(nullExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.THIS_EXPRESSION:
+ {
+ ThisExpression thisExpression = (ThisExpression)theEObject;
+ T result = caseThisExpression(thisExpression);
+ if (result == null) result = caseValueSpecification(thisExpression);
+ if (result == null) result = caseNonLiteralValueSpecification(thisExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.SUPER_INVOCATION_EXPRESSION:
+ {
+ SuperInvocationExpression superInvocationExpression = (SuperInvocationExpression)theEObject;
+ T result = caseSuperInvocationExpression(superInvocationExpression);
+ if (result == null) result = caseValueSpecification(superInvocationExpression);
+ if (result == null) result = caseNonLiteralValueSpecification(superInvocationExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.INSTANCE_CREATION_EXPRESSION:
+ {
+ InstanceCreationExpression instanceCreationExpression = (InstanceCreationExpression)theEObject;
+ T result = caseInstanceCreationExpression(instanceCreationExpression);
+ if (result == null) result = caseValueSpecification(instanceCreationExpression);
+ if (result == null) result = caseNonLiteralValueSpecification(instanceCreationExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.INSTANCE_CREATION_TUPLE:
+ {
+ InstanceCreationTuple instanceCreationTuple = (InstanceCreationTuple)theEObject;
+ T result = caseInstanceCreationTuple(instanceCreationTuple);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.INSTANCE_CREATION_TUPLE_ELEMENT:
+ {
+ InstanceCreationTupleElement instanceCreationTupleElement = (InstanceCreationTupleElement)theEObject;
+ T result = caseInstanceCreationTupleElement(instanceCreationTupleElement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.SEQUENCE_CONSTRUCTION_OR_ACCESS_COMPLETION:
+ {
+ SequenceConstructionOrAccessCompletion sequenceConstructionOrAccessCompletion = (SequenceConstructionOrAccessCompletion)theEObject;
+ T result = caseSequenceConstructionOrAccessCompletion(sequenceConstructionOrAccessCompletion);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.ACCESS_COMPLETION:
+ {
+ AccessCompletion accessCompletion = (AccessCompletion)theEObject;
+ T result = caseAccessCompletion(accessCompletion);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.PARTIAL_SEQUENCE_CONSTRUCTION_COMPLETION:
+ {
+ PartialSequenceConstructionCompletion partialSequenceConstructionCompletion = (PartialSequenceConstructionCompletion)theEObject;
+ T result = casePartialSequenceConstructionCompletion(partialSequenceConstructionCompletion);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.SEQUENCE_CONSTRUCTION_EXPRESSION:
+ {
+ SequenceConstructionExpression sequenceConstructionExpression = (SequenceConstructionExpression)theEObject;
+ T result = caseSequenceConstructionExpression(sequenceConstructionExpression);
+ if (result == null) result = caseSequenceElement(sequenceConstructionExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.SEQUENCE_ELEMENT:
+ {
+ SequenceElement sequenceElement = (SequenceElement)theEObject;
+ T result = caseSequenceElement(sequenceElement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.CLASS_EXTENT_EXPRESSION:
+ {
+ ClassExtentExpression classExtentExpression = (ClassExtentExpression)theEObject;
+ T result = caseClassExtentExpression(classExtentExpression);
+ if (result == null) result = caseSuffixExpression(classExtentExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.BLOCK:
+ {
+ Block block = (Block)theEObject;
+ T result = caseBlock(block);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.STATEMENT_SEQUENCE:
+ {
+ StatementSequence statementSequence = (StatementSequence)theEObject;
+ T result = caseStatementSequence(statementSequence);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.DOCUMENTED_STATEMENT:
+ {
+ DocumentedStatement documentedStatement = (DocumentedStatement)theEObject;
+ T result = caseDocumentedStatement(documentedStatement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.INLINE_STATEMENT:
+ {
+ InlineStatement inlineStatement = (InlineStatement)theEObject;
+ T result = caseInlineStatement(inlineStatement);
+ if (result == null) result = caseStatement(inlineStatement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.ANNOTATED_STATEMENT:
+ {
+ AnnotatedStatement annotatedStatement = (AnnotatedStatement)theEObject;
+ T result = caseAnnotatedStatement(annotatedStatement);
+ if (result == null) result = caseStatement(annotatedStatement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.STATEMENT:
+ {
+ Statement statement = (Statement)theEObject;
+ T result = caseStatement(statement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.ANNOTATION:
+ {
+ Annotation annotation = (Annotation)theEObject;
+ T result = caseAnnotation(annotation);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.BLOCK_STATEMENT:
+ {
+ BlockStatement blockStatement = (BlockStatement)theEObject;
+ T result = caseBlockStatement(blockStatement);
+ if (result == null) result = caseStatement(blockStatement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.EMPTY_STATEMENT:
+ {
+ EmptyStatement emptyStatement = (EmptyStatement)theEObject;
+ T result = caseEmptyStatement(emptyStatement);
+ if (result == null) result = caseStatement(emptyStatement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.LOCAL_NAME_DECLARATION_STATEMENT:
+ {
+ LocalNameDeclarationStatement localNameDeclarationStatement = (LocalNameDeclarationStatement)theEObject;
+ T result = caseLocalNameDeclarationStatement(localNameDeclarationStatement);
+ if (result == null) result = caseStatement(localNameDeclarationStatement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.IF_STATEMENT:
+ {
+ IfStatement ifStatement = (IfStatement)theEObject;
+ T result = caseIfStatement(ifStatement);
+ if (result == null) result = caseStatement(ifStatement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.SEQUENTIAL_CLAUSES:
+ {
+ SequentialClauses sequentialClauses = (SequentialClauses)theEObject;
+ T result = caseSequentialClauses(sequentialClauses);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.CONCURRENT_CLAUSES:
+ {
+ ConcurrentClauses concurrentClauses = (ConcurrentClauses)theEObject;
+ T result = caseConcurrentClauses(concurrentClauses);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.NON_FINAL_CLAUSE:
+ {
+ NonFinalClause nonFinalClause = (NonFinalClause)theEObject;
+ T result = caseNonFinalClause(nonFinalClause);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.FINAL_CLAUSE:
+ {
+ FinalClause finalClause = (FinalClause)theEObject;
+ T result = caseFinalClause(finalClause);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.SWITCH_STATEMENT:
+ {
+ SwitchStatement switchStatement = (SwitchStatement)theEObject;
+ T result = caseSwitchStatement(switchStatement);
+ if (result == null) result = caseStatement(switchStatement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.SWITCH_CLAUSE:
+ {
+ SwitchClause switchClause = (SwitchClause)theEObject;
+ T result = caseSwitchClause(switchClause);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.SWITCH_CASE:
+ {
+ SwitchCase switchCase = (SwitchCase)theEObject;
+ T result = caseSwitchCase(switchCase);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.SWITCH_DEFAULT_CLAUSE:
+ {
+ SwitchDefaultClause switchDefaultClause = (SwitchDefaultClause)theEObject;
+ T result = caseSwitchDefaultClause(switchDefaultClause);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.NON_EMPTY_STATEMENT_SEQUENCE:
+ {
+ NonEmptyStatementSequence nonEmptyStatementSequence = (NonEmptyStatementSequence)theEObject;
+ T result = caseNonEmptyStatementSequence(nonEmptyStatementSequence);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.WHILE_STATEMENT:
+ {
+ WhileStatement whileStatement = (WhileStatement)theEObject;
+ T result = caseWhileStatement(whileStatement);
+ if (result == null) result = caseStatement(whileStatement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.DO_STATEMENT:
+ {
+ DoStatement doStatement = (DoStatement)theEObject;
+ T result = caseDoStatement(doStatement);
+ if (result == null) result = caseStatement(doStatement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.FOR_STATEMENT:
+ {
+ ForStatement forStatement = (ForStatement)theEObject;
+ T result = caseForStatement(forStatement);
+ if (result == null) result = caseStatement(forStatement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.FOR_CONTROL:
+ {
+ ForControl forControl = (ForControl)theEObject;
+ T result = caseForControl(forControl);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.LOOP_VARIABLE_DEFINITION:
+ {
+ LoopVariableDefinition loopVariableDefinition = (LoopVariableDefinition)theEObject;
+ T result = caseLoopVariableDefinition(loopVariableDefinition);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.BREAK_STATEMENT:
+ {
+ BreakStatement breakStatement = (BreakStatement)theEObject;
+ T result = caseBreakStatement(breakStatement);
+ if (result == null) result = caseStatement(breakStatement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.RETURN_STATEMENT:
+ {
+ ReturnStatement returnStatement = (ReturnStatement)theEObject;
+ T result = caseReturnStatement(returnStatement);
+ if (result == null) result = caseStatement(returnStatement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.ACCEPT_STATEMENT:
+ {
+ AcceptStatement acceptStatement = (AcceptStatement)theEObject;
+ T result = caseAcceptStatement(acceptStatement);
+ if (result == null) result = caseStatement(acceptStatement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.SIMPLE_ACCEPT_STATEMENT_COMPLETION:
+ {
+ SimpleAcceptStatementCompletion simpleAcceptStatementCompletion = (SimpleAcceptStatementCompletion)theEObject;
+ T result = caseSimpleAcceptStatementCompletion(simpleAcceptStatementCompletion);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.COMPOUND_ACCEPT_STATEMENT_COMPLETION:
+ {
+ CompoundAcceptStatementCompletion compoundAcceptStatementCompletion = (CompoundAcceptStatementCompletion)theEObject;
+ T result = caseCompoundAcceptStatementCompletion(compoundAcceptStatementCompletion);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.ACCEPT_BLOCK:
+ {
+ AcceptBlock acceptBlock = (AcceptBlock)theEObject;
+ T result = caseAcceptBlock(acceptBlock);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.ACCEPT_CLAUSE:
+ {
+ AcceptClause acceptClause = (AcceptClause)theEObject;
+ T result = caseAcceptClause(acceptClause);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.CLASSIFY_STATEMENT:
+ {
+ ClassifyStatement classifyStatement = (ClassifyStatement)theEObject;
+ T result = caseClassifyStatement(classifyStatement);
+ if (result == null) result = caseStatement(classifyStatement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.CLASSIFICATION_CLAUSE:
+ {
+ ClassificationClause classificationClause = (ClassificationClause)theEObject;
+ T result = caseClassificationClause(classificationClause);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.CLASSIFICATION_FROM_CLAUSE:
+ {
+ ClassificationFromClause classificationFromClause = (ClassificationFromClause)theEObject;
+ T result = caseClassificationFromClause(classificationFromClause);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.CLASSIFICATION_TO_CLAUSE:
+ {
+ ClassificationToClause classificationToClause = (ClassificationToClause)theEObject;
+ T result = caseClassificationToClause(classificationToClause);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.RECLASSIFY_ALL_CLAUSE:
+ {
+ ReclassifyAllClause reclassifyAllClause = (ReclassifyAllClause)theEObject;
+ T result = caseReclassifyAllClause(reclassifyAllClause);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.QUALIFIED_NAME_LIST:
+ {
+ QualifiedNameList qualifiedNameList = (QualifiedNameList)theEObject;
+ T result = caseQualifiedNameList(qualifiedNameList);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.INVOCATION_OR_ASSIGNEMENT_OR_DECLARATION_STATEMENT:
+ {
+ InvocationOrAssignementOrDeclarationStatement invocationOrAssignementOrDeclarationStatement = (InvocationOrAssignementOrDeclarationStatement)theEObject;
+ T result = caseInvocationOrAssignementOrDeclarationStatement(invocationOrAssignementOrDeclarationStatement);
+ if (result == null) result = caseStatement(invocationOrAssignementOrDeclarationStatement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.SUPER_INVOCATION_STATEMENT:
+ {
+ SuperInvocationStatement superInvocationStatement = (SuperInvocationStatement)theEObject;
+ T result = caseSuperInvocationStatement(superInvocationStatement);
+ if (result == null) result = caseStatement(superInvocationStatement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.THIS_INVOCATION_STATEMENT:
+ {
+ ThisInvocationStatement thisInvocationStatement = (ThisInvocationStatement)theEObject;
+ T result = caseThisInvocationStatement(thisInvocationStatement);
+ if (result == null) result = caseStatement(thisInvocationStatement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.INSTANCE_CREATION_INVOCATION_STATEMENT:
+ {
+ InstanceCreationInvocationStatement instanceCreationInvocationStatement = (InstanceCreationInvocationStatement)theEObject;
+ T result = caseInstanceCreationInvocationStatement(instanceCreationInvocationStatement);
+ if (result == null) result = caseStatement(instanceCreationInvocationStatement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.VARIABLE_DECLARATION_COMPLETION:
+ {
+ VariableDeclarationCompletion variableDeclarationCompletion = (VariableDeclarationCompletion)theEObject;
+ T result = caseVariableDeclarationCompletion(variableDeclarationCompletion);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AlfPackage.ASSIGNMENT_COMPLETION:
+ {
+ AssignmentCompletion assignmentCompletion = (AssignmentCompletion)theEObject;
+ T result = caseAssignmentCompletion(assignmentCompletion);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Test</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Test</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTest(Test object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>LITERAL</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>LITERAL</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLITERAL(LITERAL object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>BOOLEAN LITERAL</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>BOOLEAN LITERAL</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBOOLEAN_LITERAL(BOOLEAN_LITERAL object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>NUMBER LITERAL</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>NUMBER LITERAL</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNUMBER_LITERAL(NUMBER_LITERAL object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>INTEGER LITERAL</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>INTEGER LITERAL</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseINTEGER_LITERAL(INTEGER_LITERAL object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>UNLIMITED LITERAL</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>UNLIMITED LITERAL</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseUNLIMITED_LITERAL(UNLIMITED_LITERAL object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>STRING LITERAL</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>STRING LITERAL</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSTRING_LITERAL(STRING_LITERAL object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Name Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Name Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNameExpression(NameExpression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Qualified Name Path</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Qualified Name Path</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseQualifiedNamePath(QualifiedNamePath object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Unqualified Name</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Unqualified Name</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseUnqualifiedName(UnqualifiedName object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Template Binding</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Template Binding</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTemplateBinding(TemplateBinding object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Named Template Binding</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Named Template Binding</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNamedTemplateBinding(NamedTemplateBinding object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Qualified Name With Binding</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Qualified Name With Binding</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseQualifiedNameWithBinding(QualifiedNameWithBinding object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Tuple</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Tuple</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTuple(Tuple object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Tuple Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Tuple Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTupleElement(TupleElement object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseExpression(Expression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Conditional Test Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Conditional Test Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConditionalTestExpression(ConditionalTestExpression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Conditional Or Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Conditional Or Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConditionalOrExpression(ConditionalOrExpression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Conditional And Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Conditional And Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConditionalAndExpression(ConditionalAndExpression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Inclusive Or Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Inclusive Or Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseInclusiveOrExpression(InclusiveOrExpression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Exclusive Or Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Exclusive Or Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseExclusiveOrExpression(ExclusiveOrExpression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>And Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>And Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAndExpression(AndExpression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Equality Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Equality Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEqualityExpression(EqualityExpression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Classification Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Classification Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseClassificationExpression(ClassificationExpression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Relational Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Relational Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRelationalExpression(RelationalExpression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Shift Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Shift Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseShiftExpression(ShiftExpression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Additive Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Additive Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAdditiveExpression(AdditiveExpression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Multiplicative Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Multiplicative Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMultiplicativeExpression(MultiplicativeExpression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Unary Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Unary Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseUnaryExpression(UnaryExpression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Primary Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Primary Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePrimaryExpression(PrimaryExpression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Suffix Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Suffix Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSuffixExpression(SuffixExpression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Operation Call Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Operation Call Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseOperationCallExpression(OperationCallExpression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Property Call Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Property Call Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePropertyCallExpression(PropertyCallExpression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Link Operation Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Link Operation Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLinkOperationExpression(LinkOperationExpression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Link Operation Tuple</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Link Operation Tuple</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLinkOperationTuple(LinkOperationTuple object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Link Operation Tuple Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Link Operation Tuple Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLinkOperationTupleElement(LinkOperationTupleElement object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Sequence Operation Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Sequence Operation Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSequenceOperationExpression(SequenceOperationExpression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Sequence Reduction Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Sequence Reduction Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSequenceReductionExpression(SequenceReductionExpression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Sequence Expansion Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Sequence Expansion Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSequenceExpansionExpression(SequenceExpansionExpression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Select Or Reject Operation</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Select Or Reject Operation</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSelectOrRejectOperation(SelectOrRejectOperation object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Collect Or Iterate Operation</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Collect Or Iterate Operation</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCollectOrIterateOperation(CollectOrIterateOperation object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>For All Or Exists Or One Operation</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>For All Or Exists Or One Operation</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseForAllOrExistsOrOneOperation(ForAllOrExistsOrOneOperation object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Is Unique Operation</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Is Unique Operation</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIsUniqueOperation(IsUniqueOperation object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Value Specification</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Value Specification</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseValueSpecification(ValueSpecification object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Non Literal Value Specification</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Non Literal Value Specification</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNonLiteralValueSpecification(NonLiteralValueSpecification object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Parenthesized Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Parenthesized Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseParenthesizedExpression(ParenthesizedExpression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Null Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Null Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNullExpression(NullExpression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>This Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>This Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseThisExpression(ThisExpression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Super Invocation Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Super Invocation Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSuperInvocationExpression(SuperInvocationExpression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Instance Creation Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Instance Creation Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseInstanceCreationExpression(InstanceCreationExpression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Instance Creation Tuple</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Instance Creation Tuple</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseInstanceCreationTuple(InstanceCreationTuple object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Instance Creation Tuple Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Instance Creation Tuple Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseInstanceCreationTupleElement(InstanceCreationTupleElement object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Sequence Construction Or Access Completion</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Sequence Construction Or Access Completion</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSequenceConstructionOrAccessCompletion(SequenceConstructionOrAccessCompletion object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Access Completion</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Access Completion</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAccessCompletion(AccessCompletion object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Partial Sequence Construction Completion</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Partial Sequence Construction Completion</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePartialSequenceConstructionCompletion(PartialSequenceConstructionCompletion object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Sequence Construction Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Sequence Construction Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSequenceConstructionExpression(SequenceConstructionExpression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Sequence Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Sequence Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSequenceElement(SequenceElement object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Class Extent Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Class Extent Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseClassExtentExpression(ClassExtentExpression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Block</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Block</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBlock(Block object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Statement Sequence</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Statement Sequence</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseStatementSequence(StatementSequence object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Documented Statement</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Documented Statement</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDocumentedStatement(DocumentedStatement object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Inline Statement</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Inline Statement</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseInlineStatement(InlineStatement object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Annotated Statement</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Annotated Statement</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAnnotatedStatement(AnnotatedStatement object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Statement</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Statement</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseStatement(Statement object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Annotation</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Annotation</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAnnotation(Annotation object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Block Statement</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Block Statement</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBlockStatement(BlockStatement object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Empty Statement</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Empty Statement</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEmptyStatement(EmptyStatement object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Local Name Declaration Statement</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Local Name Declaration Statement</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLocalNameDeclarationStatement(LocalNameDeclarationStatement object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>If Statement</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>If Statement</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIfStatement(IfStatement object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Sequential Clauses</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Sequential Clauses</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSequentialClauses(SequentialClauses object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Concurrent Clauses</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Concurrent Clauses</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConcurrentClauses(ConcurrentClauses object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Non Final Clause</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Non Final Clause</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNonFinalClause(NonFinalClause object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Final Clause</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Final Clause</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFinalClause(FinalClause object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Switch Statement</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Switch Statement</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSwitchStatement(SwitchStatement object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Switch Clause</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Switch Clause</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSwitchClause(SwitchClause object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Switch Case</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Switch Case</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSwitchCase(SwitchCase object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Switch Default Clause</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Switch Default Clause</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSwitchDefaultClause(SwitchDefaultClause object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Non Empty Statement Sequence</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Non Empty Statement Sequence</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNonEmptyStatementSequence(NonEmptyStatementSequence object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>While Statement</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>While Statement</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseWhileStatement(WhileStatement object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Do Statement</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Do Statement</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDoStatement(DoStatement object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>For Statement</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>For Statement</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseForStatement(ForStatement object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>For Control</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>For Control</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseForControl(ForControl object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Loop Variable Definition</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Loop Variable Definition</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLoopVariableDefinition(LoopVariableDefinition object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Break Statement</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Break Statement</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBreakStatement(BreakStatement object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Return Statement</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Return Statement</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseReturnStatement(ReturnStatement object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Accept Statement</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Accept Statement</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAcceptStatement(AcceptStatement object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Simple Accept Statement Completion</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Simple Accept Statement Completion</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSimpleAcceptStatementCompletion(SimpleAcceptStatementCompletion object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Compound Accept Statement Completion</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Compound Accept Statement Completion</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCompoundAcceptStatementCompletion(CompoundAcceptStatementCompletion object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Accept Block</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Accept Block</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAcceptBlock(AcceptBlock object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Accept Clause</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Accept Clause</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAcceptClause(AcceptClause object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Classify Statement</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Classify Statement</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseClassifyStatement(ClassifyStatement object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Classification Clause</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Classification Clause</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseClassificationClause(ClassificationClause object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Classification From Clause</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Classification From Clause</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseClassificationFromClause(ClassificationFromClause object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Classification To Clause</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Classification To Clause</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseClassificationToClause(ClassificationToClause object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Reclassify All Clause</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Reclassify All Clause</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseReclassifyAllClause(ReclassifyAllClause object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Qualified Name List</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Qualified Name List</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseQualifiedNameList(QualifiedNameList object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Invocation Or Assignement Or Declaration Statement</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Invocation Or Assignement Or Declaration Statement</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseInvocationOrAssignementOrDeclarationStatement(InvocationOrAssignementOrDeclarationStatement object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Super Invocation Statement</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Super Invocation Statement</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSuperInvocationStatement(SuperInvocationStatement object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>This Invocation Statement</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>This Invocation Statement</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseThisInvocationStatement(ThisInvocationStatement object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Instance Creation Invocation Statement</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Instance Creation Invocation Statement</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseInstanceCreationInvocationStatement(InstanceCreationInvocationStatement object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Variable Declaration Completion</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Variable Declaration Completion</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseVariableDeclarationCompletion(VariableDeclarationCompletion object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Assignment Completion</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Assignment Completion</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAssignmentCompletion(AssignmentCompletion object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object)
+ {
+ return null;
+ }
+
+} //AlfSwitch
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/parseTreeConstruction/AlfParsetreeConstructor.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/parseTreeConstruction/AlfParsetreeConstructor.java
new file mode 100644
index 00000000000..0d9d5e9f86c
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/parseTreeConstruction/AlfParsetreeConstructor.java
@@ -0,0 +1,19276 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.papyrus.alf.parseTreeConstruction;
+
+import org.eclipse.emf.ecore.*;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parsetree.reconstr.IEObjectConsumer;
+import org.eclipse.xtext.parsetree.reconstr.impl.AbstractParseTreeConstructor;
+
+import org.eclipse.papyrus.alf.services.AlfGrammarAccess;
+
+import com.google.inject.Inject;
+
+@SuppressWarnings("all")
+public class AlfParsetreeConstructor extends AbstractParseTreeConstructor {
+
+ @Inject
+ private AlfGrammarAccess grammarAccess;
+
+ @Override
+ protected AbstractToken getRootToken(IEObjectConsumer inst) {
+ return new ThisRootNode(inst);
+ }
+
+protected class ThisRootNode extends RootToken {
+ public ThisRootNode(IEObjectConsumer inst) {
+ super(inst);
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Test_Group(this, this, 0, inst);
+ case 1: return new LITERAL_Alternatives(this, this, 1, inst);
+ case 2: return new BOOLEAN_LITERAL_ValueAssignment(this, this, 2, inst);
+ case 3: return new NUMBER_LITERAL_Alternatives(this, this, 3, inst);
+ case 4: return new INTEGER_LITERAL_ValueAssignment(this, this, 4, inst);
+ case 5: return new UNLIMITED_LITERAL_ValueAssignment(this, this, 5, inst);
+ case 6: return new STRING_LITERAL_ValueAssignment(this, this, 6, inst);
+ case 7: return new NameExpression_Group(this, this, 7, inst);
+ case 8: return new QualifiedNamePath_Group(this, this, 8, inst);
+ case 9: return new UnqualifiedName_Group(this, this, 9, inst);
+ case 10: return new TemplateBinding_Group(this, this, 10, inst);
+ case 11: return new NamedTemplateBinding_Group(this, this, 11, inst);
+ case 12: return new QualifiedNameWithBinding_Group(this, this, 12, inst);
+ case 13: return new Tuple_Group(this, this, 13, inst);
+ case 14: return new TupleElement_ArgumentAssignment(this, this, 14, inst);
+ case 15: return new Expression_ConditionalTestExpressionParserRuleCall(this, this, 15, inst);
+ case 16: return new ConditionalTestExpression_Group(this, this, 16, inst);
+ case 17: return new ConditionalOrExpression_Group(this, this, 17, inst);
+ case 18: return new ConditionalAndExpression_Group(this, this, 18, inst);
+ case 19: return new InclusiveOrExpression_Group(this, this, 19, inst);
+ case 20: return new ExclusiveOrExpression_Group(this, this, 20, inst);
+ case 21: return new AndExpression_Group(this, this, 21, inst);
+ case 22: return new EqualityExpression_Group(this, this, 22, inst);
+ case 23: return new ClassificationExpression_Group(this, this, 23, inst);
+ case 24: return new RelationalExpression_Group(this, this, 24, inst);
+ case 25: return new ShiftExpression_Group(this, this, 25, inst);
+ case 26: return new AdditiveExpression_Group(this, this, 26, inst);
+ case 27: return new MultiplicativeExpression_Group(this, this, 27, inst);
+ case 28: return new UnaryExpression_Group(this, this, 28, inst);
+ case 29: return new PrimaryExpression_PrefixAssignment(this, this, 29, inst);
+ case 30: return new SuffixExpression_Alternatives(this, this, 30, inst);
+ case 31: return new OperationCallExpression_Group(this, this, 31, inst);
+ case 32: return new PropertyCallExpression_Group(this, this, 32, inst);
+ case 33: return new LinkOperationExpression_Group(this, this, 33, inst);
+ case 34: return new LinkOperationTuple_Group(this, this, 34, inst);
+ case 35: return new LinkOperationTupleElement_Group(this, this, 35, inst);
+ case 36: return new SequenceOperationExpression_Group(this, this, 36, inst);
+ case 37: return new SequenceReductionExpression_Group(this, this, 37, inst);
+ case 38: return new SequenceExpansionExpression_Alternatives(this, this, 38, inst);
+ case 39: return new SelectOrRejectOperation_Group(this, this, 39, inst);
+ case 40: return new CollectOrIterateOperation_Group(this, this, 40, inst);
+ case 41: return new ForAllOrExistsOrOneOperation_Group(this, this, 41, inst);
+ case 42: return new IsUniqueOperation_Group(this, this, 42, inst);
+ case 43: return new ValueSpecification_Alternatives(this, this, 43, inst);
+ case 44: return new NonLiteralValueSpecification_Alternatives(this, this, 44, inst);
+ case 45: return new ParenthesizedExpression_Group(this, this, 45, inst);
+ case 46: return new NullExpression_Group(this, this, 46, inst);
+ case 47: return new ThisExpression_Group(this, this, 47, inst);
+ case 48: return new SuperInvocationExpression_Group(this, this, 48, inst);
+ case 49: return new InstanceCreationExpression_Group(this, this, 49, inst);
+ case 50: return new InstanceCreationTuple_Group(this, this, 50, inst);
+ case 51: return new InstanceCreationTupleElement_Group(this, this, 51, inst);
+ case 52: return new SequenceConstructionOrAccessCompletion_Alternatives(this, this, 52, inst);
+ case 53: return new AccessCompletion_Group(this, this, 53, inst);
+ case 54: return new PartialSequenceConstructionCompletion_Group(this, this, 54, inst);
+ case 55: return new SequenceConstructionExpression_Group(this, this, 55, inst);
+ case 56: return new SequenceElement_Alternatives(this, this, 56, inst);
+ case 57: return new ClassExtentExpression_Group(this, this, 57, inst);
+ case 58: return new Block_Group(this, this, 58, inst);
+ case 59: return new StatementSequence_StatementsAssignment(this, this, 59, inst);
+ case 60: return new DocumentedStatement_Group(this, this, 60, inst);
+ case 61: return new InlineStatement_Group(this, this, 61, inst);
+ case 62: return new AnnotatedStatement_Group(this, this, 62, inst);
+ case 63: return new Statement_Alternatives(this, this, 63, inst);
+ case 64: return new Annotation_Group(this, this, 64, inst);
+ case 65: return new BlockStatement_BlockAssignment(this, this, 65, inst);
+ case 66: return new EmptyStatement_Group(this, this, 66, inst);
+ case 67: return new LocalNameDeclarationStatement_Group(this, this, 67, inst);
+ case 68: return new IfStatement_Group(this, this, 68, inst);
+ case 69: return new SequentialClauses_Group(this, this, 69, inst);
+ case 70: return new ConcurrentClauses_Group(this, this, 70, inst);
+ case 71: return new NonFinalClause_Group(this, this, 71, inst);
+ case 72: return new FinalClause_Group(this, this, 72, inst);
+ case 73: return new SwitchStatement_Group(this, this, 73, inst);
+ case 74: return new SwitchClause_Group(this, this, 74, inst);
+ case 75: return new SwitchCase_Group(this, this, 75, inst);
+ case 76: return new SwitchDefaultClause_Group(this, this, 76, inst);
+ case 77: return new NonEmptyStatementSequence_StatementAssignment(this, this, 77, inst);
+ case 78: return new WhileStatement_Group(this, this, 78, inst);
+ case 79: return new DoStatement_Group(this, this, 79, inst);
+ case 80: return new ForStatement_Group(this, this, 80, inst);
+ case 81: return new ForControl_Group(this, this, 81, inst);
+ case 82: return new LoopVariableDefinition_Alternatives(this, this, 82, inst);
+ case 83: return new BreakStatement_Group(this, this, 83, inst);
+ case 84: return new ReturnStatement_Group(this, this, 84, inst);
+ case 85: return new AcceptStatement_Group(this, this, 85, inst);
+ case 86: return new SimpleAcceptStatementCompletion_Group(this, this, 86, inst);
+ case 87: return new CompoundAcceptStatementCompletion_Group(this, this, 87, inst);
+ case 88: return new AcceptBlock_Group(this, this, 88, inst);
+ case 89: return new AcceptClause_Group(this, this, 89, inst);
+ case 90: return new ClassifyStatement_Group(this, this, 90, inst);
+ case 91: return new ClassificationClause_Alternatives(this, this, 91, inst);
+ case 92: return new ClassificationFromClause_Group(this, this, 92, inst);
+ case 93: return new ClassificationToClause_Group(this, this, 93, inst);
+ case 94: return new ReclassifyAllClause_Group(this, this, 94, inst);
+ case 95: return new QualifiedNameList_Group(this, this, 95, inst);
+ case 96: return new InvocationOrAssignementOrDeclarationStatement_Group(this, this, 96, inst);
+ case 97: return new SuperInvocationStatement_Group(this, this, 97, inst);
+ case 98: return new ThisInvocationStatement_Group(this, this, 98, inst);
+ case 99: return new InstanceCreationInvocationStatement_Group(this, this, 99, inst);
+ case 100: return new VariableDeclarationCompletion_Group(this, this, 100, inst);
+ case 101: return new AssignmentCompletion_Group(this, this, 101, inst);
+ default: return null;
+ }
+ }
+}
+
+
+/************ begin Rule Test ****************
+ *
+ * / *
+ * Test rule
+ * * / Test:
+ * ("testExpression" expression+=Expression)* ("testAssignmentExpression" assignExpression+=AssignmentCompletion)*
+ * ("testStatement" statements+=Statement)* ("testBlock" block=Block);
+ *
+ **/
+
+// ("testExpression" expression+=Expression)* ("testAssignmentExpression" assignExpression+=AssignmentCompletion)*
+// ("testStatement" statements+=Statement)* ("testBlock" block=Block)
+protected class Test_Group extends GroupToken {
+
+ public Test_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getTestAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Test_Group_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getTestRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// ("testExpression" expression+=Expression)*
+protected class Test_Group_0 extends GroupToken {
+
+ public Test_Group_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getTestAccess().getGroup_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Test_ExpressionAssignment_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "testExpression"
+protected class Test_TestExpressionKeyword_0_0 extends KeywordToken {
+
+ public Test_TestExpressionKeyword_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getTestAccess().getTestExpressionKeyword_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Test_Group_0(lastRuleCallOrigin, this, 0, inst);
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index - 1, inst);
+ }
+ }
+
+}
+
+// expression+=Expression
+protected class Test_ExpressionAssignment_0_1 extends AssignmentToken {
+
+ public Test_ExpressionAssignment_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getTestAccess().getExpressionAssignment_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_ConditionalTestExpressionParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("expression",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("expression");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getTestAccess().getExpressionExpressionParserRuleCall_0_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Test_TestExpressionKeyword_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// ("testAssignmentExpression" assignExpression+=AssignmentCompletion)*
+protected class Test_Group_1 extends GroupToken {
+
+ public Test_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getTestAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Test_AssignExpressionAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "testAssignmentExpression"
+protected class Test_TestAssignmentExpressionKeyword_1_0 extends KeywordToken {
+
+ public Test_TestAssignmentExpressionKeyword_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getTestAccess().getTestAssignmentExpressionKeyword_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Test_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Test_Group_0(lastRuleCallOrigin, this, 1, inst);
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index - 2, inst);
+ }
+ }
+
+}
+
+// assignExpression+=AssignmentCompletion
+protected class Test_AssignExpressionAssignment_1_1 extends AssignmentToken {
+
+ public Test_AssignExpressionAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getTestAccess().getAssignExpressionAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignmentCompletion_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("assignExpression",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("assignExpression");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getAssignmentCompletionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getTestAccess().getAssignExpressionAssignmentCompletionParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Test_TestAssignmentExpressionKeyword_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// ("testStatement" statements+=Statement)*
+protected class Test_Group_2 extends GroupToken {
+
+ public Test_Group_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getTestAccess().getGroup_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Test_StatementsAssignment_2_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "testStatement"
+protected class Test_TestStatementKeyword_2_0 extends KeywordToken {
+
+ public Test_TestStatementKeyword_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getTestAccess().getTestStatementKeyword_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Test_Group_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Test_Group_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new Test_Group_0(lastRuleCallOrigin, this, 2, inst);
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index - 3, inst);
+ }
+ }
+
+}
+
+// statements+=Statement
+protected class Test_StatementsAssignment_2_1 extends AssignmentToken {
+
+ public Test_StatementsAssignment_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getTestAccess().getStatementsAssignment_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Statement_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("statements",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("statements");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getStatementRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getTestAccess().getStatementsStatementParserRuleCall_2_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Test_TestStatementKeyword_2_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// "testBlock" block=Block
+protected class Test_Group_3 extends GroupToken {
+
+ public Test_Group_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getTestAccess().getGroup_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Test_BlockAssignment_3_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "testBlock"
+protected class Test_TestBlockKeyword_3_0 extends KeywordToken {
+
+ public Test_TestBlockKeyword_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getTestAccess().getTestBlockKeyword_3_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Test_Group_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Test_Group_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new Test_Group_0(lastRuleCallOrigin, this, 2, inst);
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index - 3, inst);
+ }
+ }
+
+}
+
+// block=Block
+protected class Test_BlockAssignment_3_1 extends AssignmentToken {
+
+ public Test_BlockAssignment_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getTestAccess().getBlockAssignment_3_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("block",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("block");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getTestAccess().getBlockBlockParserRuleCall_3_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Test_TestBlockKeyword_3_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule Test ****************/
+
+
+/************ begin Rule LITERAL ****************
+ *
+ * //('testStatementSequence' statement += StatementSequence)* ;
+ * / *********************************
+ * * PrimitiveLiterals
+ * ********************************** / LITERAL:
+ * BOOLEAN_LITERAL | NUMBER_LITERAL | STRING_LITERAL;
+ *
+ **/
+
+// BOOLEAN_LITERAL | NUMBER_LITERAL | STRING_LITERAL
+protected class LITERAL_Alternatives extends AlternativesToken {
+
+ public LITERAL_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getLITERALAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LITERAL_BOOLEAN_LITERALParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new LITERAL_NUMBER_LITERALParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new LITERAL_STRING_LITERALParserRuleCall_2(lastRuleCallOrigin, this, 2, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getBOOLEAN_LITERALRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getINTEGER_LITERALRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getSTRING_LITERALRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getUNLIMITED_LITERALRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// BOOLEAN_LITERAL
+protected class LITERAL_BOOLEAN_LITERALParserRuleCall_0 extends RuleCallToken {
+
+ public LITERAL_BOOLEAN_LITERALParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getLITERALAccess().getBOOLEAN_LITERALParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new BOOLEAN_LITERAL_ValueAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getBOOLEAN_LITERALRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(BOOLEAN_LITERAL_ValueAssignment.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// NUMBER_LITERAL
+protected class LITERAL_NUMBER_LITERALParserRuleCall_1 extends RuleCallToken {
+
+ public LITERAL_NUMBER_LITERALParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getLITERALAccess().getNUMBER_LITERALParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NUMBER_LITERAL_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getINTEGER_LITERALRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getUNLIMITED_LITERALRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(NUMBER_LITERAL_Alternatives.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// STRING_LITERAL
+protected class LITERAL_STRING_LITERALParserRuleCall_2 extends RuleCallToken {
+
+ public LITERAL_STRING_LITERALParserRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getLITERALAccess().getSTRING_LITERALParserRuleCall_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new STRING_LITERAL_ValueAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getSTRING_LITERALRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(STRING_LITERAL_ValueAssignment.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+/************ end Rule LITERAL ****************/
+
+
+/************ begin Rule BOOLEAN_LITERAL ****************
+ *
+ * // (suffix = SuffixExpression) ? ;
+ * BOOLEAN_LITERAL:
+ * value=BooleanValue;
+ *
+ **/
+
+// value=BooleanValue
+protected class BOOLEAN_LITERAL_ValueAssignment extends AssignmentToken {
+
+ public BOOLEAN_LITERAL_ValueAssignment(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getBOOLEAN_LITERALAccess().getValueAssignment();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getBOOLEAN_LITERALRule().getType().getClassifier())
+ return null;
+ if((value = eObjectConsumer.getConsumable("value",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("value");
+ if(enumLitSerializer.isValid(obj.getEObject(), grammarAccess.getBOOLEAN_LITERALAccess().getValueBooleanValueEnumRuleCall_0(), value, null)) {
+ type = AssignmentType.ENUM_RULE_CALL;
+ element = grammarAccess.getBOOLEAN_LITERALAccess().getValueBooleanValueEnumRuleCall_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+/************ end Rule BOOLEAN_LITERAL ****************/
+
+
+/************ begin Rule NUMBER_LITERAL ****************
+ *
+ * NUMBER_LITERAL:
+ * INTEGER_LITERAL | UNLIMITED_LITERAL;
+ *
+ **/
+
+// INTEGER_LITERAL | UNLIMITED_LITERAL
+protected class NUMBER_LITERAL_Alternatives extends AlternativesToken {
+
+ public NUMBER_LITERAL_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getNUMBER_LITERALAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NUMBER_LITERAL_INTEGER_LITERALParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new NUMBER_LITERAL_UNLIMITED_LITERALParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getINTEGER_LITERALRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getUNLIMITED_LITERALRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// INTEGER_LITERAL
+protected class NUMBER_LITERAL_INTEGER_LITERALParserRuleCall_0 extends RuleCallToken {
+
+ public NUMBER_LITERAL_INTEGER_LITERALParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getNUMBER_LITERALAccess().getINTEGER_LITERALParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new INTEGER_LITERAL_ValueAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getINTEGER_LITERALRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(INTEGER_LITERAL_ValueAssignment.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// UNLIMITED_LITERAL
+protected class NUMBER_LITERAL_UNLIMITED_LITERALParserRuleCall_1 extends RuleCallToken {
+
+ public NUMBER_LITERAL_UNLIMITED_LITERALParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getNUMBER_LITERALAccess().getUNLIMITED_LITERALParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new UNLIMITED_LITERAL_ValueAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getUNLIMITED_LITERALRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(UNLIMITED_LITERAL_ValueAssignment.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+/************ end Rule NUMBER_LITERAL ****************/
+
+
+/************ begin Rule INTEGER_LITERAL ****************
+ *
+ * // (suffix = SuffixExpression) ? ;
+ * INTEGER_LITERAL:
+ * value=IntegerValue;
+ *
+ **/
+
+// value=IntegerValue
+protected class INTEGER_LITERAL_ValueAssignment extends AssignmentToken {
+
+ public INTEGER_LITERAL_ValueAssignment(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getINTEGER_LITERALAccess().getValueAssignment();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getINTEGER_LITERALRule().getType().getClassifier())
+ return null;
+ if((value = eObjectConsumer.getConsumable("value",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("value");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getINTEGER_LITERALAccess().getValueIntegerValueTerminalRuleCall_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getINTEGER_LITERALAccess().getValueIntegerValueTerminalRuleCall_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+/************ end Rule INTEGER_LITERAL ****************/
+
+
+/************ begin Rule UNLIMITED_LITERAL ****************
+ *
+ * // (suffix = SuffixExpression) ? ;
+ * UNLIMITED_LITERAL:
+ * value="*";
+ *
+ **/
+
+// value="*"
+protected class UNLIMITED_LITERAL_ValueAssignment extends AssignmentToken {
+
+ public UNLIMITED_LITERAL_ValueAssignment(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getUNLIMITED_LITERALAccess().getValueAssignment();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getUNLIMITED_LITERALRule().getType().getClassifier())
+ return null;
+ if((value = eObjectConsumer.getConsumable("value",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("value");
+ if(keywordSerializer.isValid(obj.getEObject(), grammarAccess.getUNLIMITED_LITERALAccess().getValueAsteriskKeyword_0(), value, null)) {
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getUNLIMITED_LITERALAccess().getValueAsteriskKeyword_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+/************ end Rule UNLIMITED_LITERAL ****************/
+
+
+/************ begin Rule STRING_LITERAL ****************
+ *
+ * // (suffix = SuffixExpression) ?;
+ * STRING_LITERAL:
+ * value=STRING;
+ *
+ **/
+
+// value=STRING
+protected class STRING_LITERAL_ValueAssignment extends AssignmentToken {
+
+ public STRING_LITERAL_ValueAssignment(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSTRING_LITERALAccess().getValueAssignment();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getSTRING_LITERALRule().getType().getClassifier())
+ return null;
+ if((value = eObjectConsumer.getConsumable("value",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("value");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getSTRING_LITERALAccess().getValueSTRINGTerminalRuleCall_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getSTRING_LITERALAccess().getValueSTRINGTerminalRuleCall_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+/************ end Rule STRING_LITERAL ****************/
+
+
+/************ begin Rule NameExpression ****************
+ *
+ * NameExpression:
+ * (prefixOp=("++" | "--") path=QualifiedNamePath? id=ID | path=QualifiedNamePath? id=ID (invocationCompletion=Tuple |
+ * sequenceConstructionCompletion=SequenceConstructionOrAccessCompletion | postfixOp=("++" | "--"))?)
+ * suffix=SuffixExpression?;
+ *
+ **/
+
+// (prefixOp=("++" | "--") path=QualifiedNamePath? id=ID | path=QualifiedNamePath? id=ID (invocationCompletion=Tuple |
+// sequenceConstructionCompletion=SequenceConstructionOrAccessCompletion | postfixOp=("++" | "--"))?)
+// suffix=SuffixExpression?
+protected class NameExpression_Group extends GroupToken {
+
+ public NameExpression_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getNameExpressionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NameExpression_SuffixAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new NameExpression_Alternatives_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getNameExpressionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// prefixOp=("++" | "--") path=QualifiedNamePath? id=ID | path=QualifiedNamePath? id=ID (invocationCompletion=Tuple |
+// sequenceConstructionCompletion=SequenceConstructionOrAccessCompletion | postfixOp=("++" | "--"))?
+protected class NameExpression_Alternatives_0 extends AlternativesToken {
+
+ public NameExpression_Alternatives_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getNameExpressionAccess().getAlternatives_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NameExpression_Group_0_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new NameExpression_Group_0_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// prefixOp=("++" | "--") path=QualifiedNamePath? id=ID
+protected class NameExpression_Group_0_0 extends GroupToken {
+
+ public NameExpression_Group_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getNameExpressionAccess().getGroup_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NameExpression_IdAssignment_0_0_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// prefixOp=("++" | "--")
+protected class NameExpression_PrefixOpAssignment_0_0_0 extends AssignmentToken {
+
+ public NameExpression_PrefixOpAssignment_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getNameExpressionAccess().getPrefixOpAssignment_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("prefixOp",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("prefixOp");
+ if(keywordSerializer.isValid(obj.getEObject(), grammarAccess.getNameExpressionAccess().getPrefixOpPlusSignPlusSignKeyword_0_0_0_0_0(), value, null)) {
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getNameExpressionAccess().getPrefixOpPlusSignPlusSignKeyword_0_0_0_0_0();
+ return obj;
+ }
+ if(keywordSerializer.isValid(obj.getEObject(), grammarAccess.getNameExpressionAccess().getPrefixOpHyphenMinusHyphenMinusKeyword_0_0_0_0_1(), value, null)) {
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getNameExpressionAccess().getPrefixOpHyphenMinusHyphenMinusKeyword_0_0_0_0_1();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// path=QualifiedNamePath?
+protected class NameExpression_PathAssignment_0_0_1 extends AssignmentToken {
+
+ public NameExpression_PathAssignment_0_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getNameExpressionAccess().getPathAssignment_0_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new QualifiedNamePath_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("path",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("path");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getQualifiedNamePathRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getNameExpressionAccess().getPathQualifiedNamePathParserRuleCall_0_0_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new NameExpression_PrefixOpAssignment_0_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// id=ID
+protected class NameExpression_IdAssignment_0_0_2 extends AssignmentToken {
+
+ public NameExpression_IdAssignment_0_0_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getNameExpressionAccess().getIdAssignment_0_0_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NameExpression_PathAssignment_0_0_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new NameExpression_PrefixOpAssignment_0_0_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("id",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("id");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getNameExpressionAccess().getIdIDTerminalRuleCall_0_0_2_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getNameExpressionAccess().getIdIDTerminalRuleCall_0_0_2_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+// path=QualifiedNamePath? id=ID (invocationCompletion=Tuple |
+// sequenceConstructionCompletion=SequenceConstructionOrAccessCompletion | postfixOp=("++" | "--"))?
+protected class NameExpression_Group_0_1 extends GroupToken {
+
+ public NameExpression_Group_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getNameExpressionAccess().getGroup_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NameExpression_Alternatives_0_1_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new NameExpression_IdAssignment_0_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// path=QualifiedNamePath?
+protected class NameExpression_PathAssignment_0_1_0 extends AssignmentToken {
+
+ public NameExpression_PathAssignment_0_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getNameExpressionAccess().getPathAssignment_0_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new QualifiedNamePath_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("path",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("path");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getQualifiedNamePathRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getNameExpressionAccess().getPathQualifiedNamePathParserRuleCall_0_1_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// id=ID
+protected class NameExpression_IdAssignment_0_1_1 extends AssignmentToken {
+
+ public NameExpression_IdAssignment_0_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getNameExpressionAccess().getIdAssignment_0_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NameExpression_PathAssignment_0_1_0(lastRuleCallOrigin, this, 0, inst);
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index - 1, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("id",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("id");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getNameExpressionAccess().getIdIDTerminalRuleCall_0_1_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getNameExpressionAccess().getIdIDTerminalRuleCall_0_1_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// (invocationCompletion=Tuple | sequenceConstructionCompletion=SequenceConstructionOrAccessCompletion | postfixOp=("++" |
+// "--"))?
+protected class NameExpression_Alternatives_0_1_2 extends AlternativesToken {
+
+ public NameExpression_Alternatives_0_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getNameExpressionAccess().getAlternatives_0_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NameExpression_InvocationCompletionAssignment_0_1_2_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new NameExpression_SequenceConstructionCompletionAssignment_0_1_2_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new NameExpression_PostfixOpAssignment_0_1_2_2(lastRuleCallOrigin, this, 2, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// invocationCompletion=Tuple
+protected class NameExpression_InvocationCompletionAssignment_0_1_2_0 extends AssignmentToken {
+
+ public NameExpression_InvocationCompletionAssignment_0_1_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getNameExpressionAccess().getInvocationCompletionAssignment_0_1_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Tuple_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("invocationCompletion",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("invocationCompletion");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getTupleRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getNameExpressionAccess().getInvocationCompletionTupleParserRuleCall_0_1_2_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new NameExpression_IdAssignment_0_1_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// sequenceConstructionCompletion=SequenceConstructionOrAccessCompletion
+protected class NameExpression_SequenceConstructionCompletionAssignment_0_1_2_1 extends AssignmentToken {
+
+ public NameExpression_SequenceConstructionCompletionAssignment_0_1_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getNameExpressionAccess().getSequenceConstructionCompletionAssignment_0_1_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SequenceConstructionOrAccessCompletion_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("sequenceConstructionCompletion",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("sequenceConstructionCompletion");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSequenceConstructionOrAccessCompletionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getNameExpressionAccess().getSequenceConstructionCompletionSequenceConstructionOrAccessCompletionParserRuleCall_0_1_2_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new NameExpression_IdAssignment_0_1_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// postfixOp=("++" | "--")
+protected class NameExpression_PostfixOpAssignment_0_1_2_2 extends AssignmentToken {
+
+ public NameExpression_PostfixOpAssignment_0_1_2_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getNameExpressionAccess().getPostfixOpAssignment_0_1_2_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NameExpression_IdAssignment_0_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("postfixOp",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("postfixOp");
+ if(keywordSerializer.isValid(obj.getEObject(), grammarAccess.getNameExpressionAccess().getPostfixOpPlusSignPlusSignKeyword_0_1_2_2_0_0(), value, null)) {
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getNameExpressionAccess().getPostfixOpPlusSignPlusSignKeyword_0_1_2_2_0_0();
+ return obj;
+ }
+ if(keywordSerializer.isValid(obj.getEObject(), grammarAccess.getNameExpressionAccess().getPostfixOpHyphenMinusHyphenMinusKeyword_0_1_2_2_0_1(), value, null)) {
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getNameExpressionAccess().getPostfixOpHyphenMinusHyphenMinusKeyword_0_1_2_2_0_1();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+
+
+// suffix=SuffixExpression?
+protected class NameExpression_SuffixAssignment_1 extends AssignmentToken {
+
+ public NameExpression_SuffixAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getNameExpressionAccess().getSuffixAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuffixExpression_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("suffix",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("suffix");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSuffixExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getNameExpressionAccess().getSuffixSuffixExpressionParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new NameExpression_Alternatives_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule NameExpression ****************/
+
+
+/************ begin Rule QualifiedNamePath ****************
+ *
+ * QualifiedNamePath:
+ * (namespace+=UnqualifiedName "::")+;
+ *
+ **/
+
+// (namespace+=UnqualifiedName "::")+
+protected class QualifiedNamePath_Group extends GroupToken {
+
+ public QualifiedNamePath_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getQualifiedNamePathAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new QualifiedNamePath_ColonColonKeyword_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// namespace+=UnqualifiedName
+protected class QualifiedNamePath_NamespaceAssignment_0 extends AssignmentToken {
+
+ public QualifiedNamePath_NamespaceAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getQualifiedNamePathAccess().getNamespaceAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new UnqualifiedName_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("namespace",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("namespace");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getUnqualifiedNameRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getQualifiedNamePathAccess().getNamespaceUnqualifiedNameParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new QualifiedNamePath_Group(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index - 1, consumed);
+ }
+ }
+}
+
+// "::"
+protected class QualifiedNamePath_ColonColonKeyword_1 extends KeywordToken {
+
+ public QualifiedNamePath_ColonColonKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getQualifiedNamePathAccess().getColonColonKeyword_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new QualifiedNamePath_NamespaceAssignment_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule QualifiedNamePath ****************/
+
+
+/************ begin Rule UnqualifiedName ****************
+ *
+ * UnqualifiedName:
+ * name=ID templateBinding=TemplateBinding?;
+ *
+ **/
+
+// name=ID templateBinding=TemplateBinding?
+protected class UnqualifiedName_Group extends GroupToken {
+
+ public UnqualifiedName_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getUnqualifiedNameAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new UnqualifiedName_TemplateBindingAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new UnqualifiedName_NameAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getUnqualifiedNameRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// name=ID
+protected class UnqualifiedName_NameAssignment_0 extends AssignmentToken {
+
+ public UnqualifiedName_NameAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getUnqualifiedNameAccess().getNameAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getUnqualifiedNameAccess().getNameIDTerminalRuleCall_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getUnqualifiedNameAccess().getNameIDTerminalRuleCall_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// templateBinding=TemplateBinding?
+protected class UnqualifiedName_TemplateBindingAssignment_1 extends AssignmentToken {
+
+ public UnqualifiedName_TemplateBindingAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getUnqualifiedNameAccess().getTemplateBindingAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new TemplateBinding_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("templateBinding",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("templateBinding");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getTemplateBindingRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getUnqualifiedNameAccess().getTemplateBindingTemplateBindingParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new UnqualifiedName_NameAssignment_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule UnqualifiedName ****************/
+
+
+/************ begin Rule TemplateBinding ****************
+ *
+ * TemplateBinding:
+ * "<" bindings+=NamedTemplateBinding ("," bindings+=NamedTemplateBinding)* ">";
+ *
+ **/
+
+// "<" bindings+=NamedTemplateBinding ("," bindings+=NamedTemplateBinding)* ">"
+protected class TemplateBinding_Group extends GroupToken {
+
+ public TemplateBinding_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getTemplateBindingAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new TemplateBinding_GreaterThanSignKeyword_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getTemplateBindingRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "<"
+protected class TemplateBinding_LessThanSignKeyword_0 extends KeywordToken {
+
+ public TemplateBinding_LessThanSignKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getTemplateBindingAccess().getLessThanSignKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// bindings+=NamedTemplateBinding
+protected class TemplateBinding_BindingsAssignment_1 extends AssignmentToken {
+
+ public TemplateBinding_BindingsAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getTemplateBindingAccess().getBindingsAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NamedTemplateBinding_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("bindings",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("bindings");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getNamedTemplateBindingRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getTemplateBindingAccess().getBindingsNamedTemplateBindingParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new TemplateBinding_LessThanSignKeyword_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// ("," bindings+=NamedTemplateBinding)*
+protected class TemplateBinding_Group_2 extends GroupToken {
+
+ public TemplateBinding_Group_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getTemplateBindingAccess().getGroup_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new TemplateBinding_BindingsAssignment_2_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// ","
+protected class TemplateBinding_CommaKeyword_2_0 extends KeywordToken {
+
+ public TemplateBinding_CommaKeyword_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getTemplateBindingAccess().getCommaKeyword_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new TemplateBinding_Group_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new TemplateBinding_BindingsAssignment_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// bindings+=NamedTemplateBinding
+protected class TemplateBinding_BindingsAssignment_2_1 extends AssignmentToken {
+
+ public TemplateBinding_BindingsAssignment_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getTemplateBindingAccess().getBindingsAssignment_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NamedTemplateBinding_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("bindings",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("bindings");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getNamedTemplateBindingRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getTemplateBindingAccess().getBindingsNamedTemplateBindingParserRuleCall_2_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new TemplateBinding_CommaKeyword_2_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// ">"
+protected class TemplateBinding_GreaterThanSignKeyword_3 extends KeywordToken {
+
+ public TemplateBinding_GreaterThanSignKeyword_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getTemplateBindingAccess().getGreaterThanSignKeyword_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new TemplateBinding_Group_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new TemplateBinding_BindingsAssignment_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule TemplateBinding ****************/
+
+
+/************ begin Rule NamedTemplateBinding ****************
+ *
+ * NamedTemplateBinding:
+ * formal=ID "=>" actual=QualifiedNameWithBinding;
+ *
+ **/
+
+// formal=ID "=>" actual=QualifiedNameWithBinding
+protected class NamedTemplateBinding_Group extends GroupToken {
+
+ public NamedTemplateBinding_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getNamedTemplateBindingAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NamedTemplateBinding_ActualAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getNamedTemplateBindingRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// formal=ID
+protected class NamedTemplateBinding_FormalAssignment_0 extends AssignmentToken {
+
+ public NamedTemplateBinding_FormalAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getNamedTemplateBindingAccess().getFormalAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("formal",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("formal");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getNamedTemplateBindingAccess().getFormalIDTerminalRuleCall_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getNamedTemplateBindingAccess().getFormalIDTerminalRuleCall_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// "=>"
+protected class NamedTemplateBinding_EqualsSignGreaterThanSignKeyword_1 extends KeywordToken {
+
+ public NamedTemplateBinding_EqualsSignGreaterThanSignKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getNamedTemplateBindingAccess().getEqualsSignGreaterThanSignKeyword_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NamedTemplateBinding_FormalAssignment_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// actual=QualifiedNameWithBinding
+protected class NamedTemplateBinding_ActualAssignment_2 extends AssignmentToken {
+
+ public NamedTemplateBinding_ActualAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getNamedTemplateBindingAccess().getActualAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new QualifiedNameWithBinding_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("actual",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("actual");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getQualifiedNameWithBindingRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getNamedTemplateBindingAccess().getActualQualifiedNameWithBindingParserRuleCall_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new NamedTemplateBinding_EqualsSignGreaterThanSignKeyword_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule NamedTemplateBinding ****************/
+
+
+/************ begin Rule QualifiedNameWithBinding ****************
+ *
+ * QualifiedNameWithBinding:
+ * id=ID binding=TemplateBinding? ("::" remaining=QualifiedNameWithBinding)?;
+ *
+ **/
+
+// id=ID binding=TemplateBinding? ("::" remaining=QualifiedNameWithBinding)?
+protected class QualifiedNameWithBinding_Group extends GroupToken {
+
+ public QualifiedNameWithBinding_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getQualifiedNameWithBindingAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new QualifiedNameWithBinding_Group_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new QualifiedNameWithBinding_BindingAssignment_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new QualifiedNameWithBinding_IdAssignment_0(lastRuleCallOrigin, this, 2, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getQualifiedNameWithBindingRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// id=ID
+protected class QualifiedNameWithBinding_IdAssignment_0 extends AssignmentToken {
+
+ public QualifiedNameWithBinding_IdAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getQualifiedNameWithBindingAccess().getIdAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("id",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("id");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getQualifiedNameWithBindingAccess().getIdIDTerminalRuleCall_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getQualifiedNameWithBindingAccess().getIdIDTerminalRuleCall_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// binding=TemplateBinding?
+protected class QualifiedNameWithBinding_BindingAssignment_1 extends AssignmentToken {
+
+ public QualifiedNameWithBinding_BindingAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getQualifiedNameWithBindingAccess().getBindingAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new TemplateBinding_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("binding",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("binding");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getTemplateBindingRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getQualifiedNameWithBindingAccess().getBindingTemplateBindingParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new QualifiedNameWithBinding_IdAssignment_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// ("::" remaining=QualifiedNameWithBinding)?
+protected class QualifiedNameWithBinding_Group_2 extends GroupToken {
+
+ public QualifiedNameWithBinding_Group_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getQualifiedNameWithBindingAccess().getGroup_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new QualifiedNameWithBinding_RemainingAssignment_2_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "::"
+protected class QualifiedNameWithBinding_ColonColonKeyword_2_0 extends KeywordToken {
+
+ public QualifiedNameWithBinding_ColonColonKeyword_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getQualifiedNameWithBindingAccess().getColonColonKeyword_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new QualifiedNameWithBinding_BindingAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new QualifiedNameWithBinding_IdAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// remaining=QualifiedNameWithBinding
+protected class QualifiedNameWithBinding_RemainingAssignment_2_1 extends AssignmentToken {
+
+ public QualifiedNameWithBinding_RemainingAssignment_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getQualifiedNameWithBindingAccess().getRemainingAssignment_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new QualifiedNameWithBinding_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("remaining",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("remaining");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getQualifiedNameWithBindingRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getQualifiedNameWithBindingAccess().getRemainingQualifiedNameWithBindingParserRuleCall_2_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new QualifiedNameWithBinding_ColonColonKeyword_2_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule QualifiedNameWithBinding ****************/
+
+
+/************ begin Rule Tuple ****************
+ *
+ * Tuple:
+ * {Tuple} "(" (tupleElements+=TupleElement ("," tupleElements+=TupleElement)*)? ")";
+ *
+ **/
+
+// {Tuple} "(" (tupleElements+=TupleElement ("," tupleElements+=TupleElement)*)? ")"
+protected class Tuple_Group extends GroupToken {
+
+ public Tuple_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getTupleAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Tuple_RightParenthesisKeyword_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getTupleAccess().getTupleAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {Tuple}
+protected class Tuple_TupleAction_0 extends ActionToken {
+
+ public Tuple_TupleAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getTupleAccess().getTupleAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// "("
+protected class Tuple_LeftParenthesisKeyword_1 extends KeywordToken {
+
+ public Tuple_LeftParenthesisKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getTupleAccess().getLeftParenthesisKeyword_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Tuple_TupleAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// (tupleElements+=TupleElement ("," tupleElements+=TupleElement)*)?
+protected class Tuple_Group_2 extends GroupToken {
+
+ public Tuple_Group_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getTupleAccess().getGroup_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Tuple_Group_2_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Tuple_TupleElementsAssignment_2_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// tupleElements+=TupleElement
+protected class Tuple_TupleElementsAssignment_2_0 extends AssignmentToken {
+
+ public Tuple_TupleElementsAssignment_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getTupleAccess().getTupleElementsAssignment_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new TupleElement_ArgumentAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("tupleElements",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("tupleElements");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getTupleElementRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getTupleAccess().getTupleElementsTupleElementParserRuleCall_2_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Tuple_LeftParenthesisKeyword_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// ("," tupleElements+=TupleElement)*
+protected class Tuple_Group_2_1 extends GroupToken {
+
+ public Tuple_Group_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getTupleAccess().getGroup_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Tuple_TupleElementsAssignment_2_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// ","
+protected class Tuple_CommaKeyword_2_1_0 extends KeywordToken {
+
+ public Tuple_CommaKeyword_2_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getTupleAccess().getCommaKeyword_2_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Tuple_Group_2_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Tuple_TupleElementsAssignment_2_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// tupleElements+=TupleElement
+protected class Tuple_TupleElementsAssignment_2_1_1 extends AssignmentToken {
+
+ public Tuple_TupleElementsAssignment_2_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getTupleAccess().getTupleElementsAssignment_2_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new TupleElement_ArgumentAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("tupleElements",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("tupleElements");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getTupleElementRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getTupleAccess().getTupleElementsTupleElementParserRuleCall_2_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Tuple_CommaKeyword_2_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+// ")"
+protected class Tuple_RightParenthesisKeyword_3 extends KeywordToken {
+
+ public Tuple_RightParenthesisKeyword_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getTupleAccess().getRightParenthesisKeyword_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Tuple_Group_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Tuple_LeftParenthesisKeyword_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule Tuple ****************/
+
+
+/************ begin Rule TupleElement ****************
+ *
+ * TupleElement:
+ * argument=Expression;
+ *
+ **/
+
+// argument=Expression
+protected class TupleElement_ArgumentAssignment extends AssignmentToken {
+
+ public TupleElement_ArgumentAssignment(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getTupleElementAccess().getArgumentAssignment();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_ConditionalTestExpressionParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getTupleElementRule().getType().getClassifier())
+ return null;
+ if((value = eObjectConsumer.getConsumable("argument",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("argument");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getTupleElementAccess().getArgumentExpressionParserRuleCall_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+/************ end Rule TupleElement ****************/
+
+
+/************ begin Rule Expression ****************
+ *
+ * / **************
+ * * Expressions
+ * ************** / Expression:
+ * ConditionalTestExpression;
+ *
+ **/
+
+// ConditionalTestExpression
+protected class Expression_ConditionalTestExpressionParserRuleCall extends RuleCallToken {
+
+ public Expression_ConditionalTestExpressionParserRuleCall(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getExpressionAccess().getConditionalTestExpressionParserRuleCall();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ConditionalTestExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getConditionalTestExpressionRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(ConditionalTestExpression_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+/************ end Rule Expression ****************/
+
+
+/************ begin Rule ConditionalTestExpression ****************
+ *
+ * ConditionalTestExpression:
+ * exp=ConditionalOrExpression ("?" whenTrue=ConditionalTestExpression ":" whenFalse=ConditionalTestExpression)?;
+ *
+ **/
+
+// exp=ConditionalOrExpression ("?" whenTrue=ConditionalTestExpression ":" whenFalse=ConditionalTestExpression)?
+protected class ConditionalTestExpression_Group extends GroupToken {
+
+ public ConditionalTestExpression_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getConditionalTestExpressionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ConditionalTestExpression_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ConditionalTestExpression_ExpAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getConditionalTestExpressionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// exp=ConditionalOrExpression
+protected class ConditionalTestExpression_ExpAssignment_0 extends AssignmentToken {
+
+ public ConditionalTestExpression_ExpAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getConditionalTestExpressionAccess().getExpAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ConditionalOrExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("exp",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("exp");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getConditionalOrExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getConditionalTestExpressionAccess().getExpConditionalOrExpressionParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// ("?" whenTrue=ConditionalTestExpression ":" whenFalse=ConditionalTestExpression)?
+protected class ConditionalTestExpression_Group_1 extends GroupToken {
+
+ public ConditionalTestExpression_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getConditionalTestExpressionAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ConditionalTestExpression_WhenFalseAssignment_1_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "?"
+protected class ConditionalTestExpression_QuestionMarkKeyword_1_0 extends KeywordToken {
+
+ public ConditionalTestExpression_QuestionMarkKeyword_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getConditionalTestExpressionAccess().getQuestionMarkKeyword_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ConditionalTestExpression_ExpAssignment_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// whenTrue=ConditionalTestExpression
+protected class ConditionalTestExpression_WhenTrueAssignment_1_1 extends AssignmentToken {
+
+ public ConditionalTestExpression_WhenTrueAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getConditionalTestExpressionAccess().getWhenTrueAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ConditionalTestExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("whenTrue",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("whenTrue");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getConditionalTestExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getConditionalTestExpressionAccess().getWhenTrueConditionalTestExpressionParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ConditionalTestExpression_QuestionMarkKeyword_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// ":"
+protected class ConditionalTestExpression_ColonKeyword_1_2 extends KeywordToken {
+
+ public ConditionalTestExpression_ColonKeyword_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getConditionalTestExpressionAccess().getColonKeyword_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ConditionalTestExpression_WhenTrueAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// whenFalse=ConditionalTestExpression
+protected class ConditionalTestExpression_WhenFalseAssignment_1_3 extends AssignmentToken {
+
+ public ConditionalTestExpression_WhenFalseAssignment_1_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getConditionalTestExpressionAccess().getWhenFalseAssignment_1_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ConditionalTestExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("whenFalse",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("whenFalse");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getConditionalTestExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getConditionalTestExpressionAccess().getWhenFalseConditionalTestExpressionParserRuleCall_1_3_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ConditionalTestExpression_ColonKeyword_1_2(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule ConditionalTestExpression ****************/
+
+
+/************ begin Rule ConditionalOrExpression ****************
+ *
+ * ConditionalOrExpression:
+ * exp+=ConditionalAndExpression ("||" exp+=ConditionalAndExpression)*;
+ *
+ **/
+
+// exp+=ConditionalAndExpression ("||" exp+=ConditionalAndExpression)*
+protected class ConditionalOrExpression_Group extends GroupToken {
+
+ public ConditionalOrExpression_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getConditionalOrExpressionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ConditionalOrExpression_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ConditionalOrExpression_ExpAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getConditionalOrExpressionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// exp+=ConditionalAndExpression
+protected class ConditionalOrExpression_ExpAssignment_0 extends AssignmentToken {
+
+ public ConditionalOrExpression_ExpAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getConditionalOrExpressionAccess().getExpAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ConditionalAndExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("exp",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("exp");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getConditionalAndExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getConditionalOrExpressionAccess().getExpConditionalAndExpressionParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// ("||" exp+=ConditionalAndExpression)*
+protected class ConditionalOrExpression_Group_1 extends GroupToken {
+
+ public ConditionalOrExpression_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getConditionalOrExpressionAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ConditionalOrExpression_ExpAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "||"
+protected class ConditionalOrExpression_VerticalLineVerticalLineKeyword_1_0 extends KeywordToken {
+
+ public ConditionalOrExpression_VerticalLineVerticalLineKeyword_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getConditionalOrExpressionAccess().getVerticalLineVerticalLineKeyword_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ConditionalOrExpression_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ConditionalOrExpression_ExpAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// exp+=ConditionalAndExpression
+protected class ConditionalOrExpression_ExpAssignment_1_1 extends AssignmentToken {
+
+ public ConditionalOrExpression_ExpAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getConditionalOrExpressionAccess().getExpAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ConditionalAndExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("exp",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("exp");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getConditionalAndExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getConditionalOrExpressionAccess().getExpConditionalAndExpressionParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ConditionalOrExpression_VerticalLineVerticalLineKeyword_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule ConditionalOrExpression ****************/
+
+
+/************ begin Rule ConditionalAndExpression ****************
+ *
+ * ConditionalAndExpression:
+ * exp+=InclusiveOrExpression ("&&" exp+=InclusiveOrExpression)*;
+ *
+ **/
+
+// exp+=InclusiveOrExpression ("&&" exp+=InclusiveOrExpression)*
+protected class ConditionalAndExpression_Group extends GroupToken {
+
+ public ConditionalAndExpression_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getConditionalAndExpressionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ConditionalAndExpression_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ConditionalAndExpression_ExpAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getConditionalAndExpressionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// exp+=InclusiveOrExpression
+protected class ConditionalAndExpression_ExpAssignment_0 extends AssignmentToken {
+
+ public ConditionalAndExpression_ExpAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getConditionalAndExpressionAccess().getExpAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InclusiveOrExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("exp",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("exp");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getInclusiveOrExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getConditionalAndExpressionAccess().getExpInclusiveOrExpressionParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// ("&&" exp+=InclusiveOrExpression)*
+protected class ConditionalAndExpression_Group_1 extends GroupToken {
+
+ public ConditionalAndExpression_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getConditionalAndExpressionAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ConditionalAndExpression_ExpAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "&&"
+protected class ConditionalAndExpression_AmpersandAmpersandKeyword_1_0 extends KeywordToken {
+
+ public ConditionalAndExpression_AmpersandAmpersandKeyword_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getConditionalAndExpressionAccess().getAmpersandAmpersandKeyword_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ConditionalAndExpression_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ConditionalAndExpression_ExpAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// exp+=InclusiveOrExpression
+protected class ConditionalAndExpression_ExpAssignment_1_1 extends AssignmentToken {
+
+ public ConditionalAndExpression_ExpAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getConditionalAndExpressionAccess().getExpAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InclusiveOrExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("exp",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("exp");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getInclusiveOrExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getConditionalAndExpressionAccess().getExpInclusiveOrExpressionParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ConditionalAndExpression_AmpersandAmpersandKeyword_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule ConditionalAndExpression ****************/
+
+
+/************ begin Rule InclusiveOrExpression ****************
+ *
+ * InclusiveOrExpression:
+ * exp+=ExclusiveOrExpression ("|" exp+=ExclusiveOrExpression)*;
+ *
+ **/
+
+// exp+=ExclusiveOrExpression ("|" exp+=ExclusiveOrExpression)*
+protected class InclusiveOrExpression_Group extends GroupToken {
+
+ public InclusiveOrExpression_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getInclusiveOrExpressionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InclusiveOrExpression_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new InclusiveOrExpression_ExpAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getInclusiveOrExpressionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// exp+=ExclusiveOrExpression
+protected class InclusiveOrExpression_ExpAssignment_0 extends AssignmentToken {
+
+ public InclusiveOrExpression_ExpAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getInclusiveOrExpressionAccess().getExpAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExclusiveOrExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("exp",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("exp");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExclusiveOrExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getInclusiveOrExpressionAccess().getExpExclusiveOrExpressionParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// ("|" exp+=ExclusiveOrExpression)*
+protected class InclusiveOrExpression_Group_1 extends GroupToken {
+
+ public InclusiveOrExpression_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getInclusiveOrExpressionAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InclusiveOrExpression_ExpAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "|"
+protected class InclusiveOrExpression_VerticalLineKeyword_1_0 extends KeywordToken {
+
+ public InclusiveOrExpression_VerticalLineKeyword_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getInclusiveOrExpressionAccess().getVerticalLineKeyword_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InclusiveOrExpression_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new InclusiveOrExpression_ExpAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// exp+=ExclusiveOrExpression
+protected class InclusiveOrExpression_ExpAssignment_1_1 extends AssignmentToken {
+
+ public InclusiveOrExpression_ExpAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getInclusiveOrExpressionAccess().getExpAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExclusiveOrExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("exp",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("exp");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExclusiveOrExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getInclusiveOrExpressionAccess().getExpExclusiveOrExpressionParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new InclusiveOrExpression_VerticalLineKeyword_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule InclusiveOrExpression ****************/
+
+
+/************ begin Rule ExclusiveOrExpression ****************
+ *
+ * ExclusiveOrExpression:
+ * exp+=AndExpression ("^" exp+=AndExpression)*;
+ *
+ **/
+
+// exp+=AndExpression ("^" exp+=AndExpression)*
+protected class ExclusiveOrExpression_Group extends GroupToken {
+
+ public ExclusiveOrExpression_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getExclusiveOrExpressionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExclusiveOrExpression_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ExclusiveOrExpression_ExpAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getExclusiveOrExpressionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// exp+=AndExpression
+protected class ExclusiveOrExpression_ExpAssignment_0 extends AssignmentToken {
+
+ public ExclusiveOrExpression_ExpAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getExclusiveOrExpressionAccess().getExpAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AndExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("exp",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("exp");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getAndExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getExclusiveOrExpressionAccess().getExpAndExpressionParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// ("^" exp+=AndExpression)*
+protected class ExclusiveOrExpression_Group_1 extends GroupToken {
+
+ public ExclusiveOrExpression_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getExclusiveOrExpressionAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExclusiveOrExpression_ExpAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "^"
+protected class ExclusiveOrExpression_CircumflexAccentKeyword_1_0 extends KeywordToken {
+
+ public ExclusiveOrExpression_CircumflexAccentKeyword_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getExclusiveOrExpressionAccess().getCircumflexAccentKeyword_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExclusiveOrExpression_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ExclusiveOrExpression_ExpAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// exp+=AndExpression
+protected class ExclusiveOrExpression_ExpAssignment_1_1 extends AssignmentToken {
+
+ public ExclusiveOrExpression_ExpAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getExclusiveOrExpressionAccess().getExpAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AndExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("exp",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("exp");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getAndExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getExclusiveOrExpressionAccess().getExpAndExpressionParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ExclusiveOrExpression_CircumflexAccentKeyword_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule ExclusiveOrExpression ****************/
+
+
+/************ begin Rule AndExpression ****************
+ *
+ * AndExpression:
+ * exp+=EqualityExpression ("&" exp+=EqualityExpression)*;
+ *
+ **/
+
+// exp+=EqualityExpression ("&" exp+=EqualityExpression)*
+protected class AndExpression_Group extends GroupToken {
+
+ public AndExpression_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAndExpressionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AndExpression_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new AndExpression_ExpAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getAndExpressionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// exp+=EqualityExpression
+protected class AndExpression_ExpAssignment_0 extends AssignmentToken {
+
+ public AndExpression_ExpAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAndExpressionAccess().getExpAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new EqualityExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("exp",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("exp");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getEqualityExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAndExpressionAccess().getExpEqualityExpressionParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// ("&" exp+=EqualityExpression)*
+protected class AndExpression_Group_1 extends GroupToken {
+
+ public AndExpression_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAndExpressionAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AndExpression_ExpAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "&"
+protected class AndExpression_AmpersandKeyword_1_0 extends KeywordToken {
+
+ public AndExpression_AmpersandKeyword_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getAndExpressionAccess().getAmpersandKeyword_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AndExpression_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new AndExpression_ExpAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// exp+=EqualityExpression
+protected class AndExpression_ExpAssignment_1_1 extends AssignmentToken {
+
+ public AndExpression_ExpAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAndExpressionAccess().getExpAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new EqualityExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("exp",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("exp");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getEqualityExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAndExpressionAccess().getExpEqualityExpressionParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new AndExpression_AmpersandKeyword_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule AndExpression ****************/
+
+
+/************ begin Rule EqualityExpression ****************
+ *
+ * EqualityExpression:
+ * exp+=ClassificationExpression (op+=("==" | "!=") exp+=ClassificationExpression)*;
+ *
+ **/
+
+// exp+=ClassificationExpression (op+=("==" | "!=") exp+=ClassificationExpression)*
+protected class EqualityExpression_Group extends GroupToken {
+
+ public EqualityExpression_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getEqualityExpressionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new EqualityExpression_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new EqualityExpression_ExpAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getEqualityExpressionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// exp+=ClassificationExpression
+protected class EqualityExpression_ExpAssignment_0 extends AssignmentToken {
+
+ public EqualityExpression_ExpAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getEqualityExpressionAccess().getExpAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassificationExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("exp",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("exp");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getClassificationExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getEqualityExpressionAccess().getExpClassificationExpressionParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// (op+=("==" | "!=") exp+=ClassificationExpression)*
+protected class EqualityExpression_Group_1 extends GroupToken {
+
+ public EqualityExpression_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getEqualityExpressionAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new EqualityExpression_ExpAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// op+=("==" | "!=")
+protected class EqualityExpression_OpAssignment_1_0 extends AssignmentToken {
+
+ public EqualityExpression_OpAssignment_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getEqualityExpressionAccess().getOpAssignment_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new EqualityExpression_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new EqualityExpression_ExpAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("op",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("op");
+ if(keywordSerializer.isValid(obj.getEObject(), grammarAccess.getEqualityExpressionAccess().getOpEqualsSignEqualsSignKeyword_1_0_0_0(), value, null)) {
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getEqualityExpressionAccess().getOpEqualsSignEqualsSignKeyword_1_0_0_0();
+ return obj;
+ }
+ if(keywordSerializer.isValid(obj.getEObject(), grammarAccess.getEqualityExpressionAccess().getOpExclamationMarkEqualsSignKeyword_1_0_0_1(), value, null)) {
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getEqualityExpressionAccess().getOpExclamationMarkEqualsSignKeyword_1_0_0_1();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// exp+=ClassificationExpression
+protected class EqualityExpression_ExpAssignment_1_1 extends AssignmentToken {
+
+ public EqualityExpression_ExpAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getEqualityExpressionAccess().getExpAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassificationExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("exp",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("exp");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getClassificationExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getEqualityExpressionAccess().getExpClassificationExpressionParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new EqualityExpression_OpAssignment_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule EqualityExpression ****************/
+
+
+/************ begin Rule ClassificationExpression ****************
+ *
+ * //enum EqualityOperator :
+ * // EQUALS = '==' |
+ * // NOT_EQUALS = '!='
+ * //;
+ * ClassificationExpression:
+ * exp=RelationalExpression (op=("instanceof" | "hastype") typeName=NameExpression)?;
+ *
+ **/
+
+// exp=RelationalExpression (op=("instanceof" | "hastype") typeName=NameExpression)?
+protected class ClassificationExpression_Group extends GroupToken {
+
+ public ClassificationExpression_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getClassificationExpressionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassificationExpression_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ClassificationExpression_ExpAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getClassificationExpressionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// exp=RelationalExpression
+protected class ClassificationExpression_ExpAssignment_0 extends AssignmentToken {
+
+ public ClassificationExpression_ExpAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getClassificationExpressionAccess().getExpAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RelationalExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("exp",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("exp");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getRelationalExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getClassificationExpressionAccess().getExpRelationalExpressionParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// (op=("instanceof" | "hastype") typeName=NameExpression)?
+protected class ClassificationExpression_Group_1 extends GroupToken {
+
+ public ClassificationExpression_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getClassificationExpressionAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassificationExpression_TypeNameAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// op=("instanceof" | "hastype")
+protected class ClassificationExpression_OpAssignment_1_0 extends AssignmentToken {
+
+ public ClassificationExpression_OpAssignment_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getClassificationExpressionAccess().getOpAssignment_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassificationExpression_ExpAssignment_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("op",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("op");
+ if(keywordSerializer.isValid(obj.getEObject(), grammarAccess.getClassificationExpressionAccess().getOpInstanceofKeyword_1_0_0_0(), value, null)) {
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getClassificationExpressionAccess().getOpInstanceofKeyword_1_0_0_0();
+ return obj;
+ }
+ if(keywordSerializer.isValid(obj.getEObject(), grammarAccess.getClassificationExpressionAccess().getOpHastypeKeyword_1_0_0_1(), value, null)) {
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getClassificationExpressionAccess().getOpHastypeKeyword_1_0_0_1();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// typeName=NameExpression
+protected class ClassificationExpression_TypeNameAssignment_1_1 extends AssignmentToken {
+
+ public ClassificationExpression_TypeNameAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getClassificationExpressionAccess().getTypeNameAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NameExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("typeName",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("typeName");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getNameExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getClassificationExpressionAccess().getTypeNameNameExpressionParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ClassificationExpression_OpAssignment_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule ClassificationExpression ****************/
+
+
+/************ begin Rule RelationalExpression ****************
+ *
+ * //enum ClassificationOperator :
+ * // INSTANCEOF = 'instanceof' |
+ * // HASTYPE = 'hastype'
+ * //;
+ * RelationalExpression:
+ * left=ShiftExpression (op=("<" | ">" | "<=" | ">=") right=ShiftExpression)?;
+ *
+ **/
+
+// left=ShiftExpression (op=("<" | ">" | "<=" | ">=") right=ShiftExpression)?
+protected class RelationalExpression_Group extends GroupToken {
+
+ public RelationalExpression_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getRelationalExpressionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RelationalExpression_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new RelationalExpression_LeftAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getRelationalExpressionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// left=ShiftExpression
+protected class RelationalExpression_LeftAssignment_0 extends AssignmentToken {
+
+ public RelationalExpression_LeftAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getRelationalExpressionAccess().getLeftAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ShiftExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("left",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("left");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getShiftExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getRelationalExpressionAccess().getLeftShiftExpressionParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// (op=("<" | ">" | "<=" | ">=") right=ShiftExpression)?
+protected class RelationalExpression_Group_1 extends GroupToken {
+
+ public RelationalExpression_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getRelationalExpressionAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RelationalExpression_RightAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// op=("<" | ">" | "<=" | ">=")
+protected class RelationalExpression_OpAssignment_1_0 extends AssignmentToken {
+
+ public RelationalExpression_OpAssignment_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getRelationalExpressionAccess().getOpAssignment_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RelationalExpression_LeftAssignment_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("op",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("op");
+ if(keywordSerializer.isValid(obj.getEObject(), grammarAccess.getRelationalExpressionAccess().getOpLessThanSignKeyword_1_0_0_0(), value, null)) {
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getRelationalExpressionAccess().getOpLessThanSignKeyword_1_0_0_0();
+ return obj;
+ }
+ if(keywordSerializer.isValid(obj.getEObject(), grammarAccess.getRelationalExpressionAccess().getOpGreaterThanSignKeyword_1_0_0_1(), value, null)) {
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getRelationalExpressionAccess().getOpGreaterThanSignKeyword_1_0_0_1();
+ return obj;
+ }
+ if(keywordSerializer.isValid(obj.getEObject(), grammarAccess.getRelationalExpressionAccess().getOpLessThanSignEqualsSignKeyword_1_0_0_2(), value, null)) {
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getRelationalExpressionAccess().getOpLessThanSignEqualsSignKeyword_1_0_0_2();
+ return obj;
+ }
+ if(keywordSerializer.isValid(obj.getEObject(), grammarAccess.getRelationalExpressionAccess().getOpGreaterThanSignEqualsSignKeyword_1_0_0_3(), value, null)) {
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getRelationalExpressionAccess().getOpGreaterThanSignEqualsSignKeyword_1_0_0_3();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// right=ShiftExpression
+protected class RelationalExpression_RightAssignment_1_1 extends AssignmentToken {
+
+ public RelationalExpression_RightAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getRelationalExpressionAccess().getRightAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ShiftExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("right",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("right");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getShiftExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getRelationalExpressionAccess().getRightShiftExpressionParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new RelationalExpression_OpAssignment_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule RelationalExpression ****************/
+
+
+/************ begin Rule ShiftExpression ****************
+ *
+ * //RelationalOperator :
+ * // LOWER = '<' |
+ * // UPPER = '>' |
+ * // LOWER_EQUALS = '<=' |
+ * // UPPER_EQUALS = '>='
+ * //;
+ * ShiftExpression:
+ * exp+=AdditiveExpression (op=("<<" | ">>" | ">>>") exp+=AdditiveExpression)?;
+ *
+ **/
+
+// exp+=AdditiveExpression (op=("<<" | ">>" | ">>>") exp+=AdditiveExpression)?
+protected class ShiftExpression_Group extends GroupToken {
+
+ public ShiftExpression_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getShiftExpressionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ShiftExpression_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ShiftExpression_ExpAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getShiftExpressionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// exp+=AdditiveExpression
+protected class ShiftExpression_ExpAssignment_0 extends AssignmentToken {
+
+ public ShiftExpression_ExpAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getShiftExpressionAccess().getExpAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AdditiveExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("exp",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("exp");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getAdditiveExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getShiftExpressionAccess().getExpAdditiveExpressionParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// (op=("<<" | ">>" | ">>>") exp+=AdditiveExpression)?
+protected class ShiftExpression_Group_1 extends GroupToken {
+
+ public ShiftExpression_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getShiftExpressionAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ShiftExpression_ExpAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// op=("<<" | ">>" | ">>>")
+protected class ShiftExpression_OpAssignment_1_0 extends AssignmentToken {
+
+ public ShiftExpression_OpAssignment_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getShiftExpressionAccess().getOpAssignment_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ShiftExpression_ExpAssignment_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("op",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("op");
+ if(keywordSerializer.isValid(obj.getEObject(), grammarAccess.getShiftExpressionAccess().getOpLessThanSignLessThanSignKeyword_1_0_0_0(), value, null)) {
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getShiftExpressionAccess().getOpLessThanSignLessThanSignKeyword_1_0_0_0();
+ return obj;
+ }
+ if(keywordSerializer.isValid(obj.getEObject(), grammarAccess.getShiftExpressionAccess().getOpGreaterThanSignGreaterThanSignKeyword_1_0_0_1(), value, null)) {
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getShiftExpressionAccess().getOpGreaterThanSignGreaterThanSignKeyword_1_0_0_1();
+ return obj;
+ }
+ if(keywordSerializer.isValid(obj.getEObject(), grammarAccess.getShiftExpressionAccess().getOpGreaterThanSignGreaterThanSignGreaterThanSignKeyword_1_0_0_2(), value, null)) {
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getShiftExpressionAccess().getOpGreaterThanSignGreaterThanSignGreaterThanSignKeyword_1_0_0_2();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// exp+=AdditiveExpression
+protected class ShiftExpression_ExpAssignment_1_1 extends AssignmentToken {
+
+ public ShiftExpression_ExpAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getShiftExpressionAccess().getExpAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AdditiveExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("exp",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("exp");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getAdditiveExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getShiftExpressionAccess().getExpAdditiveExpressionParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ShiftExpression_OpAssignment_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule ShiftExpression ****************/
+
+
+/************ begin Rule AdditiveExpression ****************
+ *
+ * //enum ShiftOperator :
+ * // LSHIFT = '<<' |
+ * // RSHIFT = '>>' |
+ * // URSHIFT = '>>>'
+ * //;
+ * AdditiveExpression:
+ * exp+=MultiplicativeExpression (op+=("+" | "-") exp+=MultiplicativeExpression)*;
+ *
+ **/
+
+// exp+=MultiplicativeExpression (op+=("+" | "-") exp+=MultiplicativeExpression)*
+protected class AdditiveExpression_Group extends GroupToken {
+
+ public AdditiveExpression_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAdditiveExpressionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AdditiveExpression_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new AdditiveExpression_ExpAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getAdditiveExpressionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// exp+=MultiplicativeExpression
+protected class AdditiveExpression_ExpAssignment_0 extends AssignmentToken {
+
+ public AdditiveExpression_ExpAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAdditiveExpressionAccess().getExpAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new MultiplicativeExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("exp",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("exp");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getMultiplicativeExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAdditiveExpressionAccess().getExpMultiplicativeExpressionParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// (op+=("+" | "-") exp+=MultiplicativeExpression)*
+protected class AdditiveExpression_Group_1 extends GroupToken {
+
+ public AdditiveExpression_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAdditiveExpressionAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AdditiveExpression_ExpAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// op+=("+" | "-")
+protected class AdditiveExpression_OpAssignment_1_0 extends AssignmentToken {
+
+ public AdditiveExpression_OpAssignment_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAdditiveExpressionAccess().getOpAssignment_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AdditiveExpression_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new AdditiveExpression_ExpAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("op",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("op");
+ if(keywordSerializer.isValid(obj.getEObject(), grammarAccess.getAdditiveExpressionAccess().getOpPlusSignKeyword_1_0_0_0(), value, null)) {
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getAdditiveExpressionAccess().getOpPlusSignKeyword_1_0_0_0();
+ return obj;
+ }
+ if(keywordSerializer.isValid(obj.getEObject(), grammarAccess.getAdditiveExpressionAccess().getOpHyphenMinusKeyword_1_0_0_1(), value, null)) {
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getAdditiveExpressionAccess().getOpHyphenMinusKeyword_1_0_0_1();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// exp+=MultiplicativeExpression
+protected class AdditiveExpression_ExpAssignment_1_1 extends AssignmentToken {
+
+ public AdditiveExpression_ExpAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAdditiveExpressionAccess().getExpAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new MultiplicativeExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("exp",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("exp");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getMultiplicativeExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAdditiveExpressionAccess().getExpMultiplicativeExpressionParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new AdditiveExpression_OpAssignment_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule AdditiveExpression ****************/
+
+
+/************ begin Rule MultiplicativeExpression ****************
+ *
+ * //enum AdditiveOp :
+ * // PLUS = '+' |
+ * // MINUS = '-'
+ * //;
+ * MultiplicativeExpression:
+ * exp+=UnaryExpression (op+=("*" | "/" | "%") exp+=UnaryExpression)*;
+ *
+ **/
+
+// exp+=UnaryExpression (op+=("*" | "/" | "%") exp+=UnaryExpression)*
+protected class MultiplicativeExpression_Group extends GroupToken {
+
+ public MultiplicativeExpression_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getMultiplicativeExpressionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new MultiplicativeExpression_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new MultiplicativeExpression_ExpAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getMultiplicativeExpressionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// exp+=UnaryExpression
+protected class MultiplicativeExpression_ExpAssignment_0 extends AssignmentToken {
+
+ public MultiplicativeExpression_ExpAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getMultiplicativeExpressionAccess().getExpAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new UnaryExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("exp",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("exp");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getUnaryExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getMultiplicativeExpressionAccess().getExpUnaryExpressionParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// (op+=("*" | "/" | "%") exp+=UnaryExpression)*
+protected class MultiplicativeExpression_Group_1 extends GroupToken {
+
+ public MultiplicativeExpression_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getMultiplicativeExpressionAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new MultiplicativeExpression_ExpAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// op+=("*" | "/" | "%")
+protected class MultiplicativeExpression_OpAssignment_1_0 extends AssignmentToken {
+
+ public MultiplicativeExpression_OpAssignment_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getMultiplicativeExpressionAccess().getOpAssignment_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new MultiplicativeExpression_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new MultiplicativeExpression_ExpAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("op",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("op");
+ if(keywordSerializer.isValid(obj.getEObject(), grammarAccess.getMultiplicativeExpressionAccess().getOpAsteriskKeyword_1_0_0_0(), value, null)) {
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getMultiplicativeExpressionAccess().getOpAsteriskKeyword_1_0_0_0();
+ return obj;
+ }
+ if(keywordSerializer.isValid(obj.getEObject(), grammarAccess.getMultiplicativeExpressionAccess().getOpSolidusKeyword_1_0_0_1(), value, null)) {
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getMultiplicativeExpressionAccess().getOpSolidusKeyword_1_0_0_1();
+ return obj;
+ }
+ if(keywordSerializer.isValid(obj.getEObject(), grammarAccess.getMultiplicativeExpressionAccess().getOpPercentSignKeyword_1_0_0_2(), value, null)) {
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getMultiplicativeExpressionAccess().getOpPercentSignKeyword_1_0_0_2();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// exp+=UnaryExpression
+protected class MultiplicativeExpression_ExpAssignment_1_1 extends AssignmentToken {
+
+ public MultiplicativeExpression_ExpAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getMultiplicativeExpressionAccess().getExpAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new UnaryExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("exp",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("exp");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getUnaryExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getMultiplicativeExpressionAccess().getExpUnaryExpressionParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new MultiplicativeExpression_OpAssignment_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule MultiplicativeExpression ****************/
+
+
+/************ begin Rule UnaryExpression ****************
+ *
+ * //enum MultiplicativeOp :
+ * // MULT = '*' |
+ * // DIV = '/' |
+ * // MOD = '%'
+ * //;
+ * UnaryExpression:
+ * op=("!" | "-" | "+" | "$" | "~")? exp=PrimaryExpression;
+ *
+ **/
+
+// op=("!" | "-" | "+" | "$" | "~")? exp=PrimaryExpression
+protected class UnaryExpression_Group extends GroupToken {
+
+ public UnaryExpression_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getUnaryExpressionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new UnaryExpression_ExpAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getUnaryExpressionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// op=("!" | "-" | "+" | "$" | "~")?
+protected class UnaryExpression_OpAssignment_0 extends AssignmentToken {
+
+ public UnaryExpression_OpAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getUnaryExpressionAccess().getOpAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("op",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("op");
+ if(keywordSerializer.isValid(obj.getEObject(), grammarAccess.getUnaryExpressionAccess().getOpExclamationMarkKeyword_0_0_0(), value, null)) {
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getUnaryExpressionAccess().getOpExclamationMarkKeyword_0_0_0();
+ return obj;
+ }
+ if(keywordSerializer.isValid(obj.getEObject(), grammarAccess.getUnaryExpressionAccess().getOpHyphenMinusKeyword_0_0_1(), value, null)) {
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getUnaryExpressionAccess().getOpHyphenMinusKeyword_0_0_1();
+ return obj;
+ }
+ if(keywordSerializer.isValid(obj.getEObject(), grammarAccess.getUnaryExpressionAccess().getOpPlusSignKeyword_0_0_2(), value, null)) {
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getUnaryExpressionAccess().getOpPlusSignKeyword_0_0_2();
+ return obj;
+ }
+ if(keywordSerializer.isValid(obj.getEObject(), grammarAccess.getUnaryExpressionAccess().getOpDollarSignKeyword_0_0_3(), value, null)) {
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getUnaryExpressionAccess().getOpDollarSignKeyword_0_0_3();
+ return obj;
+ }
+ if(keywordSerializer.isValid(obj.getEObject(), grammarAccess.getUnaryExpressionAccess().getOpTildeKeyword_0_0_4(), value, null)) {
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getUnaryExpressionAccess().getOpTildeKeyword_0_0_4();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// exp=PrimaryExpression
+protected class UnaryExpression_ExpAssignment_1 extends AssignmentToken {
+
+ public UnaryExpression_ExpAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getUnaryExpressionAccess().getExpAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_PrefixAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("exp",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("exp");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getPrimaryExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getUnaryExpressionAccess().getExpPrimaryExpressionParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new UnaryExpression_OpAssignment_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index - 1, consumed);
+ }
+ }
+}
+
+
+/************ end Rule UnaryExpression ****************/
+
+
+/************ begin Rule PrimaryExpression ****************
+ *
+ * //PrimaryExpression :
+ * // prefix = ValueSpecification (suffix = SuffixExpression)?
+ * //;
+ * PrimaryExpression:
+ * prefix=ValueSpecification;
+ *
+ **/
+
+// prefix=ValueSpecification
+protected class PrimaryExpression_PrefixAssignment extends AssignmentToken {
+
+ public PrimaryExpression_PrefixAssignment(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getPrefixAssignment();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ValueSpecification_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getPrimaryExpressionRule().getType().getClassifier())
+ return null;
+ if((value = eObjectConsumer.getConsumable("prefix",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("prefix");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getValueSpecificationRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getPrefixValueSpecificationParserRuleCall_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+/************ end Rule PrimaryExpression ****************/
+
+
+/************ begin Rule SuffixExpression ****************
+ *
+ * SuffixExpression:
+ * OperationCallExpression | PropertyCallExpression | LinkOperationExpression | SequenceOperationExpression |
+ * SequenceReductionExpression | SequenceExpansionExpression | ClassExtentExpression;
+ *
+ **/
+
+// OperationCallExpression | PropertyCallExpression | LinkOperationExpression | SequenceOperationExpression |
+// SequenceReductionExpression | SequenceExpansionExpression | ClassExtentExpression
+protected class SuffixExpression_Alternatives extends AlternativesToken {
+
+ public SuffixExpression_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getSuffixExpressionAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuffixExpression_OperationCallExpressionParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new SuffixExpression_PropertyCallExpressionParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new SuffixExpression_LinkOperationExpressionParserRuleCall_2(lastRuleCallOrigin, this, 2, inst);
+ case 3: return new SuffixExpression_SequenceOperationExpressionParserRuleCall_3(lastRuleCallOrigin, this, 3, inst);
+ case 4: return new SuffixExpression_SequenceReductionExpressionParserRuleCall_4(lastRuleCallOrigin, this, 4, inst);
+ case 5: return new SuffixExpression_SequenceExpansionExpressionParserRuleCall_5(lastRuleCallOrigin, this, 5, inst);
+ case 6: return new SuffixExpression_ClassExtentExpressionParserRuleCall_6(lastRuleCallOrigin, this, 6, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getClassExtentExpressionAccess().getClassExtentExpressionAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getCollectOrIterateOperationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getForAllOrExistsOrOneOperationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIsUniqueOperationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getLinkOperationExpressionRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getOperationCallExpressionRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPropertyCallExpressionRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getSelectOrRejectOperationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getSequenceOperationExpressionRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getSequenceReductionExpressionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// OperationCallExpression
+protected class SuffixExpression_OperationCallExpressionParserRuleCall_0 extends RuleCallToken {
+
+ public SuffixExpression_OperationCallExpressionParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getSuffixExpressionAccess().getOperationCallExpressionParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new OperationCallExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getOperationCallExpressionRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(OperationCallExpression_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// PropertyCallExpression
+protected class SuffixExpression_PropertyCallExpressionParserRuleCall_1 extends RuleCallToken {
+
+ public SuffixExpression_PropertyCallExpressionParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getSuffixExpressionAccess().getPropertyCallExpressionParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PropertyCallExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getPropertyCallExpressionRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(PropertyCallExpression_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// LinkOperationExpression
+protected class SuffixExpression_LinkOperationExpressionParserRuleCall_2 extends RuleCallToken {
+
+ public SuffixExpression_LinkOperationExpressionParserRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getSuffixExpressionAccess().getLinkOperationExpressionParserRuleCall_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LinkOperationExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getLinkOperationExpressionRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(LinkOperationExpression_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// SequenceOperationExpression
+protected class SuffixExpression_SequenceOperationExpressionParserRuleCall_3 extends RuleCallToken {
+
+ public SuffixExpression_SequenceOperationExpressionParserRuleCall_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getSuffixExpressionAccess().getSequenceOperationExpressionParserRuleCall_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SequenceOperationExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getSequenceOperationExpressionRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(SequenceOperationExpression_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// SequenceReductionExpression
+protected class SuffixExpression_SequenceReductionExpressionParserRuleCall_4 extends RuleCallToken {
+
+ public SuffixExpression_SequenceReductionExpressionParserRuleCall_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getSuffixExpressionAccess().getSequenceReductionExpressionParserRuleCall_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SequenceReductionExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getSequenceReductionExpressionRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(SequenceReductionExpression_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// SequenceExpansionExpression
+protected class SuffixExpression_SequenceExpansionExpressionParserRuleCall_5 extends RuleCallToken {
+
+ public SuffixExpression_SequenceExpansionExpressionParserRuleCall_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getSuffixExpressionAccess().getSequenceExpansionExpressionParserRuleCall_5();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SequenceExpansionExpression_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getCollectOrIterateOperationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getForAllOrExistsOrOneOperationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIsUniqueOperationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getSelectOrRejectOperationRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(SequenceExpansionExpression_Alternatives.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// ClassExtentExpression
+protected class SuffixExpression_ClassExtentExpressionParserRuleCall_6 extends RuleCallToken {
+
+ public SuffixExpression_ClassExtentExpressionParserRuleCall_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getSuffixExpressionAccess().getClassExtentExpressionParserRuleCall_6();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassExtentExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getClassExtentExpressionAccess().getClassExtentExpressionAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(ClassExtentExpression_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+/************ end Rule SuffixExpression ****************/
+
+
+/************ begin Rule OperationCallExpression ****************
+ *
+ * OperationCallExpression:
+ * "." operationName=ID tuple=Tuple suffix=SuffixExpression?;
+ *
+ **/
+
+// "." operationName=ID tuple=Tuple suffix=SuffixExpression?
+protected class OperationCallExpression_Group extends GroupToken {
+
+ public OperationCallExpression_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getOperationCallExpressionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new OperationCallExpression_SuffixAssignment_3(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new OperationCallExpression_TupleAssignment_2(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getOperationCallExpressionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "."
+protected class OperationCallExpression_FullStopKeyword_0 extends KeywordToken {
+
+ public OperationCallExpression_FullStopKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getOperationCallExpressionAccess().getFullStopKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// operationName=ID
+protected class OperationCallExpression_OperationNameAssignment_1 extends AssignmentToken {
+
+ public OperationCallExpression_OperationNameAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getOperationCallExpressionAccess().getOperationNameAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new OperationCallExpression_FullStopKeyword_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("operationName",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("operationName");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getOperationCallExpressionAccess().getOperationNameIDTerminalRuleCall_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getOperationCallExpressionAccess().getOperationNameIDTerminalRuleCall_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// tuple=Tuple
+protected class OperationCallExpression_TupleAssignment_2 extends AssignmentToken {
+
+ public OperationCallExpression_TupleAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getOperationCallExpressionAccess().getTupleAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Tuple_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("tuple",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("tuple");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getTupleRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getOperationCallExpressionAccess().getTupleTupleParserRuleCall_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new OperationCallExpression_OperationNameAssignment_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// suffix=SuffixExpression?
+protected class OperationCallExpression_SuffixAssignment_3 extends AssignmentToken {
+
+ public OperationCallExpression_SuffixAssignment_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getOperationCallExpressionAccess().getSuffixAssignment_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuffixExpression_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("suffix",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("suffix");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSuffixExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getOperationCallExpressionAccess().getSuffixSuffixExpressionParserRuleCall_3_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new OperationCallExpression_TupleAssignment_2(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule OperationCallExpression ****************/
+
+
+/************ begin Rule PropertyCallExpression ****************
+ *
+ * // OperationCallExpressionWithoutDot :
+ * // operationName = ID tuple = Tuple (suffix = SuffixExpression)?
+ * // ;
+ * PropertyCallExpression:
+ * "." propertyName=ID ("[" index=Expression "]")? suffix=SuffixExpression?;
+ *
+ **/
+
+// "." propertyName=ID ("[" index=Expression "]")? suffix=SuffixExpression?
+protected class PropertyCallExpression_Group extends GroupToken {
+
+ public PropertyCallExpression_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPropertyCallExpressionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PropertyCallExpression_SuffixAssignment_3(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new PropertyCallExpression_Group_2(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new PropertyCallExpression_PropertyNameAssignment_1(lastRuleCallOrigin, this, 2, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getPropertyCallExpressionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "."
+protected class PropertyCallExpression_FullStopKeyword_0 extends KeywordToken {
+
+ public PropertyCallExpression_FullStopKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getPropertyCallExpressionAccess().getFullStopKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// propertyName=ID
+protected class PropertyCallExpression_PropertyNameAssignment_1 extends AssignmentToken {
+
+ public PropertyCallExpression_PropertyNameAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPropertyCallExpressionAccess().getPropertyNameAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PropertyCallExpression_FullStopKeyword_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("propertyName",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("propertyName");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getPropertyCallExpressionAccess().getPropertyNameIDTerminalRuleCall_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getPropertyCallExpressionAccess().getPropertyNameIDTerminalRuleCall_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// ("[" index=Expression "]")?
+protected class PropertyCallExpression_Group_2 extends GroupToken {
+
+ public PropertyCallExpression_Group_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPropertyCallExpressionAccess().getGroup_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PropertyCallExpression_RightSquareBracketKeyword_2_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "["
+protected class PropertyCallExpression_LeftSquareBracketKeyword_2_0 extends KeywordToken {
+
+ public PropertyCallExpression_LeftSquareBracketKeyword_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getPropertyCallExpressionAccess().getLeftSquareBracketKeyword_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PropertyCallExpression_PropertyNameAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// index=Expression
+protected class PropertyCallExpression_IndexAssignment_2_1 extends AssignmentToken {
+
+ public PropertyCallExpression_IndexAssignment_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPropertyCallExpressionAccess().getIndexAssignment_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_ConditionalTestExpressionParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("index",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("index");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPropertyCallExpressionAccess().getIndexExpressionParserRuleCall_2_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PropertyCallExpression_LeftSquareBracketKeyword_2_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// "]"
+protected class PropertyCallExpression_RightSquareBracketKeyword_2_2 extends KeywordToken {
+
+ public PropertyCallExpression_RightSquareBracketKeyword_2_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getPropertyCallExpressionAccess().getRightSquareBracketKeyword_2_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PropertyCallExpression_IndexAssignment_2_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+// suffix=SuffixExpression?
+protected class PropertyCallExpression_SuffixAssignment_3 extends AssignmentToken {
+
+ public PropertyCallExpression_SuffixAssignment_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPropertyCallExpressionAccess().getSuffixAssignment_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuffixExpression_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("suffix",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("suffix");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSuffixExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPropertyCallExpressionAccess().getSuffixSuffixExpressionParserRuleCall_3_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PropertyCallExpression_Group_2(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new PropertyCallExpression_PropertyNameAssignment_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule PropertyCallExpression ****************/
+
+
+/************ begin Rule LinkOperationExpression ****************
+ *
+ * LinkOperationExpression:
+ * "." kind=LinkOperationKind tuple=LinkOperationTuple;
+ *
+ **/
+
+// "." kind=LinkOperationKind tuple=LinkOperationTuple
+protected class LinkOperationExpression_Group extends GroupToken {
+
+ public LinkOperationExpression_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getLinkOperationExpressionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LinkOperationExpression_TupleAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getLinkOperationExpressionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "."
+protected class LinkOperationExpression_FullStopKeyword_0 extends KeywordToken {
+
+ public LinkOperationExpression_FullStopKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getLinkOperationExpressionAccess().getFullStopKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// kind=LinkOperationKind
+protected class LinkOperationExpression_KindAssignment_1 extends AssignmentToken {
+
+ public LinkOperationExpression_KindAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getLinkOperationExpressionAccess().getKindAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LinkOperationExpression_FullStopKeyword_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("kind",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("kind");
+ if(enumLitSerializer.isValid(obj.getEObject(), grammarAccess.getLinkOperationExpressionAccess().getKindLinkOperationKindEnumRuleCall_1_0(), value, null)) {
+ type = AssignmentType.ENUM_RULE_CALL;
+ element = grammarAccess.getLinkOperationExpressionAccess().getKindLinkOperationKindEnumRuleCall_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// tuple=LinkOperationTuple
+protected class LinkOperationExpression_TupleAssignment_2 extends AssignmentToken {
+
+ public LinkOperationExpression_TupleAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getLinkOperationExpressionAccess().getTupleAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LinkOperationTuple_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("tuple",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("tuple");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getLinkOperationTupleRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getLinkOperationExpressionAccess().getTupleLinkOperationTupleParserRuleCall_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new LinkOperationExpression_KindAssignment_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule LinkOperationExpression ****************/
+
+
+/************ begin Rule LinkOperationTuple ****************
+ *
+ * LinkOperationTuple:
+ * "(" linkOperationTupleElement+=LinkOperationTupleElement ("," linkOperationTupleElement+=LinkOperationTupleElement)*
+ * ")";
+ *
+ **/
+
+// "(" linkOperationTupleElement+=LinkOperationTupleElement ("," linkOperationTupleElement+=LinkOperationTupleElement)* ")"
+protected class LinkOperationTuple_Group extends GroupToken {
+
+ public LinkOperationTuple_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getLinkOperationTupleAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LinkOperationTuple_RightParenthesisKeyword_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getLinkOperationTupleRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "("
+protected class LinkOperationTuple_LeftParenthesisKeyword_0 extends KeywordToken {
+
+ public LinkOperationTuple_LeftParenthesisKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getLinkOperationTupleAccess().getLeftParenthesisKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// linkOperationTupleElement+=LinkOperationTupleElement
+protected class LinkOperationTuple_LinkOperationTupleElementAssignment_1 extends AssignmentToken {
+
+ public LinkOperationTuple_LinkOperationTupleElementAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getLinkOperationTupleAccess().getLinkOperationTupleElementAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LinkOperationTupleElement_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("linkOperationTupleElement",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("linkOperationTupleElement");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getLinkOperationTupleElementRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getLinkOperationTupleAccess().getLinkOperationTupleElementLinkOperationTupleElementParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new LinkOperationTuple_LeftParenthesisKeyword_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// ("," linkOperationTupleElement+=LinkOperationTupleElement)*
+protected class LinkOperationTuple_Group_2 extends GroupToken {
+
+ public LinkOperationTuple_Group_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getLinkOperationTupleAccess().getGroup_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LinkOperationTuple_LinkOperationTupleElementAssignment_2_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// ","
+protected class LinkOperationTuple_CommaKeyword_2_0 extends KeywordToken {
+
+ public LinkOperationTuple_CommaKeyword_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getLinkOperationTupleAccess().getCommaKeyword_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LinkOperationTuple_Group_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new LinkOperationTuple_LinkOperationTupleElementAssignment_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// linkOperationTupleElement+=LinkOperationTupleElement
+protected class LinkOperationTuple_LinkOperationTupleElementAssignment_2_1 extends AssignmentToken {
+
+ public LinkOperationTuple_LinkOperationTupleElementAssignment_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getLinkOperationTupleAccess().getLinkOperationTupleElementAssignment_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LinkOperationTupleElement_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("linkOperationTupleElement",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("linkOperationTupleElement");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getLinkOperationTupleElementRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getLinkOperationTupleAccess().getLinkOperationTupleElementLinkOperationTupleElementParserRuleCall_2_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new LinkOperationTuple_CommaKeyword_2_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// ")"
+protected class LinkOperationTuple_RightParenthesisKeyword_3 extends KeywordToken {
+
+ public LinkOperationTuple_RightParenthesisKeyword_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getLinkOperationTupleAccess().getRightParenthesisKeyword_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LinkOperationTuple_Group_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new LinkOperationTuple_LinkOperationTupleElementAssignment_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule LinkOperationTuple ****************/
+
+
+/************ begin Rule LinkOperationTupleElement ****************
+ *
+ * //LinkOperationTupleElement :
+ * // objectOrRole = ID (('['roleIndex = Expression ']')? '=>' object = ID)?
+ * //;
+ * LinkOperationTupleElement:
+ * role=ID ("[" roleIndex=Expression "]")? "=>" object=Expression;
+ *
+ **/
+
+// role=ID ("[" roleIndex=Expression "]")? "=>" object=Expression
+protected class LinkOperationTupleElement_Group extends GroupToken {
+
+ public LinkOperationTupleElement_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getLinkOperationTupleElementAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LinkOperationTupleElement_ObjectAssignment_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getLinkOperationTupleElementRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// role=ID
+protected class LinkOperationTupleElement_RoleAssignment_0 extends AssignmentToken {
+
+ public LinkOperationTupleElement_RoleAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getLinkOperationTupleElementAccess().getRoleAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("role",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("role");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getLinkOperationTupleElementAccess().getRoleIDTerminalRuleCall_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getLinkOperationTupleElementAccess().getRoleIDTerminalRuleCall_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// ("[" roleIndex=Expression "]")?
+protected class LinkOperationTupleElement_Group_1 extends GroupToken {
+
+ public LinkOperationTupleElement_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getLinkOperationTupleElementAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LinkOperationTupleElement_RightSquareBracketKeyword_1_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "["
+protected class LinkOperationTupleElement_LeftSquareBracketKeyword_1_0 extends KeywordToken {
+
+ public LinkOperationTupleElement_LeftSquareBracketKeyword_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getLinkOperationTupleElementAccess().getLeftSquareBracketKeyword_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LinkOperationTupleElement_RoleAssignment_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// roleIndex=Expression
+protected class LinkOperationTupleElement_RoleIndexAssignment_1_1 extends AssignmentToken {
+
+ public LinkOperationTupleElement_RoleIndexAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getLinkOperationTupleElementAccess().getRoleIndexAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_ConditionalTestExpressionParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("roleIndex",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("roleIndex");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getLinkOperationTupleElementAccess().getRoleIndexExpressionParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new LinkOperationTupleElement_LeftSquareBracketKeyword_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// "]"
+protected class LinkOperationTupleElement_RightSquareBracketKeyword_1_2 extends KeywordToken {
+
+ public LinkOperationTupleElement_RightSquareBracketKeyword_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getLinkOperationTupleElementAccess().getRightSquareBracketKeyword_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LinkOperationTupleElement_RoleIndexAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+// "=>"
+protected class LinkOperationTupleElement_EqualsSignGreaterThanSignKeyword_2 extends KeywordToken {
+
+ public LinkOperationTupleElement_EqualsSignGreaterThanSignKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getLinkOperationTupleElementAccess().getEqualsSignGreaterThanSignKeyword_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LinkOperationTupleElement_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new LinkOperationTupleElement_RoleAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// object=Expression
+protected class LinkOperationTupleElement_ObjectAssignment_3 extends AssignmentToken {
+
+ public LinkOperationTupleElement_ObjectAssignment_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getLinkOperationTupleElementAccess().getObjectAssignment_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_ConditionalTestExpressionParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("object",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("object");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getLinkOperationTupleElementAccess().getObjectExpressionParserRuleCall_3_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new LinkOperationTupleElement_EqualsSignGreaterThanSignKeyword_2(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule LinkOperationTupleElement ****************/
+
+
+/************ begin Rule SequenceOperationExpression ****************
+ *
+ * SequenceOperationExpression: //'->' operationName = ID tuple = Tuple (suffix = SuffixExpression) ?
+ * "->" operationName=QualifiedNameWithBinding tuple=Tuple suffix=SuffixExpression?;
+ *
+ **/
+
+// //'->' operationName = ID tuple = Tuple (suffix = SuffixExpression) ?
+// "->" operationName=QualifiedNameWithBinding tuple=Tuple suffix=SuffixExpression?
+protected class SequenceOperationExpression_Group extends GroupToken {
+
+ public SequenceOperationExpression_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getSequenceOperationExpressionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SequenceOperationExpression_SuffixAssignment_3(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new SequenceOperationExpression_TupleAssignment_2(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getSequenceOperationExpressionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// //'->' operationName = ID tuple = Tuple (suffix = SuffixExpression) ?
+// "->"
+protected class SequenceOperationExpression_HyphenMinusGreaterThanSignKeyword_0 extends KeywordToken {
+
+ public SequenceOperationExpression_HyphenMinusGreaterThanSignKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSequenceOperationExpressionAccess().getHyphenMinusGreaterThanSignKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// operationName=QualifiedNameWithBinding
+protected class SequenceOperationExpression_OperationNameAssignment_1 extends AssignmentToken {
+
+ public SequenceOperationExpression_OperationNameAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSequenceOperationExpressionAccess().getOperationNameAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new QualifiedNameWithBinding_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("operationName",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("operationName");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getQualifiedNameWithBindingRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSequenceOperationExpressionAccess().getOperationNameQualifiedNameWithBindingParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new SequenceOperationExpression_HyphenMinusGreaterThanSignKeyword_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// tuple=Tuple
+protected class SequenceOperationExpression_TupleAssignment_2 extends AssignmentToken {
+
+ public SequenceOperationExpression_TupleAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSequenceOperationExpressionAccess().getTupleAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Tuple_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("tuple",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("tuple");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getTupleRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSequenceOperationExpressionAccess().getTupleTupleParserRuleCall_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new SequenceOperationExpression_OperationNameAssignment_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// suffix=SuffixExpression?
+protected class SequenceOperationExpression_SuffixAssignment_3 extends AssignmentToken {
+
+ public SequenceOperationExpression_SuffixAssignment_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSequenceOperationExpressionAccess().getSuffixAssignment_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuffixExpression_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("suffix",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("suffix");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSuffixExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSequenceOperationExpressionAccess().getSuffixSuffixExpressionParserRuleCall_3_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new SequenceOperationExpression_TupleAssignment_2(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule SequenceOperationExpression ****************/
+
+
+/************ begin Rule SequenceReductionExpression ****************
+ *
+ * SequenceReductionExpression:
+ * "->" "reduce" isOrdered?="ordered"? behavior=QualifiedNameWithBinding suffix=SuffixExpression?;
+ *
+ **/
+
+// "->" "reduce" isOrdered?="ordered"? behavior=QualifiedNameWithBinding suffix=SuffixExpression?
+protected class SequenceReductionExpression_Group extends GroupToken {
+
+ public SequenceReductionExpression_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getSequenceReductionExpressionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SequenceReductionExpression_SuffixAssignment_4(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new SequenceReductionExpression_BehaviorAssignment_3(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getSequenceReductionExpressionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "->"
+protected class SequenceReductionExpression_HyphenMinusGreaterThanSignKeyword_0 extends KeywordToken {
+
+ public SequenceReductionExpression_HyphenMinusGreaterThanSignKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSequenceReductionExpressionAccess().getHyphenMinusGreaterThanSignKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// "reduce"
+protected class SequenceReductionExpression_ReduceKeyword_1 extends KeywordToken {
+
+ public SequenceReductionExpression_ReduceKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSequenceReductionExpressionAccess().getReduceKeyword_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SequenceReductionExpression_HyphenMinusGreaterThanSignKeyword_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// isOrdered?="ordered"?
+protected class SequenceReductionExpression_IsOrderedAssignment_2 extends AssignmentToken {
+
+ public SequenceReductionExpression_IsOrderedAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSequenceReductionExpressionAccess().getIsOrderedAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SequenceReductionExpression_ReduceKeyword_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("isOrdered",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("isOrdered");
+ if(Boolean.TRUE.equals(value)) { // org::eclipse::xtext::impl::KeywordImpl
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getSequenceReductionExpressionAccess().getIsOrderedOrderedKeyword_2_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// behavior=QualifiedNameWithBinding
+protected class SequenceReductionExpression_BehaviorAssignment_3 extends AssignmentToken {
+
+ public SequenceReductionExpression_BehaviorAssignment_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSequenceReductionExpressionAccess().getBehaviorAssignment_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new QualifiedNameWithBinding_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("behavior",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("behavior");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getQualifiedNameWithBindingRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSequenceReductionExpressionAccess().getBehaviorQualifiedNameWithBindingParserRuleCall_3_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new SequenceReductionExpression_IsOrderedAssignment_2(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new SequenceReductionExpression_ReduceKeyword_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// suffix=SuffixExpression?
+protected class SequenceReductionExpression_SuffixAssignment_4 extends AssignmentToken {
+
+ public SequenceReductionExpression_SuffixAssignment_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSequenceReductionExpressionAccess().getSuffixAssignment_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuffixExpression_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("suffix",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("suffix");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSuffixExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSequenceReductionExpressionAccess().getSuffixSuffixExpressionParserRuleCall_4_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new SequenceReductionExpression_BehaviorAssignment_3(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule SequenceReductionExpression ****************/
+
+
+/************ begin Rule SequenceExpansionExpression ****************
+ *
+ * SequenceExpansionExpression:
+ * SelectOrRejectOperation | CollectOrIterateOperation | ForAllOrExistsOrOneOperation | IsUniqueOperation;
+ *
+ **/
+
+// SelectOrRejectOperation | CollectOrIterateOperation | ForAllOrExistsOrOneOperation | IsUniqueOperation
+protected class SequenceExpansionExpression_Alternatives extends AlternativesToken {
+
+ public SequenceExpansionExpression_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getSequenceExpansionExpressionAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SequenceExpansionExpression_SelectOrRejectOperationParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new SequenceExpansionExpression_CollectOrIterateOperationParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new SequenceExpansionExpression_ForAllOrExistsOrOneOperationParserRuleCall_2(lastRuleCallOrigin, this, 2, inst);
+ case 3: return new SequenceExpansionExpression_IsUniqueOperationParserRuleCall_3(lastRuleCallOrigin, this, 3, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getCollectOrIterateOperationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getForAllOrExistsOrOneOperationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIsUniqueOperationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getSelectOrRejectOperationRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// SelectOrRejectOperation
+protected class SequenceExpansionExpression_SelectOrRejectOperationParserRuleCall_0 extends RuleCallToken {
+
+ public SequenceExpansionExpression_SelectOrRejectOperationParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getSequenceExpansionExpressionAccess().getSelectOrRejectOperationParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SelectOrRejectOperation_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getSelectOrRejectOperationRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(SelectOrRejectOperation_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// CollectOrIterateOperation
+protected class SequenceExpansionExpression_CollectOrIterateOperationParserRuleCall_1 extends RuleCallToken {
+
+ public SequenceExpansionExpression_CollectOrIterateOperationParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getSequenceExpansionExpressionAccess().getCollectOrIterateOperationParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CollectOrIterateOperation_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getCollectOrIterateOperationRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(CollectOrIterateOperation_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// ForAllOrExistsOrOneOperation
+protected class SequenceExpansionExpression_ForAllOrExistsOrOneOperationParserRuleCall_2 extends RuleCallToken {
+
+ public SequenceExpansionExpression_ForAllOrExistsOrOneOperationParserRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getSequenceExpansionExpressionAccess().getForAllOrExistsOrOneOperationParserRuleCall_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForAllOrExistsOrOneOperation_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getForAllOrExistsOrOneOperationRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(ForAllOrExistsOrOneOperation_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// IsUniqueOperation
+protected class SequenceExpansionExpression_IsUniqueOperationParserRuleCall_3 extends RuleCallToken {
+
+ public SequenceExpansionExpression_IsUniqueOperationParserRuleCall_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getSequenceExpansionExpressionAccess().getIsUniqueOperationParserRuleCall_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IsUniqueOperation_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIsUniqueOperationRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(IsUniqueOperation_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+/************ end Rule SequenceExpansionExpression ****************/
+
+
+/************ begin Rule SelectOrRejectOperation ****************
+ *
+ * SelectOrRejectOperation:
+ * "->" op=SelectOrRejectOperator name=ID "(" expr=Expression ")" suffix=SuffixExpression?;
+ *
+ **/
+
+// "->" op=SelectOrRejectOperator name=ID "(" expr=Expression ")" suffix=SuffixExpression?
+protected class SelectOrRejectOperation_Group extends GroupToken {
+
+ public SelectOrRejectOperation_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getSelectOrRejectOperationAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SelectOrRejectOperation_SuffixAssignment_6(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new SelectOrRejectOperation_RightParenthesisKeyword_5(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getSelectOrRejectOperationRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "->"
+protected class SelectOrRejectOperation_HyphenMinusGreaterThanSignKeyword_0 extends KeywordToken {
+
+ public SelectOrRejectOperation_HyphenMinusGreaterThanSignKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSelectOrRejectOperationAccess().getHyphenMinusGreaterThanSignKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// op=SelectOrRejectOperator
+protected class SelectOrRejectOperation_OpAssignment_1 extends AssignmentToken {
+
+ public SelectOrRejectOperation_OpAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSelectOrRejectOperationAccess().getOpAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SelectOrRejectOperation_HyphenMinusGreaterThanSignKeyword_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("op",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("op");
+ if(enumLitSerializer.isValid(obj.getEObject(), grammarAccess.getSelectOrRejectOperationAccess().getOpSelectOrRejectOperatorEnumRuleCall_1_0(), value, null)) {
+ type = AssignmentType.ENUM_RULE_CALL;
+ element = grammarAccess.getSelectOrRejectOperationAccess().getOpSelectOrRejectOperatorEnumRuleCall_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// name=ID
+protected class SelectOrRejectOperation_NameAssignment_2 extends AssignmentToken {
+
+ public SelectOrRejectOperation_NameAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSelectOrRejectOperationAccess().getNameAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SelectOrRejectOperation_OpAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getSelectOrRejectOperationAccess().getNameIDTerminalRuleCall_2_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getSelectOrRejectOperationAccess().getNameIDTerminalRuleCall_2_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// "("
+protected class SelectOrRejectOperation_LeftParenthesisKeyword_3 extends KeywordToken {
+
+ public SelectOrRejectOperation_LeftParenthesisKeyword_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSelectOrRejectOperationAccess().getLeftParenthesisKeyword_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SelectOrRejectOperation_NameAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// expr=Expression
+protected class SelectOrRejectOperation_ExprAssignment_4 extends AssignmentToken {
+
+ public SelectOrRejectOperation_ExprAssignment_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSelectOrRejectOperationAccess().getExprAssignment_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_ConditionalTestExpressionParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("expr",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("expr");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSelectOrRejectOperationAccess().getExprExpressionParserRuleCall_4_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new SelectOrRejectOperation_LeftParenthesisKeyword_3(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// ")"
+protected class SelectOrRejectOperation_RightParenthesisKeyword_5 extends KeywordToken {
+
+ public SelectOrRejectOperation_RightParenthesisKeyword_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSelectOrRejectOperationAccess().getRightParenthesisKeyword_5();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SelectOrRejectOperation_ExprAssignment_4(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// suffix=SuffixExpression?
+protected class SelectOrRejectOperation_SuffixAssignment_6 extends AssignmentToken {
+
+ public SelectOrRejectOperation_SuffixAssignment_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSelectOrRejectOperationAccess().getSuffixAssignment_6();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuffixExpression_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("suffix",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("suffix");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSuffixExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSelectOrRejectOperationAccess().getSuffixSuffixExpressionParserRuleCall_6_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new SelectOrRejectOperation_RightParenthesisKeyword_5(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule SelectOrRejectOperation ****************/
+
+
+/************ begin Rule CollectOrIterateOperation ****************
+ *
+ * CollectOrIterateOperation:
+ * "->" op=CollectOrIterateOperator name=ID "(" expr=Expression ")" suffix=SuffixExpression?;
+ *
+ **/
+
+// "->" op=CollectOrIterateOperator name=ID "(" expr=Expression ")" suffix=SuffixExpression?
+protected class CollectOrIterateOperation_Group extends GroupToken {
+
+ public CollectOrIterateOperation_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getCollectOrIterateOperationAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CollectOrIterateOperation_SuffixAssignment_6(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new CollectOrIterateOperation_RightParenthesisKeyword_5(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getCollectOrIterateOperationRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "->"
+protected class CollectOrIterateOperation_HyphenMinusGreaterThanSignKeyword_0 extends KeywordToken {
+
+ public CollectOrIterateOperation_HyphenMinusGreaterThanSignKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getCollectOrIterateOperationAccess().getHyphenMinusGreaterThanSignKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// op=CollectOrIterateOperator
+protected class CollectOrIterateOperation_OpAssignment_1 extends AssignmentToken {
+
+ public CollectOrIterateOperation_OpAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCollectOrIterateOperationAccess().getOpAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CollectOrIterateOperation_HyphenMinusGreaterThanSignKeyword_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("op",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("op");
+ if(enumLitSerializer.isValid(obj.getEObject(), grammarAccess.getCollectOrIterateOperationAccess().getOpCollectOrIterateOperatorEnumRuleCall_1_0(), value, null)) {
+ type = AssignmentType.ENUM_RULE_CALL;
+ element = grammarAccess.getCollectOrIterateOperationAccess().getOpCollectOrIterateOperatorEnumRuleCall_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// name=ID
+protected class CollectOrIterateOperation_NameAssignment_2 extends AssignmentToken {
+
+ public CollectOrIterateOperation_NameAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCollectOrIterateOperationAccess().getNameAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CollectOrIterateOperation_OpAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getCollectOrIterateOperationAccess().getNameIDTerminalRuleCall_2_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getCollectOrIterateOperationAccess().getNameIDTerminalRuleCall_2_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// "("
+protected class CollectOrIterateOperation_LeftParenthesisKeyword_3 extends KeywordToken {
+
+ public CollectOrIterateOperation_LeftParenthesisKeyword_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getCollectOrIterateOperationAccess().getLeftParenthesisKeyword_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CollectOrIterateOperation_NameAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// expr=Expression
+protected class CollectOrIterateOperation_ExprAssignment_4 extends AssignmentToken {
+
+ public CollectOrIterateOperation_ExprAssignment_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCollectOrIterateOperationAccess().getExprAssignment_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_ConditionalTestExpressionParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("expr",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("expr");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getCollectOrIterateOperationAccess().getExprExpressionParserRuleCall_4_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new CollectOrIterateOperation_LeftParenthesisKeyword_3(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// ")"
+protected class CollectOrIterateOperation_RightParenthesisKeyword_5 extends KeywordToken {
+
+ public CollectOrIterateOperation_RightParenthesisKeyword_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getCollectOrIterateOperationAccess().getRightParenthesisKeyword_5();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CollectOrIterateOperation_ExprAssignment_4(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// suffix=SuffixExpression?
+protected class CollectOrIterateOperation_SuffixAssignment_6 extends AssignmentToken {
+
+ public CollectOrIterateOperation_SuffixAssignment_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCollectOrIterateOperationAccess().getSuffixAssignment_6();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuffixExpression_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("suffix",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("suffix");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSuffixExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getCollectOrIterateOperationAccess().getSuffixSuffixExpressionParserRuleCall_6_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new CollectOrIterateOperation_RightParenthesisKeyword_5(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule CollectOrIterateOperation ****************/
+
+
+/************ begin Rule ForAllOrExistsOrOneOperation ****************
+ *
+ * ForAllOrExistsOrOneOperation:
+ * "->" op=ForAllOrExistsOrOneOperator name=ID "(" expr=Expression ")" suffix=SuffixExpression?;
+ *
+ **/
+
+// "->" op=ForAllOrExistsOrOneOperator name=ID "(" expr=Expression ")" suffix=SuffixExpression?
+protected class ForAllOrExistsOrOneOperation_Group extends GroupToken {
+
+ public ForAllOrExistsOrOneOperation_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getForAllOrExistsOrOneOperationAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForAllOrExistsOrOneOperation_SuffixAssignment_6(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ForAllOrExistsOrOneOperation_RightParenthesisKeyword_5(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getForAllOrExistsOrOneOperationRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "->"
+protected class ForAllOrExistsOrOneOperation_HyphenMinusGreaterThanSignKeyword_0 extends KeywordToken {
+
+ public ForAllOrExistsOrOneOperation_HyphenMinusGreaterThanSignKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getForAllOrExistsOrOneOperationAccess().getHyphenMinusGreaterThanSignKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// op=ForAllOrExistsOrOneOperator
+protected class ForAllOrExistsOrOneOperation_OpAssignment_1 extends AssignmentToken {
+
+ public ForAllOrExistsOrOneOperation_OpAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getForAllOrExistsOrOneOperationAccess().getOpAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForAllOrExistsOrOneOperation_HyphenMinusGreaterThanSignKeyword_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("op",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("op");
+ if(enumLitSerializer.isValid(obj.getEObject(), grammarAccess.getForAllOrExistsOrOneOperationAccess().getOpForAllOrExistsOrOneOperatorEnumRuleCall_1_0(), value, null)) {
+ type = AssignmentType.ENUM_RULE_CALL;
+ element = grammarAccess.getForAllOrExistsOrOneOperationAccess().getOpForAllOrExistsOrOneOperatorEnumRuleCall_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// name=ID
+protected class ForAllOrExistsOrOneOperation_NameAssignment_2 extends AssignmentToken {
+
+ public ForAllOrExistsOrOneOperation_NameAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getForAllOrExistsOrOneOperationAccess().getNameAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForAllOrExistsOrOneOperation_OpAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getForAllOrExistsOrOneOperationAccess().getNameIDTerminalRuleCall_2_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getForAllOrExistsOrOneOperationAccess().getNameIDTerminalRuleCall_2_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// "("
+protected class ForAllOrExistsOrOneOperation_LeftParenthesisKeyword_3 extends KeywordToken {
+
+ public ForAllOrExistsOrOneOperation_LeftParenthesisKeyword_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getForAllOrExistsOrOneOperationAccess().getLeftParenthesisKeyword_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForAllOrExistsOrOneOperation_NameAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// expr=Expression
+protected class ForAllOrExistsOrOneOperation_ExprAssignment_4 extends AssignmentToken {
+
+ public ForAllOrExistsOrOneOperation_ExprAssignment_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getForAllOrExistsOrOneOperationAccess().getExprAssignment_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_ConditionalTestExpressionParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("expr",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("expr");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getForAllOrExistsOrOneOperationAccess().getExprExpressionParserRuleCall_4_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ForAllOrExistsOrOneOperation_LeftParenthesisKeyword_3(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// ")"
+protected class ForAllOrExistsOrOneOperation_RightParenthesisKeyword_5 extends KeywordToken {
+
+ public ForAllOrExistsOrOneOperation_RightParenthesisKeyword_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getForAllOrExistsOrOneOperationAccess().getRightParenthesisKeyword_5();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForAllOrExistsOrOneOperation_ExprAssignment_4(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// suffix=SuffixExpression?
+protected class ForAllOrExistsOrOneOperation_SuffixAssignment_6 extends AssignmentToken {
+
+ public ForAllOrExistsOrOneOperation_SuffixAssignment_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getForAllOrExistsOrOneOperationAccess().getSuffixAssignment_6();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuffixExpression_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("suffix",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("suffix");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSuffixExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getForAllOrExistsOrOneOperationAccess().getSuffixSuffixExpressionParserRuleCall_6_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ForAllOrExistsOrOneOperation_RightParenthesisKeyword_5(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule ForAllOrExistsOrOneOperation ****************/
+
+
+/************ begin Rule IsUniqueOperation ****************
+ *
+ * IsUniqueOperation:
+ * "->" "isUnique" name=ID "(" expr=Expression ")" suffix=SuffixExpression?;
+ *
+ **/
+
+// "->" "isUnique" name=ID "(" expr=Expression ")" suffix=SuffixExpression?
+protected class IsUniqueOperation_Group extends GroupToken {
+
+ public IsUniqueOperation_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getIsUniqueOperationAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IsUniqueOperation_SuffixAssignment_6(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new IsUniqueOperation_RightParenthesisKeyword_5(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIsUniqueOperationRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "->"
+protected class IsUniqueOperation_HyphenMinusGreaterThanSignKeyword_0 extends KeywordToken {
+
+ public IsUniqueOperation_HyphenMinusGreaterThanSignKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getIsUniqueOperationAccess().getHyphenMinusGreaterThanSignKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// "isUnique"
+protected class IsUniqueOperation_IsUniqueKeyword_1 extends KeywordToken {
+
+ public IsUniqueOperation_IsUniqueKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getIsUniqueOperationAccess().getIsUniqueKeyword_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IsUniqueOperation_HyphenMinusGreaterThanSignKeyword_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// name=ID
+protected class IsUniqueOperation_NameAssignment_2 extends AssignmentToken {
+
+ public IsUniqueOperation_NameAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getIsUniqueOperationAccess().getNameAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IsUniqueOperation_IsUniqueKeyword_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getIsUniqueOperationAccess().getNameIDTerminalRuleCall_2_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getIsUniqueOperationAccess().getNameIDTerminalRuleCall_2_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// "("
+protected class IsUniqueOperation_LeftParenthesisKeyword_3 extends KeywordToken {
+
+ public IsUniqueOperation_LeftParenthesisKeyword_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getIsUniqueOperationAccess().getLeftParenthesisKeyword_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IsUniqueOperation_NameAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// expr=Expression
+protected class IsUniqueOperation_ExprAssignment_4 extends AssignmentToken {
+
+ public IsUniqueOperation_ExprAssignment_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getIsUniqueOperationAccess().getExprAssignment_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_ConditionalTestExpressionParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("expr",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("expr");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getIsUniqueOperationAccess().getExprExpressionParserRuleCall_4_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new IsUniqueOperation_LeftParenthesisKeyword_3(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// ")"
+protected class IsUniqueOperation_RightParenthesisKeyword_5 extends KeywordToken {
+
+ public IsUniqueOperation_RightParenthesisKeyword_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getIsUniqueOperationAccess().getRightParenthesisKeyword_5();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IsUniqueOperation_ExprAssignment_4(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// suffix=SuffixExpression?
+protected class IsUniqueOperation_SuffixAssignment_6 extends AssignmentToken {
+
+ public IsUniqueOperation_SuffixAssignment_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getIsUniqueOperationAccess().getSuffixAssignment_6();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuffixExpression_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("suffix",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("suffix");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSuffixExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getIsUniqueOperationAccess().getSuffixSuffixExpressionParserRuleCall_6_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new IsUniqueOperation_RightParenthesisKeyword_5(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule IsUniqueOperation ****************/
+
+
+/************ begin Rule ValueSpecification ****************
+ *
+ * ValueSpecification:
+ * NameExpression | LITERAL | ThisExpression | SuperInvocationExpression | InstanceCreationExpression |
+ * ParenthesizedExpression | NullExpression;
+ *
+ **/
+
+// NameExpression | LITERAL | ThisExpression | SuperInvocationExpression | InstanceCreationExpression |
+// ParenthesizedExpression | NullExpression
+protected class ValueSpecification_Alternatives extends AlternativesToken {
+
+ public ValueSpecification_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getValueSpecificationAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ValueSpecification_NameExpressionParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ValueSpecification_LITERALParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new ValueSpecification_ThisExpressionParserRuleCall_2(lastRuleCallOrigin, this, 2, inst);
+ case 3: return new ValueSpecification_SuperInvocationExpressionParserRuleCall_3(lastRuleCallOrigin, this, 3, inst);
+ case 4: return new ValueSpecification_InstanceCreationExpressionParserRuleCall_4(lastRuleCallOrigin, this, 4, inst);
+ case 5: return new ValueSpecification_ParenthesizedExpressionParserRuleCall_5(lastRuleCallOrigin, this, 5, inst);
+ case 6: return new ValueSpecification_NullExpressionParserRuleCall_6(lastRuleCallOrigin, this, 6, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getBOOLEAN_LITERALRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getINTEGER_LITERALRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getInstanceCreationExpressionRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getNameExpressionRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getNullExpressionAccess().getNullExpressionAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getParenthesizedExpressionRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getSTRING_LITERALRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getSuperInvocationExpressionRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getThisExpressionAccess().getThisExpressionAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getUNLIMITED_LITERALRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// NameExpression
+protected class ValueSpecification_NameExpressionParserRuleCall_0 extends RuleCallToken {
+
+ public ValueSpecification_NameExpressionParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getValueSpecificationAccess().getNameExpressionParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NameExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getNameExpressionRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(NameExpression_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// LITERAL
+protected class ValueSpecification_LITERALParserRuleCall_1 extends RuleCallToken {
+
+ public ValueSpecification_LITERALParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getValueSpecificationAccess().getLITERALParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LITERAL_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getBOOLEAN_LITERALRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getINTEGER_LITERALRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getSTRING_LITERALRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getUNLIMITED_LITERALRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(LITERAL_Alternatives.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// ThisExpression
+protected class ValueSpecification_ThisExpressionParserRuleCall_2 extends RuleCallToken {
+
+ public ValueSpecification_ThisExpressionParserRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getValueSpecificationAccess().getThisExpressionParserRuleCall_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ThisExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getThisExpressionAccess().getThisExpressionAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(ThisExpression_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// SuperInvocationExpression
+protected class ValueSpecification_SuperInvocationExpressionParserRuleCall_3 extends RuleCallToken {
+
+ public ValueSpecification_SuperInvocationExpressionParserRuleCall_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getValueSpecificationAccess().getSuperInvocationExpressionParserRuleCall_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuperInvocationExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getSuperInvocationExpressionRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(SuperInvocationExpression_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// InstanceCreationExpression
+protected class ValueSpecification_InstanceCreationExpressionParserRuleCall_4 extends RuleCallToken {
+
+ public ValueSpecification_InstanceCreationExpressionParserRuleCall_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getValueSpecificationAccess().getInstanceCreationExpressionParserRuleCall_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InstanceCreationExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getInstanceCreationExpressionRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(InstanceCreationExpression_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// ParenthesizedExpression
+protected class ValueSpecification_ParenthesizedExpressionParserRuleCall_5 extends RuleCallToken {
+
+ public ValueSpecification_ParenthesizedExpressionParserRuleCall_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getValueSpecificationAccess().getParenthesizedExpressionParserRuleCall_5();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ParenthesizedExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getParenthesizedExpressionRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(ParenthesizedExpression_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// NullExpression
+protected class ValueSpecification_NullExpressionParserRuleCall_6 extends RuleCallToken {
+
+ public ValueSpecification_NullExpressionParserRuleCall_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getValueSpecificationAccess().getNullExpressionParserRuleCall_6();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NullExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getNullExpressionAccess().getNullExpressionAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(NullExpression_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+/************ end Rule ValueSpecification ****************/
+
+
+/************ begin Rule NonLiteralValueSpecification ****************
+ *
+ * NonLiteralValueSpecification:
+ * NameExpression | ParenthesizedExpression | InstanceCreationExpression | ThisExpression | SuperInvocationExpression;
+ *
+ **/
+
+// NameExpression | ParenthesizedExpression | InstanceCreationExpression | ThisExpression | SuperInvocationExpression
+protected class NonLiteralValueSpecification_Alternatives extends AlternativesToken {
+
+ public NonLiteralValueSpecification_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getNonLiteralValueSpecificationAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NonLiteralValueSpecification_NameExpressionParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new NonLiteralValueSpecification_ParenthesizedExpressionParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new NonLiteralValueSpecification_InstanceCreationExpressionParserRuleCall_2(lastRuleCallOrigin, this, 2, inst);
+ case 3: return new NonLiteralValueSpecification_ThisExpressionParserRuleCall_3(lastRuleCallOrigin, this, 3, inst);
+ case 4: return new NonLiteralValueSpecification_SuperInvocationExpressionParserRuleCall_4(lastRuleCallOrigin, this, 4, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getInstanceCreationExpressionRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getNameExpressionRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getParenthesizedExpressionRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getSuperInvocationExpressionRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getThisExpressionAccess().getThisExpressionAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// NameExpression
+protected class NonLiteralValueSpecification_NameExpressionParserRuleCall_0 extends RuleCallToken {
+
+ public NonLiteralValueSpecification_NameExpressionParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getNonLiteralValueSpecificationAccess().getNameExpressionParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NameExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getNameExpressionRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(NameExpression_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// ParenthesizedExpression
+protected class NonLiteralValueSpecification_ParenthesizedExpressionParserRuleCall_1 extends RuleCallToken {
+
+ public NonLiteralValueSpecification_ParenthesizedExpressionParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getNonLiteralValueSpecificationAccess().getParenthesizedExpressionParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ParenthesizedExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getParenthesizedExpressionRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(ParenthesizedExpression_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// InstanceCreationExpression
+protected class NonLiteralValueSpecification_InstanceCreationExpressionParserRuleCall_2 extends RuleCallToken {
+
+ public NonLiteralValueSpecification_InstanceCreationExpressionParserRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getNonLiteralValueSpecificationAccess().getInstanceCreationExpressionParserRuleCall_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InstanceCreationExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getInstanceCreationExpressionRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(InstanceCreationExpression_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// ThisExpression
+protected class NonLiteralValueSpecification_ThisExpressionParserRuleCall_3 extends RuleCallToken {
+
+ public NonLiteralValueSpecification_ThisExpressionParserRuleCall_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getNonLiteralValueSpecificationAccess().getThisExpressionParserRuleCall_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ThisExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getThisExpressionAccess().getThisExpressionAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(ThisExpression_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// SuperInvocationExpression
+protected class NonLiteralValueSpecification_SuperInvocationExpressionParserRuleCall_4 extends RuleCallToken {
+
+ public NonLiteralValueSpecification_SuperInvocationExpressionParserRuleCall_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getNonLiteralValueSpecificationAccess().getSuperInvocationExpressionParserRuleCall_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuperInvocationExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getSuperInvocationExpressionRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(SuperInvocationExpression_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+/************ end Rule NonLiteralValueSpecification ****************/
+
+
+/************ begin Rule ParenthesizedExpression ****************
+ *
+ * ParenthesizedExpression:
+ * "(" expOrTypeCast=Expression ")" (casted=NonLiteralValueSpecification | suffix=SuffixExpression)?;
+ *
+ **/
+
+// "(" expOrTypeCast=Expression ")" (casted=NonLiteralValueSpecification | suffix=SuffixExpression)?
+protected class ParenthesizedExpression_Group extends GroupToken {
+
+ public ParenthesizedExpression_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getParenthesizedExpressionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ParenthesizedExpression_Alternatives_3(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ParenthesizedExpression_RightParenthesisKeyword_2(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getParenthesizedExpressionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "("
+protected class ParenthesizedExpression_LeftParenthesisKeyword_0 extends KeywordToken {
+
+ public ParenthesizedExpression_LeftParenthesisKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getParenthesizedExpressionAccess().getLeftParenthesisKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// expOrTypeCast=Expression
+protected class ParenthesizedExpression_ExpOrTypeCastAssignment_1 extends AssignmentToken {
+
+ public ParenthesizedExpression_ExpOrTypeCastAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getParenthesizedExpressionAccess().getExpOrTypeCastAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_ConditionalTestExpressionParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("expOrTypeCast",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("expOrTypeCast");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getParenthesizedExpressionAccess().getExpOrTypeCastExpressionParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ParenthesizedExpression_LeftParenthesisKeyword_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// ")"
+protected class ParenthesizedExpression_RightParenthesisKeyword_2 extends KeywordToken {
+
+ public ParenthesizedExpression_RightParenthesisKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getParenthesizedExpressionAccess().getRightParenthesisKeyword_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ParenthesizedExpression_ExpOrTypeCastAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// (casted=NonLiteralValueSpecification | suffix=SuffixExpression)?
+protected class ParenthesizedExpression_Alternatives_3 extends AlternativesToken {
+
+ public ParenthesizedExpression_Alternatives_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getParenthesizedExpressionAccess().getAlternatives_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ParenthesizedExpression_CastedAssignment_3_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ParenthesizedExpression_SuffixAssignment_3_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// casted=NonLiteralValueSpecification
+protected class ParenthesizedExpression_CastedAssignment_3_0 extends AssignmentToken {
+
+ public ParenthesizedExpression_CastedAssignment_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getParenthesizedExpressionAccess().getCastedAssignment_3_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NonLiteralValueSpecification_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("casted",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("casted");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getNonLiteralValueSpecificationRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getParenthesizedExpressionAccess().getCastedNonLiteralValueSpecificationParserRuleCall_3_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ParenthesizedExpression_RightParenthesisKeyword_2(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// suffix=SuffixExpression
+protected class ParenthesizedExpression_SuffixAssignment_3_1 extends AssignmentToken {
+
+ public ParenthesizedExpression_SuffixAssignment_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getParenthesizedExpressionAccess().getSuffixAssignment_3_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuffixExpression_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("suffix",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("suffix");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSuffixExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getParenthesizedExpressionAccess().getSuffixSuffixExpressionParserRuleCall_3_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ParenthesizedExpression_RightParenthesisKeyword_2(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule ParenthesizedExpression ****************/
+
+
+/************ begin Rule NullExpression ****************
+ *
+ * NullExpression:
+ * {NullExpression} "null";
+ *
+ **/
+
+// {NullExpression} "null"
+protected class NullExpression_Group extends GroupToken {
+
+ public NullExpression_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getNullExpressionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NullExpression_NullKeyword_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getNullExpressionAccess().getNullExpressionAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {NullExpression}
+protected class NullExpression_NullExpressionAction_0 extends ActionToken {
+
+ public NullExpression_NullExpressionAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getNullExpressionAccess().getNullExpressionAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// "null"
+protected class NullExpression_NullKeyword_1 extends KeywordToken {
+
+ public NullExpression_NullKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getNullExpressionAccess().getNullKeyword_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NullExpression_NullExpressionAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule NullExpression ****************/
+
+
+/************ begin Rule ThisExpression ****************
+ *
+ * ThisExpression:
+ * {ThisExpression} "this" suffix=SuffixExpression?;
+ *
+ **/
+
+// {ThisExpression} "this" suffix=SuffixExpression?
+protected class ThisExpression_Group extends GroupToken {
+
+ public ThisExpression_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getThisExpressionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ThisExpression_SuffixAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ThisExpression_ThisKeyword_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getThisExpressionAccess().getThisExpressionAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {ThisExpression}
+protected class ThisExpression_ThisExpressionAction_0 extends ActionToken {
+
+ public ThisExpression_ThisExpressionAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getThisExpressionAccess().getThisExpressionAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// "this"
+protected class ThisExpression_ThisKeyword_1 extends KeywordToken {
+
+ public ThisExpression_ThisKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getThisExpressionAccess().getThisKeyword_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ThisExpression_ThisExpressionAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// suffix=SuffixExpression?
+protected class ThisExpression_SuffixAssignment_2 extends AssignmentToken {
+
+ public ThisExpression_SuffixAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getThisExpressionAccess().getSuffixAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuffixExpression_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("suffix",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("suffix");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSuffixExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getThisExpressionAccess().getSuffixSuffixExpressionParserRuleCall_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ThisExpression_ThisKeyword_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule ThisExpression ****************/
+
+
+/************ begin Rule SuperInvocationExpression ****************
+ *
+ * // SuperInvocationExpression :
+ * // //{SuperInvocationExpression} 'super' ('.' qualifiedNameRoot = ID '::' qualifiedNameRemaining = NameExpression)? //(suffix = SuffixExpression) ?
+ * // 'super' ('.' className = ID '::' operationCallWithoutDot = OperationCallExpressionWithoutDot | operationCall = OperationCallExpression)
+ * //;
+ * SuperInvocationExpression: //{SuperInvocationExpression} 'super' ('.' qualifiedNameRoot = ID '::' qualifiedNameRemaining = NameExpression)? //(suffix = SuffixExpression) ?
+ * //'super' ('.' className = ID '::' operationCallWithoutDot = OperationCallExpressionWithoutDot | operationCall = OperationCallExpression)
+ * //'super' ((tuple = Tuple) |
+ * // ('.' (path = QualifiedNamePath) operation = ID tuple = Tuple))
+ * "super" (tuple=Tuple | "." operationName=QualifiedNameWithBinding tuple=Tuple);
+ *
+ **/
+
+// //{SuperInvocationExpression} 'super' ('.' qualifiedNameRoot = ID '::' qualifiedNameRemaining = NameExpression)? //(suffix = SuffixExpression) ?
+// //'super' ('.' className = ID '::' operationCallWithoutDot = OperationCallExpressionWithoutDot | operationCall = OperationCallExpression)
+// //'super' ((tuple = Tuple) |
+// // ('.' (path = QualifiedNamePath) operation = ID tuple = Tuple))
+// "super" (tuple=Tuple | "." operationName=QualifiedNameWithBinding tuple=Tuple)
+protected class SuperInvocationExpression_Group extends GroupToken {
+
+ public SuperInvocationExpression_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getSuperInvocationExpressionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuperInvocationExpression_Alternatives_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getSuperInvocationExpressionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// //{SuperInvocationExpression} 'super' ('.' qualifiedNameRoot = ID '::' qualifiedNameRemaining = NameExpression)? //(suffix = SuffixExpression) ?
+// //'super' ('.' className = ID '::' operationCallWithoutDot = OperationCallExpressionWithoutDot | operationCall = OperationCallExpression)
+// //'super' ((tuple = Tuple) |
+// // ('.' (path = QualifiedNamePath) operation = ID tuple = Tuple))
+// "super"
+protected class SuperInvocationExpression_SuperKeyword_0 extends KeywordToken {
+
+ public SuperInvocationExpression_SuperKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSuperInvocationExpressionAccess().getSuperKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// tuple=Tuple | "." operationName=QualifiedNameWithBinding tuple=Tuple
+protected class SuperInvocationExpression_Alternatives_1 extends AlternativesToken {
+
+ public SuperInvocationExpression_Alternatives_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getSuperInvocationExpressionAccess().getAlternatives_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuperInvocationExpression_TupleAssignment_1_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new SuperInvocationExpression_Group_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// tuple=Tuple
+protected class SuperInvocationExpression_TupleAssignment_1_0 extends AssignmentToken {
+
+ public SuperInvocationExpression_TupleAssignment_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSuperInvocationExpressionAccess().getTupleAssignment_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Tuple_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("tuple",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("tuple");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getTupleRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSuperInvocationExpressionAccess().getTupleTupleParserRuleCall_1_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new SuperInvocationExpression_SuperKeyword_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// "." operationName=QualifiedNameWithBinding tuple=Tuple
+protected class SuperInvocationExpression_Group_1_1 extends GroupToken {
+
+ public SuperInvocationExpression_Group_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getSuperInvocationExpressionAccess().getGroup_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuperInvocationExpression_TupleAssignment_1_1_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "."
+protected class SuperInvocationExpression_FullStopKeyword_1_1_0 extends KeywordToken {
+
+ public SuperInvocationExpression_FullStopKeyword_1_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSuperInvocationExpressionAccess().getFullStopKeyword_1_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuperInvocationExpression_SuperKeyword_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// operationName=QualifiedNameWithBinding
+protected class SuperInvocationExpression_OperationNameAssignment_1_1_1 extends AssignmentToken {
+
+ public SuperInvocationExpression_OperationNameAssignment_1_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSuperInvocationExpressionAccess().getOperationNameAssignment_1_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new QualifiedNameWithBinding_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("operationName",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("operationName");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getQualifiedNameWithBindingRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSuperInvocationExpressionAccess().getOperationNameQualifiedNameWithBindingParserRuleCall_1_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new SuperInvocationExpression_FullStopKeyword_1_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// tuple=Tuple
+protected class SuperInvocationExpression_TupleAssignment_1_1_2 extends AssignmentToken {
+
+ public SuperInvocationExpression_TupleAssignment_1_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSuperInvocationExpressionAccess().getTupleAssignment_1_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Tuple_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("tuple",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("tuple");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getTupleRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSuperInvocationExpressionAccess().getTupleTupleParserRuleCall_1_1_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new SuperInvocationExpression_OperationNameAssignment_1_1_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+
+/************ end Rule SuperInvocationExpression ****************/
+
+
+/************ begin Rule InstanceCreationExpression ****************
+ *
+ * //InstanceCreationExpression :
+ * //'new' constructor=QualifiedNameWithBinding
+ * // (tuple = Tuple | sequenceConstuctionCompletion = SequenceConstructionCompletion) (suffix = SuffixExpression) ?
+ * //'new' constructor=QualifiedNameWithBinding
+ * // tuple = Tuple (suffix = SuffixExpression) ?
+ * //;
+ * InstanceCreationExpression: //'new' constructor=QualifiedNameWithBinding
+ * // (tuple = Tuple | sequenceConstuctionCompletion = SequenceConstructionCompletion) (suffix = SuffixExpression) ?
+ * "new" constructor=QualifiedNameWithBinding tuple=InstanceCreationTuple suffix=SuffixExpression?;
+ *
+ **/
+
+// //'new' constructor=QualifiedNameWithBinding
+// // (tuple = Tuple | sequenceConstuctionCompletion = SequenceConstructionCompletion) (suffix = SuffixExpression) ?
+// "new" constructor=QualifiedNameWithBinding tuple=InstanceCreationTuple suffix=SuffixExpression?
+protected class InstanceCreationExpression_Group extends GroupToken {
+
+ public InstanceCreationExpression_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getInstanceCreationExpressionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InstanceCreationExpression_SuffixAssignment_3(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new InstanceCreationExpression_TupleAssignment_2(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getInstanceCreationExpressionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// //'new' constructor=QualifiedNameWithBinding
+// // (tuple = Tuple | sequenceConstuctionCompletion = SequenceConstructionCompletion) (suffix = SuffixExpression) ?
+// "new"
+protected class InstanceCreationExpression_NewKeyword_0 extends KeywordToken {
+
+ public InstanceCreationExpression_NewKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getInstanceCreationExpressionAccess().getNewKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// constructor=QualifiedNameWithBinding
+protected class InstanceCreationExpression_ConstructorAssignment_1 extends AssignmentToken {
+
+ public InstanceCreationExpression_ConstructorAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getInstanceCreationExpressionAccess().getConstructorAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new QualifiedNameWithBinding_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("constructor",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("constructor");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getQualifiedNameWithBindingRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getInstanceCreationExpressionAccess().getConstructorQualifiedNameWithBindingParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new InstanceCreationExpression_NewKeyword_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// tuple=InstanceCreationTuple
+protected class InstanceCreationExpression_TupleAssignment_2 extends AssignmentToken {
+
+ public InstanceCreationExpression_TupleAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getInstanceCreationExpressionAccess().getTupleAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InstanceCreationTuple_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("tuple",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("tuple");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getInstanceCreationTupleRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getInstanceCreationExpressionAccess().getTupleInstanceCreationTupleParserRuleCall_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new InstanceCreationExpression_ConstructorAssignment_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// suffix=SuffixExpression?
+protected class InstanceCreationExpression_SuffixAssignment_3 extends AssignmentToken {
+
+ public InstanceCreationExpression_SuffixAssignment_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getInstanceCreationExpressionAccess().getSuffixAssignment_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuffixExpression_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("suffix",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("suffix");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSuffixExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getInstanceCreationExpressionAccess().getSuffixSuffixExpressionParserRuleCall_3_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new InstanceCreationExpression_TupleAssignment_2(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule InstanceCreationExpression ****************/
+
+
+/************ begin Rule InstanceCreationTuple ****************
+ *
+ * InstanceCreationTuple:
+ * {InstanceCreationTuple} "(" (instanceCreationTupleElement+=InstanceCreationTupleElement (","
+ * instanceCreationTupleElement+=InstanceCreationTupleElement)*)? ")";
+ *
+ **/
+
+// {InstanceCreationTuple} "(" (instanceCreationTupleElement+=InstanceCreationTupleElement (","
+// instanceCreationTupleElement+=InstanceCreationTupleElement)*)? ")"
+protected class InstanceCreationTuple_Group extends GroupToken {
+
+ public InstanceCreationTuple_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getInstanceCreationTupleAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InstanceCreationTuple_RightParenthesisKeyword_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getInstanceCreationTupleAccess().getInstanceCreationTupleAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {InstanceCreationTuple}
+protected class InstanceCreationTuple_InstanceCreationTupleAction_0 extends ActionToken {
+
+ public InstanceCreationTuple_InstanceCreationTupleAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getInstanceCreationTupleAccess().getInstanceCreationTupleAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// "("
+protected class InstanceCreationTuple_LeftParenthesisKeyword_1 extends KeywordToken {
+
+ public InstanceCreationTuple_LeftParenthesisKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getInstanceCreationTupleAccess().getLeftParenthesisKeyword_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InstanceCreationTuple_InstanceCreationTupleAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// (instanceCreationTupleElement+=InstanceCreationTupleElement (","
+// instanceCreationTupleElement+=InstanceCreationTupleElement)*)?
+protected class InstanceCreationTuple_Group_2 extends GroupToken {
+
+ public InstanceCreationTuple_Group_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getInstanceCreationTupleAccess().getGroup_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InstanceCreationTuple_Group_2_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new InstanceCreationTuple_InstanceCreationTupleElementAssignment_2_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// instanceCreationTupleElement+=InstanceCreationTupleElement
+protected class InstanceCreationTuple_InstanceCreationTupleElementAssignment_2_0 extends AssignmentToken {
+
+ public InstanceCreationTuple_InstanceCreationTupleElementAssignment_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getInstanceCreationTupleAccess().getInstanceCreationTupleElementAssignment_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InstanceCreationTupleElement_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("instanceCreationTupleElement",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("instanceCreationTupleElement");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getInstanceCreationTupleElementRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getInstanceCreationTupleAccess().getInstanceCreationTupleElementInstanceCreationTupleElementParserRuleCall_2_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new InstanceCreationTuple_LeftParenthesisKeyword_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// ("," instanceCreationTupleElement+=InstanceCreationTupleElement)*
+protected class InstanceCreationTuple_Group_2_1 extends GroupToken {
+
+ public InstanceCreationTuple_Group_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getInstanceCreationTupleAccess().getGroup_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InstanceCreationTuple_InstanceCreationTupleElementAssignment_2_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// ","
+protected class InstanceCreationTuple_CommaKeyword_2_1_0 extends KeywordToken {
+
+ public InstanceCreationTuple_CommaKeyword_2_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getInstanceCreationTupleAccess().getCommaKeyword_2_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InstanceCreationTuple_Group_2_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new InstanceCreationTuple_InstanceCreationTupleElementAssignment_2_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// instanceCreationTupleElement+=InstanceCreationTupleElement
+protected class InstanceCreationTuple_InstanceCreationTupleElementAssignment_2_1_1 extends AssignmentToken {
+
+ public InstanceCreationTuple_InstanceCreationTupleElementAssignment_2_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getInstanceCreationTupleAccess().getInstanceCreationTupleElementAssignment_2_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InstanceCreationTupleElement_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("instanceCreationTupleElement",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("instanceCreationTupleElement");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getInstanceCreationTupleElementRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getInstanceCreationTupleAccess().getInstanceCreationTupleElementInstanceCreationTupleElementParserRuleCall_2_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new InstanceCreationTuple_CommaKeyword_2_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+// ")"
+protected class InstanceCreationTuple_RightParenthesisKeyword_3 extends KeywordToken {
+
+ public InstanceCreationTuple_RightParenthesisKeyword_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getInstanceCreationTupleAccess().getRightParenthesisKeyword_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InstanceCreationTuple_Group_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new InstanceCreationTuple_LeftParenthesisKeyword_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule InstanceCreationTuple ****************/
+
+
+/************ begin Rule InstanceCreationTupleElement ****************
+ *
+ * //LinkOperationTupleElement :
+ * // objectOrRole = ID (('['roleIndex = Expression ']')? '=>' object = ID)?
+ * //;
+ * InstanceCreationTupleElement:
+ * role=ID "=>" object=Expression;
+ *
+ **/
+
+// role=ID "=>" object=Expression
+protected class InstanceCreationTupleElement_Group extends GroupToken {
+
+ public InstanceCreationTupleElement_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getInstanceCreationTupleElementAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InstanceCreationTupleElement_ObjectAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getInstanceCreationTupleElementRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// role=ID
+protected class InstanceCreationTupleElement_RoleAssignment_0 extends AssignmentToken {
+
+ public InstanceCreationTupleElement_RoleAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getInstanceCreationTupleElementAccess().getRoleAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("role",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("role");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getInstanceCreationTupleElementAccess().getRoleIDTerminalRuleCall_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getInstanceCreationTupleElementAccess().getRoleIDTerminalRuleCall_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// "=>"
+protected class InstanceCreationTupleElement_EqualsSignGreaterThanSignKeyword_1 extends KeywordToken {
+
+ public InstanceCreationTupleElement_EqualsSignGreaterThanSignKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getInstanceCreationTupleElementAccess().getEqualsSignGreaterThanSignKeyword_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InstanceCreationTupleElement_RoleAssignment_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// object=Expression
+protected class InstanceCreationTupleElement_ObjectAssignment_2 extends AssignmentToken {
+
+ public InstanceCreationTupleElement_ObjectAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getInstanceCreationTupleElementAccess().getObjectAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_ConditionalTestExpressionParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("object",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("object");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getInstanceCreationTupleElementAccess().getObjectExpressionParserRuleCall_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new InstanceCreationTupleElement_EqualsSignGreaterThanSignKeyword_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule InstanceCreationTupleElement ****************/
+
+
+/************ begin Rule SequenceConstructionOrAccessCompletion ****************
+ *
+ * SequenceConstructionOrAccessCompletion:
+ * multiplicityIndicator?="[" (accessCompletion=AccessCompletion |
+ * sequenceCompletion=PartialSequenceConstructionCompletion) | expression=SequenceConstructionExpression;
+ *
+ **/
+
+// multiplicityIndicator?="[" (accessCompletion=AccessCompletion |
+// sequenceCompletion=PartialSequenceConstructionCompletion) | expression=SequenceConstructionExpression
+protected class SequenceConstructionOrAccessCompletion_Alternatives extends AlternativesToken {
+
+ public SequenceConstructionOrAccessCompletion_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getSequenceConstructionOrAccessCompletionAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SequenceConstructionOrAccessCompletion_Group_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new SequenceConstructionOrAccessCompletion_ExpressionAssignment_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getSequenceConstructionOrAccessCompletionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// multiplicityIndicator?="[" (accessCompletion=AccessCompletion |
+// sequenceCompletion=PartialSequenceConstructionCompletion)
+protected class SequenceConstructionOrAccessCompletion_Group_0 extends GroupToken {
+
+ public SequenceConstructionOrAccessCompletion_Group_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getSequenceConstructionOrAccessCompletionAccess().getGroup_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SequenceConstructionOrAccessCompletion_Alternatives_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// multiplicityIndicator?="["
+protected class SequenceConstructionOrAccessCompletion_MultiplicityIndicatorAssignment_0_0 extends AssignmentToken {
+
+ public SequenceConstructionOrAccessCompletion_MultiplicityIndicatorAssignment_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSequenceConstructionOrAccessCompletionAccess().getMultiplicityIndicatorAssignment_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("multiplicityIndicator",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("multiplicityIndicator");
+ if(Boolean.TRUE.equals(value)) { // org::eclipse::xtext::impl::KeywordImpl
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getSequenceConstructionOrAccessCompletionAccess().getMultiplicityIndicatorLeftSquareBracketKeyword_0_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// accessCompletion=AccessCompletion | sequenceCompletion=PartialSequenceConstructionCompletion
+protected class SequenceConstructionOrAccessCompletion_Alternatives_0_1 extends AlternativesToken {
+
+ public SequenceConstructionOrAccessCompletion_Alternatives_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getSequenceConstructionOrAccessCompletionAccess().getAlternatives_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SequenceConstructionOrAccessCompletion_AccessCompletionAssignment_0_1_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new SequenceConstructionOrAccessCompletion_SequenceCompletionAssignment_0_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// accessCompletion=AccessCompletion
+protected class SequenceConstructionOrAccessCompletion_AccessCompletionAssignment_0_1_0 extends AssignmentToken {
+
+ public SequenceConstructionOrAccessCompletion_AccessCompletionAssignment_0_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSequenceConstructionOrAccessCompletionAccess().getAccessCompletionAssignment_0_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AccessCompletion_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("accessCompletion",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("accessCompletion");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getAccessCompletionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSequenceConstructionOrAccessCompletionAccess().getAccessCompletionAccessCompletionParserRuleCall_0_1_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new SequenceConstructionOrAccessCompletion_MultiplicityIndicatorAssignment_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// sequenceCompletion=PartialSequenceConstructionCompletion
+protected class SequenceConstructionOrAccessCompletion_SequenceCompletionAssignment_0_1_1 extends AssignmentToken {
+
+ public SequenceConstructionOrAccessCompletion_SequenceCompletionAssignment_0_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSequenceConstructionOrAccessCompletionAccess().getSequenceCompletionAssignment_0_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PartialSequenceConstructionCompletion_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("sequenceCompletion",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("sequenceCompletion");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getPartialSequenceConstructionCompletionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSequenceConstructionOrAccessCompletionAccess().getSequenceCompletionPartialSequenceConstructionCompletionParserRuleCall_0_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new SequenceConstructionOrAccessCompletion_MultiplicityIndicatorAssignment_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+// expression=SequenceConstructionExpression
+protected class SequenceConstructionOrAccessCompletion_ExpressionAssignment_1 extends AssignmentToken {
+
+ public SequenceConstructionOrAccessCompletion_ExpressionAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSequenceConstructionOrAccessCompletionAccess().getExpressionAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SequenceConstructionExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("expression",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("expression");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSequenceConstructionExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSequenceConstructionOrAccessCompletionAccess().getExpressionSequenceConstructionExpressionParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+
+/************ end Rule SequenceConstructionOrAccessCompletion ****************/
+
+
+/************ begin Rule AccessCompletion ****************
+ *
+ * AccessCompletion:
+ * accessIndex=Expression "]";
+ *
+ **/
+
+// accessIndex=Expression "]"
+protected class AccessCompletion_Group extends GroupToken {
+
+ public AccessCompletion_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAccessCompletionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AccessCompletion_RightSquareBracketKeyword_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getAccessCompletionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// accessIndex=Expression
+protected class AccessCompletion_AccessIndexAssignment_0 extends AssignmentToken {
+
+ public AccessCompletion_AccessIndexAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAccessCompletionAccess().getAccessIndexAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_ConditionalTestExpressionParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("accessIndex",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("accessIndex");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAccessCompletionAccess().getAccessIndexExpressionParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// "]"
+protected class AccessCompletion_RightSquareBracketKeyword_1 extends KeywordToken {
+
+ public AccessCompletion_RightSquareBracketKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getAccessCompletionAccess().getRightSquareBracketKeyword_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AccessCompletion_AccessIndexAssignment_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule AccessCompletion ****************/
+
+
+/************ begin Rule PartialSequenceConstructionCompletion ****************
+ *
+ * PartialSequenceConstructionCompletion:
+ * "]" expression=SequenceConstructionExpression;
+ *
+ **/
+
+// "]" expression=SequenceConstructionExpression
+protected class PartialSequenceConstructionCompletion_Group extends GroupToken {
+
+ public PartialSequenceConstructionCompletion_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPartialSequenceConstructionCompletionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PartialSequenceConstructionCompletion_ExpressionAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getPartialSequenceConstructionCompletionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "]"
+protected class PartialSequenceConstructionCompletion_RightSquareBracketKeyword_0 extends KeywordToken {
+
+ public PartialSequenceConstructionCompletion_RightSquareBracketKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getPartialSequenceConstructionCompletionAccess().getRightSquareBracketKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// expression=SequenceConstructionExpression
+protected class PartialSequenceConstructionCompletion_ExpressionAssignment_1 extends AssignmentToken {
+
+ public PartialSequenceConstructionCompletion_ExpressionAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPartialSequenceConstructionCompletionAccess().getExpressionAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SequenceConstructionExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("expression",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("expression");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSequenceConstructionExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPartialSequenceConstructionCompletionAccess().getExpressionSequenceConstructionExpressionParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PartialSequenceConstructionCompletion_RightSquareBracketKeyword_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule PartialSequenceConstructionCompletion ****************/
+
+
+/************ begin Rule SequenceConstructionExpression ****************
+ *
+ * //SequenceConstructionCompletion :
+ * // (multiplicityIndicator ?= '['']')? expression = SequenceConstructionExpression
+ * //;
+ * SequenceConstructionExpression:
+ * "{" sequenceElement+=SequenceElement (("," sequenceElement+=SequenceElement)* | ".." rangeUpper=Expression) "}";
+ *
+ **/
+
+// "{" sequenceElement+=SequenceElement (("," sequenceElement+=SequenceElement)* | ".." rangeUpper=Expression) "}"
+protected class SequenceConstructionExpression_Group extends GroupToken {
+
+ public SequenceConstructionExpression_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getSequenceConstructionExpressionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SequenceConstructionExpression_RightCurlyBracketKeyword_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getSequenceConstructionExpressionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "{"
+protected class SequenceConstructionExpression_LeftCurlyBracketKeyword_0 extends KeywordToken {
+
+ public SequenceConstructionExpression_LeftCurlyBracketKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSequenceConstructionExpressionAccess().getLeftCurlyBracketKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// sequenceElement+=SequenceElement
+protected class SequenceConstructionExpression_SequenceElementAssignment_1 extends AssignmentToken {
+
+ public SequenceConstructionExpression_SequenceElementAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSequenceConstructionExpressionAccess().getSequenceElementAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SequenceElement_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("sequenceElement",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("sequenceElement");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSequenceElementRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSequenceConstructionExpressionAccess().getSequenceElementSequenceElementParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new SequenceConstructionExpression_LeftCurlyBracketKeyword_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// ("," sequenceElement+=SequenceElement)* | ".." rangeUpper=Expression
+protected class SequenceConstructionExpression_Alternatives_2 extends AlternativesToken {
+
+ public SequenceConstructionExpression_Alternatives_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getSequenceConstructionExpressionAccess().getAlternatives_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SequenceConstructionExpression_Group_2_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new SequenceConstructionExpression_Group_2_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new SequenceConstructionExpression_SequenceElementAssignment_1(lastRuleCallOrigin, this, 2, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// ("," sequenceElement+=SequenceElement)*
+protected class SequenceConstructionExpression_Group_2_0 extends GroupToken {
+
+ public SequenceConstructionExpression_Group_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getSequenceConstructionExpressionAccess().getGroup_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SequenceConstructionExpression_SequenceElementAssignment_2_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// ","
+protected class SequenceConstructionExpression_CommaKeyword_2_0_0 extends KeywordToken {
+
+ public SequenceConstructionExpression_CommaKeyword_2_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSequenceConstructionExpressionAccess().getCommaKeyword_2_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SequenceConstructionExpression_Group_2_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new SequenceConstructionExpression_SequenceElementAssignment_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// sequenceElement+=SequenceElement
+protected class SequenceConstructionExpression_SequenceElementAssignment_2_0_1 extends AssignmentToken {
+
+ public SequenceConstructionExpression_SequenceElementAssignment_2_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSequenceConstructionExpressionAccess().getSequenceElementAssignment_2_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SequenceElement_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("sequenceElement",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("sequenceElement");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSequenceElementRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSequenceConstructionExpressionAccess().getSequenceElementSequenceElementParserRuleCall_2_0_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new SequenceConstructionExpression_CommaKeyword_2_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// ".." rangeUpper=Expression
+protected class SequenceConstructionExpression_Group_2_1 extends GroupToken {
+
+ public SequenceConstructionExpression_Group_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getSequenceConstructionExpressionAccess().getGroup_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SequenceConstructionExpression_RangeUpperAssignment_2_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// ".."
+protected class SequenceConstructionExpression_FullStopFullStopKeyword_2_1_0 extends KeywordToken {
+
+ public SequenceConstructionExpression_FullStopFullStopKeyword_2_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSequenceConstructionExpressionAccess().getFullStopFullStopKeyword_2_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SequenceConstructionExpression_SequenceElementAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// rangeUpper=Expression
+protected class SequenceConstructionExpression_RangeUpperAssignment_2_1_1 extends AssignmentToken {
+
+ public SequenceConstructionExpression_RangeUpperAssignment_2_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSequenceConstructionExpressionAccess().getRangeUpperAssignment_2_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_ConditionalTestExpressionParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("rangeUpper",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("rangeUpper");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSequenceConstructionExpressionAccess().getRangeUpperExpressionParserRuleCall_2_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new SequenceConstructionExpression_FullStopFullStopKeyword_2_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+// "}"
+protected class SequenceConstructionExpression_RightCurlyBracketKeyword_3 extends KeywordToken {
+
+ public SequenceConstructionExpression_RightCurlyBracketKeyword_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSequenceConstructionExpressionAccess().getRightCurlyBracketKeyword_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SequenceConstructionExpression_Alternatives_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule SequenceConstructionExpression ****************/
+
+
+/************ begin Rule SequenceElement ****************
+ *
+ * SequenceElement:
+ * Expression | SequenceConstructionExpression;
+ *
+ **/
+
+// Expression | SequenceConstructionExpression
+protected class SequenceElement_Alternatives extends AlternativesToken {
+
+ public SequenceElement_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getSequenceElementAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SequenceElement_ExpressionParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new SequenceElement_SequenceConstructionExpressionParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getConditionalTestExpressionRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getSequenceConstructionExpressionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// Expression
+protected class SequenceElement_ExpressionParserRuleCall_0 extends RuleCallToken {
+
+ public SequenceElement_ExpressionParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getSequenceElementAccess().getExpressionParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_ConditionalTestExpressionParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getConditionalTestExpressionRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Expression_ConditionalTestExpressionParserRuleCall.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// SequenceConstructionExpression
+protected class SequenceElement_SequenceConstructionExpressionParserRuleCall_1 extends RuleCallToken {
+
+ public SequenceElement_SequenceConstructionExpressionParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getSequenceElementAccess().getSequenceConstructionExpressionParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SequenceConstructionExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getSequenceConstructionExpressionRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(SequenceConstructionExpression_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+/************ end Rule SequenceElement ****************/
+
+
+/************ begin Rule ClassExtentExpression ****************
+ *
+ * ClassExtentExpression:
+ * {ClassExtentExpression} "." "allInstances" "(" ")";
+ *
+ **/
+
+// {ClassExtentExpression} "." "allInstances" "(" ")"
+protected class ClassExtentExpression_Group extends GroupToken {
+
+ public ClassExtentExpression_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getClassExtentExpressionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassExtentExpression_RightParenthesisKeyword_4(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getClassExtentExpressionAccess().getClassExtentExpressionAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {ClassExtentExpression}
+protected class ClassExtentExpression_ClassExtentExpressionAction_0 extends ActionToken {
+
+ public ClassExtentExpression_ClassExtentExpressionAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getClassExtentExpressionAccess().getClassExtentExpressionAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// "."
+protected class ClassExtentExpression_FullStopKeyword_1 extends KeywordToken {
+
+ public ClassExtentExpression_FullStopKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getClassExtentExpressionAccess().getFullStopKeyword_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassExtentExpression_ClassExtentExpressionAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "allInstances"
+protected class ClassExtentExpression_AllInstancesKeyword_2 extends KeywordToken {
+
+ public ClassExtentExpression_AllInstancesKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getClassExtentExpressionAccess().getAllInstancesKeyword_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassExtentExpression_FullStopKeyword_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "("
+protected class ClassExtentExpression_LeftParenthesisKeyword_3 extends KeywordToken {
+
+ public ClassExtentExpression_LeftParenthesisKeyword_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getClassExtentExpressionAccess().getLeftParenthesisKeyword_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassExtentExpression_AllInstancesKeyword_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// ")"
+protected class ClassExtentExpression_RightParenthesisKeyword_4 extends KeywordToken {
+
+ public ClassExtentExpression_RightParenthesisKeyword_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getClassExtentExpressionAccess().getRightParenthesisKeyword_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassExtentExpression_LeftParenthesisKeyword_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule ClassExtentExpression ****************/
+
+
+/************ begin Rule Block ****************
+ *
+ * / *****************
+ * * Statements
+ * **************** / Block:
+ * "{" {Block} sequence=StatementSequence? "}";
+ *
+ **/
+
+// "{" {Block} sequence=StatementSequence? "}"
+protected class Block_Group extends GroupToken {
+
+ public Block_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getBlockAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_RightCurlyBracketKeyword_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getBlockAccess().getBlockAction_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "{"
+protected class Block_LeftCurlyBracketKeyword_0 extends KeywordToken {
+
+ public Block_LeftCurlyBracketKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getBlockAccess().getLeftCurlyBracketKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// {Block}
+protected class Block_BlockAction_1 extends ActionToken {
+
+ public Block_BlockAction_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getBlockAccess().getBlockAction_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_LeftCurlyBracketKeyword_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// sequence=StatementSequence?
+protected class Block_SequenceAssignment_2 extends AssignmentToken {
+
+ public Block_SequenceAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getBlockAccess().getSequenceAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new StatementSequence_StatementsAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("sequence",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("sequence");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getStatementSequenceRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getBlockAccess().getSequenceStatementSequenceParserRuleCall_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Block_BlockAction_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// "}"
+protected class Block_RightCurlyBracketKeyword_3 extends KeywordToken {
+
+ public Block_RightCurlyBracketKeyword_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getBlockAccess().getRightCurlyBracketKeyword_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_SequenceAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Block_BlockAction_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule Block ****************/
+
+
+/************ begin Rule StatementSequence ****************
+ *
+ * StatementSequence:
+ * statements+=DocumentedStatement+;
+ *
+ **/
+
+// statements+=DocumentedStatement+
+protected class StatementSequence_StatementsAssignment extends AssignmentToken {
+
+ public StatementSequence_StatementsAssignment(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getStatementSequenceAccess().getStatementsAssignment();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DocumentedStatement_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("statements",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("statements");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getDocumentedStatementRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getStatementSequenceAccess().getStatementsDocumentedStatementParserRuleCall_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new StatementSequence_StatementsAssignment(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index - 1, consumed);
+ }
+ }
+}
+
+/************ end Rule StatementSequence ****************/
+
+
+/************ begin Rule DocumentedStatement ****************
+ *
+ * DocumentedStatement:
+ * comment=(ML_COMMENT | SL_COMMENT)? statement=Statement;
+ *
+ **/
+
+// comment=(ML_COMMENT | SL_COMMENT)? statement=Statement
+protected class DocumentedStatement_Group extends GroupToken {
+
+ public DocumentedStatement_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getDocumentedStatementAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DocumentedStatement_StatementAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getDocumentedStatementRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// comment=(ML_COMMENT | SL_COMMENT)?
+protected class DocumentedStatement_CommentAssignment_0 extends AssignmentToken {
+
+ public DocumentedStatement_CommentAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getDocumentedStatementAccess().getCommentAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("comment",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("comment");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getDocumentedStatementAccess().getCommentML_COMMENTTerminalRuleCall_0_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getDocumentedStatementAccess().getCommentML_COMMENTTerminalRuleCall_0_0_0();
+ return obj;
+ }
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getDocumentedStatementAccess().getCommentSL_COMMENTTerminalRuleCall_0_0_1(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getDocumentedStatementAccess().getCommentSL_COMMENTTerminalRuleCall_0_0_1();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// statement=Statement
+protected class DocumentedStatement_StatementAssignment_1 extends AssignmentToken {
+
+ public DocumentedStatement_StatementAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getDocumentedStatementAccess().getStatementAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Statement_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("statement",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("statement");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getStatementRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getDocumentedStatementAccess().getStatementStatementParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new DocumentedStatement_CommentAssignment_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index - 1, consumed);
+ }
+ }
+}
+
+
+/************ end Rule DocumentedStatement ****************/
+
+
+/************ begin Rule InlineStatement ****************
+ *
+ * InlineStatement:
+ * "/ *@" "inline" "(" langageName=ID ")" body=STRING "* /";
+ *
+ **/
+
+// "/ *@" "inline" "(" langageName=ID ")" body=STRING "* /"
+protected class InlineStatement_Group extends GroupToken {
+
+ public InlineStatement_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getInlineStatementAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InlineStatement_AsteriskSolidusKeyword_6(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getInlineStatementRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "/ *@"
+protected class InlineStatement_SolidusAsteriskCommercialAtKeyword_0 extends KeywordToken {
+
+ public InlineStatement_SolidusAsteriskCommercialAtKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getInlineStatementAccess().getSolidusAsteriskCommercialAtKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// "inline"
+protected class InlineStatement_InlineKeyword_1 extends KeywordToken {
+
+ public InlineStatement_InlineKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getInlineStatementAccess().getInlineKeyword_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InlineStatement_SolidusAsteriskCommercialAtKeyword_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "("
+protected class InlineStatement_LeftParenthesisKeyword_2 extends KeywordToken {
+
+ public InlineStatement_LeftParenthesisKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getInlineStatementAccess().getLeftParenthesisKeyword_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InlineStatement_InlineKeyword_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// langageName=ID
+protected class InlineStatement_LangageNameAssignment_3 extends AssignmentToken {
+
+ public InlineStatement_LangageNameAssignment_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getInlineStatementAccess().getLangageNameAssignment_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InlineStatement_LeftParenthesisKeyword_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("langageName",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("langageName");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getInlineStatementAccess().getLangageNameIDTerminalRuleCall_3_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getInlineStatementAccess().getLangageNameIDTerminalRuleCall_3_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// ")"
+protected class InlineStatement_RightParenthesisKeyword_4 extends KeywordToken {
+
+ public InlineStatement_RightParenthesisKeyword_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getInlineStatementAccess().getRightParenthesisKeyword_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InlineStatement_LangageNameAssignment_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// body=STRING
+protected class InlineStatement_BodyAssignment_5 extends AssignmentToken {
+
+ public InlineStatement_BodyAssignment_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getInlineStatementAccess().getBodyAssignment_5();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InlineStatement_RightParenthesisKeyword_4(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("body",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("body");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getInlineStatementAccess().getBodySTRINGTerminalRuleCall_5_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getInlineStatementAccess().getBodySTRINGTerminalRuleCall_5_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// "* /"
+protected class InlineStatement_AsteriskSolidusKeyword_6 extends KeywordToken {
+
+ public InlineStatement_AsteriskSolidusKeyword_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getInlineStatementAccess().getAsteriskSolidusKeyword_6();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InlineStatement_BodyAssignment_5(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule InlineStatement ****************/
+
+
+/************ begin Rule AnnotatedStatement ****************
+ *
+ * AnnotatedStatement:
+ * "//@" annotation= //block = Block
+ * Annotation statement=Statement;
+ *
+ **/
+
+// "//@" annotation= //block = Block
+// Annotation statement=Statement
+protected class AnnotatedStatement_Group extends GroupToken {
+
+ public AnnotatedStatement_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAnnotatedStatementAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AnnotatedStatement_StatementAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getAnnotatedStatementRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "//@"
+protected class AnnotatedStatement_SolidusSolidusCommercialAtKeyword_0 extends KeywordToken {
+
+ public AnnotatedStatement_SolidusSolidusCommercialAtKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getAnnotatedStatementAccess().getSolidusSolidusCommercialAtKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// annotation= //block = Block
+// Annotation
+protected class AnnotatedStatement_AnnotationAssignment_1 extends AssignmentToken {
+
+ public AnnotatedStatement_AnnotationAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAnnotatedStatementAccess().getAnnotationAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Annotation_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("annotation",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("annotation");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getAnnotationRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAnnotatedStatementAccess().getAnnotationAnnotationParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new AnnotatedStatement_SolidusSolidusCommercialAtKeyword_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// statement=Statement
+protected class AnnotatedStatement_StatementAssignment_2 extends AssignmentToken {
+
+ public AnnotatedStatement_StatementAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAnnotatedStatementAccess().getStatementAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Statement_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("statement",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("statement");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getStatementRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAnnotatedStatementAccess().getStatementStatementParserRuleCall_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new AnnotatedStatement_AnnotationAssignment_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule AnnotatedStatement ****************/
+
+
+/************ begin Rule Statement ****************
+ *
+ * Statement:
+ * AnnotatedStatement | InlineStatement | BlockStatement | EmptyStatement | LocalNameDeclarationStatement | IfStatement |
+ * SwitchStatement | WhileStatement | DoStatement | ForStatement | BreakStatement | ReturnStatement | AcceptStatement |
+ * ClassifyStatement | InvocationOrAssignementOrDeclarationStatement | SuperInvocationStatement | ThisInvocationStatement
+ * | InstanceCreationInvocationStatement;
+ *
+ **/
+
+// AnnotatedStatement | InlineStatement | BlockStatement | EmptyStatement | LocalNameDeclarationStatement | IfStatement |
+// SwitchStatement | WhileStatement | DoStatement | ForStatement | BreakStatement | ReturnStatement | AcceptStatement |
+// ClassifyStatement | InvocationOrAssignementOrDeclarationStatement | SuperInvocationStatement | ThisInvocationStatement
+// | InstanceCreationInvocationStatement
+protected class Statement_Alternatives extends AlternativesToken {
+
+ public Statement_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getStatementAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Statement_AnnotatedStatementParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Statement_InlineStatementParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new Statement_BlockStatementParserRuleCall_2(lastRuleCallOrigin, this, 2, inst);
+ case 3: return new Statement_EmptyStatementParserRuleCall_3(lastRuleCallOrigin, this, 3, inst);
+ case 4: return new Statement_LocalNameDeclarationStatementParserRuleCall_4(lastRuleCallOrigin, this, 4, inst);
+ case 5: return new Statement_IfStatementParserRuleCall_5(lastRuleCallOrigin, this, 5, inst);
+ case 6: return new Statement_SwitchStatementParserRuleCall_6(lastRuleCallOrigin, this, 6, inst);
+ case 7: return new Statement_WhileStatementParserRuleCall_7(lastRuleCallOrigin, this, 7, inst);
+ case 8: return new Statement_DoStatementParserRuleCall_8(lastRuleCallOrigin, this, 8, inst);
+ case 9: return new Statement_ForStatementParserRuleCall_9(lastRuleCallOrigin, this, 9, inst);
+ case 10: return new Statement_BreakStatementParserRuleCall_10(lastRuleCallOrigin, this, 10, inst);
+ case 11: return new Statement_ReturnStatementParserRuleCall_11(lastRuleCallOrigin, this, 11, inst);
+ case 12: return new Statement_AcceptStatementParserRuleCall_12(lastRuleCallOrigin, this, 12, inst);
+ case 13: return new Statement_ClassifyStatementParserRuleCall_13(lastRuleCallOrigin, this, 13, inst);
+ case 14: return new Statement_InvocationOrAssignementOrDeclarationStatementParserRuleCall_14(lastRuleCallOrigin, this, 14, inst);
+ case 15: return new Statement_SuperInvocationStatementParserRuleCall_15(lastRuleCallOrigin, this, 15, inst);
+ case 16: return new Statement_ThisInvocationStatementParserRuleCall_16(lastRuleCallOrigin, this, 16, inst);
+ case 17: return new Statement_InstanceCreationInvocationStatementParserRuleCall_17(lastRuleCallOrigin, this, 17, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getAcceptStatementRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAnnotatedStatementRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getBlockStatementRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getBreakStatementAccess().getBreakStatementAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getClassifyStatementRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getDoStatementRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getEmptyStatementAccess().getEmptyStatementAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getForStatementRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIfStatementRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getInlineStatementRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getInstanceCreationInvocationStatementRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getInvocationOrAssignementOrDeclarationStatementRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getLocalNameDeclarationStatementRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getReturnStatementRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getSuperInvocationStatementRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getSwitchStatementRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getThisInvocationStatementRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getWhileStatementRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// AnnotatedStatement
+protected class Statement_AnnotatedStatementParserRuleCall_0 extends RuleCallToken {
+
+ public Statement_AnnotatedStatementParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStatementAccess().getAnnotatedStatementParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AnnotatedStatement_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getAnnotatedStatementRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(AnnotatedStatement_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// InlineStatement
+protected class Statement_InlineStatementParserRuleCall_1 extends RuleCallToken {
+
+ public Statement_InlineStatementParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStatementAccess().getInlineStatementParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InlineStatement_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getInlineStatementRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(InlineStatement_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// BlockStatement
+protected class Statement_BlockStatementParserRuleCall_2 extends RuleCallToken {
+
+ public Statement_BlockStatementParserRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStatementAccess().getBlockStatementParserRuleCall_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new BlockStatement_BlockAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getBlockStatementRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(BlockStatement_BlockAssignment.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// EmptyStatement
+protected class Statement_EmptyStatementParserRuleCall_3 extends RuleCallToken {
+
+ public Statement_EmptyStatementParserRuleCall_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStatementAccess().getEmptyStatementParserRuleCall_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new EmptyStatement_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getEmptyStatementAccess().getEmptyStatementAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(EmptyStatement_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// LocalNameDeclarationStatement
+protected class Statement_LocalNameDeclarationStatementParserRuleCall_4 extends RuleCallToken {
+
+ public Statement_LocalNameDeclarationStatementParserRuleCall_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStatementAccess().getLocalNameDeclarationStatementParserRuleCall_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LocalNameDeclarationStatement_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getLocalNameDeclarationStatementRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(LocalNameDeclarationStatement_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// IfStatement
+protected class Statement_IfStatementParserRuleCall_5 extends RuleCallToken {
+
+ public Statement_IfStatementParserRuleCall_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStatementAccess().getIfStatementParserRuleCall_5();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IfStatement_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIfStatementRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(IfStatement_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// SwitchStatement
+protected class Statement_SwitchStatementParserRuleCall_6 extends RuleCallToken {
+
+ public Statement_SwitchStatementParserRuleCall_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStatementAccess().getSwitchStatementParserRuleCall_6();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SwitchStatement_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getSwitchStatementRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(SwitchStatement_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// WhileStatement
+protected class Statement_WhileStatementParserRuleCall_7 extends RuleCallToken {
+
+ public Statement_WhileStatementParserRuleCall_7(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStatementAccess().getWhileStatementParserRuleCall_7();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new WhileStatement_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getWhileStatementRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(WhileStatement_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// DoStatement
+protected class Statement_DoStatementParserRuleCall_8 extends RuleCallToken {
+
+ public Statement_DoStatementParserRuleCall_8(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStatementAccess().getDoStatementParserRuleCall_8();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DoStatement_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getDoStatementRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(DoStatement_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// ForStatement
+protected class Statement_ForStatementParserRuleCall_9 extends RuleCallToken {
+
+ public Statement_ForStatementParserRuleCall_9(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStatementAccess().getForStatementParserRuleCall_9();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForStatement_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getForStatementRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(ForStatement_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// BreakStatement
+protected class Statement_BreakStatementParserRuleCall_10 extends RuleCallToken {
+
+ public Statement_BreakStatementParserRuleCall_10(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStatementAccess().getBreakStatementParserRuleCall_10();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new BreakStatement_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getBreakStatementAccess().getBreakStatementAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(BreakStatement_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// ReturnStatement
+protected class Statement_ReturnStatementParserRuleCall_11 extends RuleCallToken {
+
+ public Statement_ReturnStatementParserRuleCall_11(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStatementAccess().getReturnStatementParserRuleCall_11();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ReturnStatement_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getReturnStatementRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(ReturnStatement_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// AcceptStatement
+protected class Statement_AcceptStatementParserRuleCall_12 extends RuleCallToken {
+
+ public Statement_AcceptStatementParserRuleCall_12(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStatementAccess().getAcceptStatementParserRuleCall_12();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AcceptStatement_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getAcceptStatementRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(AcceptStatement_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// ClassifyStatement
+protected class Statement_ClassifyStatementParserRuleCall_13 extends RuleCallToken {
+
+ public Statement_ClassifyStatementParserRuleCall_13(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStatementAccess().getClassifyStatementParserRuleCall_13();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassifyStatement_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getClassifyStatementRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(ClassifyStatement_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// InvocationOrAssignementOrDeclarationStatement
+protected class Statement_InvocationOrAssignementOrDeclarationStatementParserRuleCall_14 extends RuleCallToken {
+
+ public Statement_InvocationOrAssignementOrDeclarationStatementParserRuleCall_14(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStatementAccess().getInvocationOrAssignementOrDeclarationStatementParserRuleCall_14();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InvocationOrAssignementOrDeclarationStatement_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getInvocationOrAssignementOrDeclarationStatementRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(InvocationOrAssignementOrDeclarationStatement_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// SuperInvocationStatement
+protected class Statement_SuperInvocationStatementParserRuleCall_15 extends RuleCallToken {
+
+ public Statement_SuperInvocationStatementParserRuleCall_15(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStatementAccess().getSuperInvocationStatementParserRuleCall_15();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuperInvocationStatement_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getSuperInvocationStatementRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(SuperInvocationStatement_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// ThisInvocationStatement
+protected class Statement_ThisInvocationStatementParserRuleCall_16 extends RuleCallToken {
+
+ public Statement_ThisInvocationStatementParserRuleCall_16(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStatementAccess().getThisInvocationStatementParserRuleCall_16();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ThisInvocationStatement_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getThisInvocationStatementRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(ThisInvocationStatement_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// InstanceCreationInvocationStatement
+protected class Statement_InstanceCreationInvocationStatementParserRuleCall_17 extends RuleCallToken {
+
+ public Statement_InstanceCreationInvocationStatementParserRuleCall_17(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStatementAccess().getInstanceCreationInvocationStatementParserRuleCall_17();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InstanceCreationInvocationStatement_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getInstanceCreationInvocationStatementRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(InstanceCreationInvocationStatement_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+/************ end Rule Statement ****************/
+
+
+/************ begin Rule Annotation ****************
+ *
+ * Annotation:
+ * kind=AnnotationKind ("(" args+=ID ("," args+=ID)* ")")?;
+ *
+ **/
+
+// kind=AnnotationKind ("(" args+=ID ("," args+=ID)* ")")?
+protected class Annotation_Group extends GroupToken {
+
+ public Annotation_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAnnotationAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Annotation_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Annotation_KindAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getAnnotationRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// kind=AnnotationKind
+protected class Annotation_KindAssignment_0 extends AssignmentToken {
+
+ public Annotation_KindAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAnnotationAccess().getKindAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("kind",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("kind");
+ if(enumLitSerializer.isValid(obj.getEObject(), grammarAccess.getAnnotationAccess().getKindAnnotationKindEnumRuleCall_0_0(), value, null)) {
+ type = AssignmentType.ENUM_RULE_CALL;
+ element = grammarAccess.getAnnotationAccess().getKindAnnotationKindEnumRuleCall_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// ("(" args+=ID ("," args+=ID)* ")")?
+protected class Annotation_Group_1 extends GroupToken {
+
+ public Annotation_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAnnotationAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Annotation_RightParenthesisKeyword_1_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "("
+protected class Annotation_LeftParenthesisKeyword_1_0 extends KeywordToken {
+
+ public Annotation_LeftParenthesisKeyword_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getAnnotationAccess().getLeftParenthesisKeyword_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Annotation_KindAssignment_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// args+=ID
+protected class Annotation_ArgsAssignment_1_1 extends AssignmentToken {
+
+ public Annotation_ArgsAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAnnotationAccess().getArgsAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Annotation_LeftParenthesisKeyword_1_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("args",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("args");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getAnnotationAccess().getArgsIDTerminalRuleCall_1_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getAnnotationAccess().getArgsIDTerminalRuleCall_1_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// ("," args+=ID)*
+protected class Annotation_Group_1_2 extends GroupToken {
+
+ public Annotation_Group_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAnnotationAccess().getGroup_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Annotation_ArgsAssignment_1_2_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// ","
+protected class Annotation_CommaKeyword_1_2_0 extends KeywordToken {
+
+ public Annotation_CommaKeyword_1_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getAnnotationAccess().getCommaKeyword_1_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Annotation_Group_1_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Annotation_ArgsAssignment_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// args+=ID
+protected class Annotation_ArgsAssignment_1_2_1 extends AssignmentToken {
+
+ public Annotation_ArgsAssignment_1_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAnnotationAccess().getArgsAssignment_1_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Annotation_CommaKeyword_1_2_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("args",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("args");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getAnnotationAccess().getArgsIDTerminalRuleCall_1_2_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getAnnotationAccess().getArgsIDTerminalRuleCall_1_2_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+// ")"
+protected class Annotation_RightParenthesisKeyword_1_3 extends KeywordToken {
+
+ public Annotation_RightParenthesisKeyword_1_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getAnnotationAccess().getRightParenthesisKeyword_1_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Annotation_Group_1_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Annotation_ArgsAssignment_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+
+/************ end Rule Annotation ****************/
+
+
+/************ begin Rule BlockStatement ****************
+ *
+ * BlockStatement:
+ * block=Block;
+ *
+ **/
+
+// block=Block
+protected class BlockStatement_BlockAssignment extends AssignmentToken {
+
+ public BlockStatement_BlockAssignment(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getBlockStatementAccess().getBlockAssignment();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getBlockStatementRule().getType().getClassifier())
+ return null;
+ if((value = eObjectConsumer.getConsumable("block",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("block");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getBlockStatementAccess().getBlockBlockParserRuleCall_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+/************ end Rule BlockStatement ****************/
+
+
+/************ begin Rule EmptyStatement ****************
+ *
+ * EmptyStatement:
+ * {EmptyStatement} ";";
+ *
+ **/
+
+// {EmptyStatement} ";"
+protected class EmptyStatement_Group extends GroupToken {
+
+ public EmptyStatement_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getEmptyStatementAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new EmptyStatement_SemicolonKeyword_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getEmptyStatementAccess().getEmptyStatementAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {EmptyStatement}
+protected class EmptyStatement_EmptyStatementAction_0 extends ActionToken {
+
+ public EmptyStatement_EmptyStatementAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getEmptyStatementAccess().getEmptyStatementAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// ";"
+protected class EmptyStatement_SemicolonKeyword_1 extends KeywordToken {
+
+ public EmptyStatement_SemicolonKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getEmptyStatementAccess().getSemicolonKeyword_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new EmptyStatement_EmptyStatementAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule EmptyStatement ****************/
+
+
+/************ begin Rule LocalNameDeclarationStatement ****************
+ *
+ * LocalNameDeclarationStatement:
+ * "let" varName=ID ":" type=QualifiedNameWithBinding (multiplicityIndicator?="[" "]")? //'=' init = Expression ';'
+ * "=" init=SequenceElement ";";
+ *
+ **/
+
+// "let" varName=ID ":" type=QualifiedNameWithBinding (multiplicityIndicator?="[" "]")? //'=' init = Expression ';'
+// "=" init=SequenceElement ";"
+protected class LocalNameDeclarationStatement_Group extends GroupToken {
+
+ public LocalNameDeclarationStatement_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getLocalNameDeclarationStatementAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LocalNameDeclarationStatement_SemicolonKeyword_7(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getLocalNameDeclarationStatementRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "let"
+protected class LocalNameDeclarationStatement_LetKeyword_0 extends KeywordToken {
+
+ public LocalNameDeclarationStatement_LetKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getLocalNameDeclarationStatementAccess().getLetKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// varName=ID
+protected class LocalNameDeclarationStatement_VarNameAssignment_1 extends AssignmentToken {
+
+ public LocalNameDeclarationStatement_VarNameAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getLocalNameDeclarationStatementAccess().getVarNameAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LocalNameDeclarationStatement_LetKeyword_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("varName",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("varName");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getLocalNameDeclarationStatementAccess().getVarNameIDTerminalRuleCall_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getLocalNameDeclarationStatementAccess().getVarNameIDTerminalRuleCall_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// ":"
+protected class LocalNameDeclarationStatement_ColonKeyword_2 extends KeywordToken {
+
+ public LocalNameDeclarationStatement_ColonKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getLocalNameDeclarationStatementAccess().getColonKeyword_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LocalNameDeclarationStatement_VarNameAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// type=QualifiedNameWithBinding
+protected class LocalNameDeclarationStatement_TypeAssignment_3 extends AssignmentToken {
+
+ public LocalNameDeclarationStatement_TypeAssignment_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getLocalNameDeclarationStatementAccess().getTypeAssignment_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new QualifiedNameWithBinding_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("type",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("type");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getQualifiedNameWithBindingRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getLocalNameDeclarationStatementAccess().getTypeQualifiedNameWithBindingParserRuleCall_3_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new LocalNameDeclarationStatement_ColonKeyword_2(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (multiplicityIndicator?="[" "]")?
+protected class LocalNameDeclarationStatement_Group_4 extends GroupToken {
+
+ public LocalNameDeclarationStatement_Group_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getLocalNameDeclarationStatementAccess().getGroup_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LocalNameDeclarationStatement_RightSquareBracketKeyword_4_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// multiplicityIndicator?="["
+protected class LocalNameDeclarationStatement_MultiplicityIndicatorAssignment_4_0 extends AssignmentToken {
+
+ public LocalNameDeclarationStatement_MultiplicityIndicatorAssignment_4_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getLocalNameDeclarationStatementAccess().getMultiplicityIndicatorAssignment_4_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LocalNameDeclarationStatement_TypeAssignment_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("multiplicityIndicator",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("multiplicityIndicator");
+ if(Boolean.TRUE.equals(value)) { // org::eclipse::xtext::impl::KeywordImpl
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getLocalNameDeclarationStatementAccess().getMultiplicityIndicatorLeftSquareBracketKeyword_4_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// "]"
+protected class LocalNameDeclarationStatement_RightSquareBracketKeyword_4_1 extends KeywordToken {
+
+ public LocalNameDeclarationStatement_RightSquareBracketKeyword_4_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getLocalNameDeclarationStatementAccess().getRightSquareBracketKeyword_4_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LocalNameDeclarationStatement_MultiplicityIndicatorAssignment_4_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+// //'=' init = Expression ';'
+// "="
+protected class LocalNameDeclarationStatement_EqualsSignKeyword_5 extends KeywordToken {
+
+ public LocalNameDeclarationStatement_EqualsSignKeyword_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getLocalNameDeclarationStatementAccess().getEqualsSignKeyword_5();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LocalNameDeclarationStatement_Group_4(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new LocalNameDeclarationStatement_TypeAssignment_3(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// init=SequenceElement
+protected class LocalNameDeclarationStatement_InitAssignment_6 extends AssignmentToken {
+
+ public LocalNameDeclarationStatement_InitAssignment_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getLocalNameDeclarationStatementAccess().getInitAssignment_6();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SequenceElement_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("init",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("init");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSequenceElementRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getLocalNameDeclarationStatementAccess().getInitSequenceElementParserRuleCall_6_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new LocalNameDeclarationStatement_EqualsSignKeyword_5(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// ";"
+protected class LocalNameDeclarationStatement_SemicolonKeyword_7 extends KeywordToken {
+
+ public LocalNameDeclarationStatement_SemicolonKeyword_7(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getLocalNameDeclarationStatementAccess().getSemicolonKeyword_7();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LocalNameDeclarationStatement_InitAssignment_6(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule LocalNameDeclarationStatement ****************/
+
+
+/************ begin Rule IfStatement ****************
+ *
+ * IfStatement:
+ * "if" sequentialClausses=SequentialClauses finalClause=FinalClause?;
+ *
+ **/
+
+// "if" sequentialClausses=SequentialClauses finalClause=FinalClause?
+protected class IfStatement_Group extends GroupToken {
+
+ public IfStatement_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getIfStatementAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IfStatement_FinalClauseAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new IfStatement_SequentialClaussesAssignment_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIfStatementRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "if"
+protected class IfStatement_IfKeyword_0 extends KeywordToken {
+
+ public IfStatement_IfKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getIfStatementAccess().getIfKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// sequentialClausses=SequentialClauses
+protected class IfStatement_SequentialClaussesAssignment_1 extends AssignmentToken {
+
+ public IfStatement_SequentialClaussesAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getIfStatementAccess().getSequentialClaussesAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SequentialClauses_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("sequentialClausses",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("sequentialClausses");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSequentialClausesRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getIfStatementAccess().getSequentialClaussesSequentialClausesParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new IfStatement_IfKeyword_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// finalClause=FinalClause?
+protected class IfStatement_FinalClauseAssignment_2 extends AssignmentToken {
+
+ public IfStatement_FinalClauseAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getIfStatementAccess().getFinalClauseAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new FinalClause_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("finalClause",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("finalClause");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getFinalClauseRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getIfStatementAccess().getFinalClauseFinalClauseParserRuleCall_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new IfStatement_SequentialClaussesAssignment_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule IfStatement ****************/
+
+
+/************ begin Rule SequentialClauses ****************
+ *
+ * SequentialClauses:
+ * conccurentClauses+=ConcurrentClauses ("else" "if" conccurentClauses+=ConcurrentClauses)*;
+ *
+ **/
+
+// conccurentClauses+=ConcurrentClauses ("else" "if" conccurentClauses+=ConcurrentClauses)*
+protected class SequentialClauses_Group extends GroupToken {
+
+ public SequentialClauses_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getSequentialClausesAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SequentialClauses_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new SequentialClauses_ConccurentClausesAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getSequentialClausesRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// conccurentClauses+=ConcurrentClauses
+protected class SequentialClauses_ConccurentClausesAssignment_0 extends AssignmentToken {
+
+ public SequentialClauses_ConccurentClausesAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSequentialClausesAccess().getConccurentClausesAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ConcurrentClauses_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("conccurentClauses",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("conccurentClauses");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getConcurrentClausesRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSequentialClausesAccess().getConccurentClausesConcurrentClausesParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// ("else" "if" conccurentClauses+=ConcurrentClauses)*
+protected class SequentialClauses_Group_1 extends GroupToken {
+
+ public SequentialClauses_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getSequentialClausesAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SequentialClauses_ConccurentClausesAssignment_1_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "else"
+protected class SequentialClauses_ElseKeyword_1_0 extends KeywordToken {
+
+ public SequentialClauses_ElseKeyword_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSequentialClausesAccess().getElseKeyword_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SequentialClauses_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new SequentialClauses_ConccurentClausesAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "if"
+protected class SequentialClauses_IfKeyword_1_1 extends KeywordToken {
+
+ public SequentialClauses_IfKeyword_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSequentialClausesAccess().getIfKeyword_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SequentialClauses_ElseKeyword_1_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// conccurentClauses+=ConcurrentClauses
+protected class SequentialClauses_ConccurentClausesAssignment_1_2 extends AssignmentToken {
+
+ public SequentialClauses_ConccurentClausesAssignment_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSequentialClausesAccess().getConccurentClausesAssignment_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ConcurrentClauses_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("conccurentClauses",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("conccurentClauses");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getConcurrentClausesRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSequentialClausesAccess().getConccurentClausesConcurrentClausesParserRuleCall_1_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new SequentialClauses_IfKeyword_1_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule SequentialClauses ****************/
+
+
+/************ begin Rule ConcurrentClauses ****************
+ *
+ * ConcurrentClauses:
+ * nonFinalClause+=NonFinalClause ("or" "if" nonFinalClause+=NonFinalClause)*;
+ *
+ **/
+
+// nonFinalClause+=NonFinalClause ("or" "if" nonFinalClause+=NonFinalClause)*
+protected class ConcurrentClauses_Group extends GroupToken {
+
+ public ConcurrentClauses_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getConcurrentClausesAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ConcurrentClauses_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ConcurrentClauses_NonFinalClauseAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getConcurrentClausesRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// nonFinalClause+=NonFinalClause
+protected class ConcurrentClauses_NonFinalClauseAssignment_0 extends AssignmentToken {
+
+ public ConcurrentClauses_NonFinalClauseAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getConcurrentClausesAccess().getNonFinalClauseAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NonFinalClause_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("nonFinalClause",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("nonFinalClause");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getNonFinalClauseRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getConcurrentClausesAccess().getNonFinalClauseNonFinalClauseParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// ("or" "if" nonFinalClause+=NonFinalClause)*
+protected class ConcurrentClauses_Group_1 extends GroupToken {
+
+ public ConcurrentClauses_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getConcurrentClausesAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ConcurrentClauses_NonFinalClauseAssignment_1_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "or"
+protected class ConcurrentClauses_OrKeyword_1_0 extends KeywordToken {
+
+ public ConcurrentClauses_OrKeyword_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getConcurrentClausesAccess().getOrKeyword_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ConcurrentClauses_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ConcurrentClauses_NonFinalClauseAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "if"
+protected class ConcurrentClauses_IfKeyword_1_1 extends KeywordToken {
+
+ public ConcurrentClauses_IfKeyword_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getConcurrentClausesAccess().getIfKeyword_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ConcurrentClauses_OrKeyword_1_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// nonFinalClause+=NonFinalClause
+protected class ConcurrentClauses_NonFinalClauseAssignment_1_2 extends AssignmentToken {
+
+ public ConcurrentClauses_NonFinalClauseAssignment_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getConcurrentClausesAccess().getNonFinalClauseAssignment_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NonFinalClause_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("nonFinalClause",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("nonFinalClause");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getNonFinalClauseRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getConcurrentClausesAccess().getNonFinalClauseNonFinalClauseParserRuleCall_1_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ConcurrentClauses_IfKeyword_1_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule ConcurrentClauses ****************/
+
+
+/************ begin Rule NonFinalClause ****************
+ *
+ * NonFinalClause:
+ * "(" condition=Expression ")" block=Block;
+ *
+ **/
+
+// "(" condition=Expression ")" block=Block
+protected class NonFinalClause_Group extends GroupToken {
+
+ public NonFinalClause_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getNonFinalClauseAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NonFinalClause_BlockAssignment_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getNonFinalClauseRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "("
+protected class NonFinalClause_LeftParenthesisKeyword_0 extends KeywordToken {
+
+ public NonFinalClause_LeftParenthesisKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getNonFinalClauseAccess().getLeftParenthesisKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// condition=Expression
+protected class NonFinalClause_ConditionAssignment_1 extends AssignmentToken {
+
+ public NonFinalClause_ConditionAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getNonFinalClauseAccess().getConditionAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_ConditionalTestExpressionParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("condition",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("condition");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getNonFinalClauseAccess().getConditionExpressionParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new NonFinalClause_LeftParenthesisKeyword_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// ")"
+protected class NonFinalClause_RightParenthesisKeyword_2 extends KeywordToken {
+
+ public NonFinalClause_RightParenthesisKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getNonFinalClauseAccess().getRightParenthesisKeyword_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NonFinalClause_ConditionAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// block=Block
+protected class NonFinalClause_BlockAssignment_3 extends AssignmentToken {
+
+ public NonFinalClause_BlockAssignment_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getNonFinalClauseAccess().getBlockAssignment_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("block",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("block");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getNonFinalClauseAccess().getBlockBlockParserRuleCall_3_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new NonFinalClause_RightParenthesisKeyword_2(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule NonFinalClause ****************/
+
+
+/************ begin Rule FinalClause ****************
+ *
+ * FinalClause:
+ * "else" block=Block;
+ *
+ **/
+
+// "else" block=Block
+protected class FinalClause_Group extends GroupToken {
+
+ public FinalClause_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getFinalClauseAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new FinalClause_BlockAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getFinalClauseRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "else"
+protected class FinalClause_ElseKeyword_0 extends KeywordToken {
+
+ public FinalClause_ElseKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getFinalClauseAccess().getElseKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// block=Block
+protected class FinalClause_BlockAssignment_1 extends AssignmentToken {
+
+ public FinalClause_BlockAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getFinalClauseAccess().getBlockAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("block",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("block");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getFinalClauseAccess().getBlockBlockParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new FinalClause_ElseKeyword_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule FinalClause ****************/
+
+
+/************ begin Rule SwitchStatement ****************
+ *
+ * SwitchStatement:
+ * "switch" "(" expression=Expression ")" "{" switchClause+=SwitchClause* defaultClause=SwitchDefaultClause? "}";
+ *
+ **/
+
+// "switch" "(" expression=Expression ")" "{" switchClause+=SwitchClause* defaultClause=SwitchDefaultClause? "}"
+protected class SwitchStatement_Group extends GroupToken {
+
+ public SwitchStatement_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getSwitchStatementAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SwitchStatement_RightCurlyBracketKeyword_7(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getSwitchStatementRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "switch"
+protected class SwitchStatement_SwitchKeyword_0 extends KeywordToken {
+
+ public SwitchStatement_SwitchKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSwitchStatementAccess().getSwitchKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// "("
+protected class SwitchStatement_LeftParenthesisKeyword_1 extends KeywordToken {
+
+ public SwitchStatement_LeftParenthesisKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSwitchStatementAccess().getLeftParenthesisKeyword_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SwitchStatement_SwitchKeyword_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// expression=Expression
+protected class SwitchStatement_ExpressionAssignment_2 extends AssignmentToken {
+
+ public SwitchStatement_ExpressionAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSwitchStatementAccess().getExpressionAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_ConditionalTestExpressionParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("expression",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("expression");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSwitchStatementAccess().getExpressionExpressionParserRuleCall_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new SwitchStatement_LeftParenthesisKeyword_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// ")"
+protected class SwitchStatement_RightParenthesisKeyword_3 extends KeywordToken {
+
+ public SwitchStatement_RightParenthesisKeyword_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSwitchStatementAccess().getRightParenthesisKeyword_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SwitchStatement_ExpressionAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "{"
+protected class SwitchStatement_LeftCurlyBracketKeyword_4 extends KeywordToken {
+
+ public SwitchStatement_LeftCurlyBracketKeyword_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSwitchStatementAccess().getLeftCurlyBracketKeyword_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SwitchStatement_RightParenthesisKeyword_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// switchClause+=SwitchClause*
+protected class SwitchStatement_SwitchClauseAssignment_5 extends AssignmentToken {
+
+ public SwitchStatement_SwitchClauseAssignment_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSwitchStatementAccess().getSwitchClauseAssignment_5();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SwitchClause_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("switchClause",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("switchClause");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSwitchClauseRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSwitchStatementAccess().getSwitchClauseSwitchClauseParserRuleCall_5_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new SwitchStatement_SwitchClauseAssignment_5(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new SwitchStatement_LeftCurlyBracketKeyword_4(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// defaultClause=SwitchDefaultClause?
+protected class SwitchStatement_DefaultClauseAssignment_6 extends AssignmentToken {
+
+ public SwitchStatement_DefaultClauseAssignment_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSwitchStatementAccess().getDefaultClauseAssignment_6();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SwitchDefaultClause_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("defaultClause",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("defaultClause");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSwitchDefaultClauseRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSwitchStatementAccess().getDefaultClauseSwitchDefaultClauseParserRuleCall_6_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new SwitchStatement_SwitchClauseAssignment_5(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new SwitchStatement_LeftCurlyBracketKeyword_4(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// "}"
+protected class SwitchStatement_RightCurlyBracketKeyword_7 extends KeywordToken {
+
+ public SwitchStatement_RightCurlyBracketKeyword_7(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSwitchStatementAccess().getRightCurlyBracketKeyword_7();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SwitchStatement_DefaultClauseAssignment_6(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new SwitchStatement_SwitchClauseAssignment_5(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new SwitchStatement_LeftCurlyBracketKeyword_4(lastRuleCallOrigin, this, 2, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule SwitchStatement ****************/
+
+
+/************ begin Rule SwitchClause ****************
+ *
+ * SwitchClause:
+ * switchCase+=SwitchCase switchCase+=SwitchCase* statementSequence=NonEmptyStatementSequence;
+ *
+ **/
+
+// switchCase+=SwitchCase switchCase+=SwitchCase* statementSequence=NonEmptyStatementSequence
+protected class SwitchClause_Group extends GroupToken {
+
+ public SwitchClause_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getSwitchClauseAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SwitchClause_StatementSequenceAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getSwitchClauseRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// switchCase+=SwitchCase
+protected class SwitchClause_SwitchCaseAssignment_0 extends AssignmentToken {
+
+ public SwitchClause_SwitchCaseAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSwitchClauseAccess().getSwitchCaseAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SwitchCase_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("switchCase",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("switchCase");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSwitchCaseRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSwitchClauseAccess().getSwitchCaseSwitchCaseParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// switchCase+=SwitchCase*
+protected class SwitchClause_SwitchCaseAssignment_1 extends AssignmentToken {
+
+ public SwitchClause_SwitchCaseAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSwitchClauseAccess().getSwitchCaseAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SwitchCase_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("switchCase",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("switchCase");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSwitchCaseRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSwitchClauseAccess().getSwitchCaseSwitchCaseParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new SwitchClause_SwitchCaseAssignment_1(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new SwitchClause_SwitchCaseAssignment_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// statementSequence=NonEmptyStatementSequence
+protected class SwitchClause_StatementSequenceAssignment_2 extends AssignmentToken {
+
+ public SwitchClause_StatementSequenceAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSwitchClauseAccess().getStatementSequenceAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NonEmptyStatementSequence_StatementAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("statementSequence",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("statementSequence");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getNonEmptyStatementSequenceRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSwitchClauseAccess().getStatementSequenceNonEmptyStatementSequenceParserRuleCall_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new SwitchClause_SwitchCaseAssignment_1(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new SwitchClause_SwitchCaseAssignment_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule SwitchClause ****************/
+
+
+/************ begin Rule SwitchCase ****************
+ *
+ * SwitchCase:
+ * "case" expression=Expression ":";
+ *
+ **/
+
+// "case" expression=Expression ":"
+protected class SwitchCase_Group extends GroupToken {
+
+ public SwitchCase_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getSwitchCaseAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SwitchCase_ColonKeyword_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getSwitchCaseRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "case"
+protected class SwitchCase_CaseKeyword_0 extends KeywordToken {
+
+ public SwitchCase_CaseKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSwitchCaseAccess().getCaseKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// expression=Expression
+protected class SwitchCase_ExpressionAssignment_1 extends AssignmentToken {
+
+ public SwitchCase_ExpressionAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSwitchCaseAccess().getExpressionAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_ConditionalTestExpressionParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("expression",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("expression");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSwitchCaseAccess().getExpressionExpressionParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new SwitchCase_CaseKeyword_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// ":"
+protected class SwitchCase_ColonKeyword_2 extends KeywordToken {
+
+ public SwitchCase_ColonKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSwitchCaseAccess().getColonKeyword_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SwitchCase_ExpressionAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule SwitchCase ****************/
+
+
+/************ begin Rule SwitchDefaultClause ****************
+ *
+ * SwitchDefaultClause:
+ * "default" ":" statementSequence=NonEmptyStatementSequence;
+ *
+ **/
+
+// "default" ":" statementSequence=NonEmptyStatementSequence
+protected class SwitchDefaultClause_Group extends GroupToken {
+
+ public SwitchDefaultClause_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getSwitchDefaultClauseAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SwitchDefaultClause_StatementSequenceAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getSwitchDefaultClauseRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "default"
+protected class SwitchDefaultClause_DefaultKeyword_0 extends KeywordToken {
+
+ public SwitchDefaultClause_DefaultKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSwitchDefaultClauseAccess().getDefaultKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// ":"
+protected class SwitchDefaultClause_ColonKeyword_1 extends KeywordToken {
+
+ public SwitchDefaultClause_ColonKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSwitchDefaultClauseAccess().getColonKeyword_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SwitchDefaultClause_DefaultKeyword_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// statementSequence=NonEmptyStatementSequence
+protected class SwitchDefaultClause_StatementSequenceAssignment_2 extends AssignmentToken {
+
+ public SwitchDefaultClause_StatementSequenceAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSwitchDefaultClauseAccess().getStatementSequenceAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NonEmptyStatementSequence_StatementAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("statementSequence",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("statementSequence");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getNonEmptyStatementSequenceRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSwitchDefaultClauseAccess().getStatementSequenceNonEmptyStatementSequenceParserRuleCall_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new SwitchDefaultClause_ColonKeyword_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule SwitchDefaultClause ****************/
+
+
+/************ begin Rule NonEmptyStatementSequence ****************
+ *
+ * NonEmptyStatementSequence:
+ * statement+=DocumentedStatement+;
+ *
+ **/
+
+// statement+=DocumentedStatement+
+protected class NonEmptyStatementSequence_StatementAssignment extends AssignmentToken {
+
+ public NonEmptyStatementSequence_StatementAssignment(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getNonEmptyStatementSequenceAccess().getStatementAssignment();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DocumentedStatement_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("statement",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("statement");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getDocumentedStatementRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getNonEmptyStatementSequenceAccess().getStatementDocumentedStatementParserRuleCall_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new NonEmptyStatementSequence_StatementAssignment(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index - 1, consumed);
+ }
+ }
+}
+
+/************ end Rule NonEmptyStatementSequence ****************/
+
+
+/************ begin Rule WhileStatement ****************
+ *
+ * / * WHILE STATEMENTS * / WhileStatement:
+ * "while" "(" condition=Expression ")" block=Block;
+ *
+ **/
+
+// "while" "(" condition=Expression ")" block=Block
+protected class WhileStatement_Group extends GroupToken {
+
+ public WhileStatement_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getWhileStatementAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new WhileStatement_BlockAssignment_4(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getWhileStatementRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "while"
+protected class WhileStatement_WhileKeyword_0 extends KeywordToken {
+
+ public WhileStatement_WhileKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getWhileStatementAccess().getWhileKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// "("
+protected class WhileStatement_LeftParenthesisKeyword_1 extends KeywordToken {
+
+ public WhileStatement_LeftParenthesisKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getWhileStatementAccess().getLeftParenthesisKeyword_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new WhileStatement_WhileKeyword_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// condition=Expression
+protected class WhileStatement_ConditionAssignment_2 extends AssignmentToken {
+
+ public WhileStatement_ConditionAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getWhileStatementAccess().getConditionAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_ConditionalTestExpressionParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("condition",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("condition");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getWhileStatementAccess().getConditionExpressionParserRuleCall_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new WhileStatement_LeftParenthesisKeyword_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// ")"
+protected class WhileStatement_RightParenthesisKeyword_3 extends KeywordToken {
+
+ public WhileStatement_RightParenthesisKeyword_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getWhileStatementAccess().getRightParenthesisKeyword_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new WhileStatement_ConditionAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// block=Block
+protected class WhileStatement_BlockAssignment_4 extends AssignmentToken {
+
+ public WhileStatement_BlockAssignment_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getWhileStatementAccess().getBlockAssignment_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("block",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("block");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getWhileStatementAccess().getBlockBlockParserRuleCall_4_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new WhileStatement_RightParenthesisKeyword_3(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule WhileStatement ****************/
+
+
+/************ begin Rule DoStatement ****************
+ *
+ * / * DO STATEMENTS * / DoStatement:
+ * "do" block=Block "while" "(" condition=Expression ")" ";";
+ *
+ **/
+
+// "do" block=Block "while" "(" condition=Expression ")" ";"
+protected class DoStatement_Group extends GroupToken {
+
+ public DoStatement_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getDoStatementAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DoStatement_SemicolonKeyword_6(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getDoStatementRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "do"
+protected class DoStatement_DoKeyword_0 extends KeywordToken {
+
+ public DoStatement_DoKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getDoStatementAccess().getDoKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// block=Block
+protected class DoStatement_BlockAssignment_1 extends AssignmentToken {
+
+ public DoStatement_BlockAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getDoStatementAccess().getBlockAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("block",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("block");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getDoStatementAccess().getBlockBlockParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new DoStatement_DoKeyword_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// "while"
+protected class DoStatement_WhileKeyword_2 extends KeywordToken {
+
+ public DoStatement_WhileKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getDoStatementAccess().getWhileKeyword_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DoStatement_BlockAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "("
+protected class DoStatement_LeftParenthesisKeyword_3 extends KeywordToken {
+
+ public DoStatement_LeftParenthesisKeyword_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getDoStatementAccess().getLeftParenthesisKeyword_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DoStatement_WhileKeyword_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// condition=Expression
+protected class DoStatement_ConditionAssignment_4 extends AssignmentToken {
+
+ public DoStatement_ConditionAssignment_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getDoStatementAccess().getConditionAssignment_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_ConditionalTestExpressionParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("condition",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("condition");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getDoStatementAccess().getConditionExpressionParserRuleCall_4_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new DoStatement_LeftParenthesisKeyword_3(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// ")"
+protected class DoStatement_RightParenthesisKeyword_5 extends KeywordToken {
+
+ public DoStatement_RightParenthesisKeyword_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getDoStatementAccess().getRightParenthesisKeyword_5();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DoStatement_ConditionAssignment_4(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// ";"
+protected class DoStatement_SemicolonKeyword_6 extends KeywordToken {
+
+ public DoStatement_SemicolonKeyword_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getDoStatementAccess().getSemicolonKeyword_6();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DoStatement_RightParenthesisKeyword_5(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule DoStatement ****************/
+
+
+/************ begin Rule ForStatement ****************
+ *
+ * / * FOR STATEMENTS * / ForStatement:
+ * "for" "(" control=ForControl ")" block=Block;
+ *
+ **/
+
+// "for" "(" control=ForControl ")" block=Block
+protected class ForStatement_Group extends GroupToken {
+
+ public ForStatement_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getForStatementAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForStatement_BlockAssignment_4(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getForStatementRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "for"
+protected class ForStatement_ForKeyword_0 extends KeywordToken {
+
+ public ForStatement_ForKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getForStatementAccess().getForKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// "("
+protected class ForStatement_LeftParenthesisKeyword_1 extends KeywordToken {
+
+ public ForStatement_LeftParenthesisKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getForStatementAccess().getLeftParenthesisKeyword_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForStatement_ForKeyword_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// control=ForControl
+protected class ForStatement_ControlAssignment_2 extends AssignmentToken {
+
+ public ForStatement_ControlAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getForStatementAccess().getControlAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForControl_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("control",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("control");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getForControlRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getForStatementAccess().getControlForControlParserRuleCall_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ForStatement_LeftParenthesisKeyword_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// ")"
+protected class ForStatement_RightParenthesisKeyword_3 extends KeywordToken {
+
+ public ForStatement_RightParenthesisKeyword_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getForStatementAccess().getRightParenthesisKeyword_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForStatement_ControlAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// block=Block
+protected class ForStatement_BlockAssignment_4 extends AssignmentToken {
+
+ public ForStatement_BlockAssignment_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getForStatementAccess().getBlockAssignment_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("block",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("block");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getForStatementAccess().getBlockBlockParserRuleCall_4_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ForStatement_RightParenthesisKeyword_3(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule ForStatement ****************/
+
+
+/************ begin Rule ForControl ****************
+ *
+ * ForControl:
+ * loopVariableDefinition+=LoopVariableDefinition ("," loopVariableDefinition+=LoopVariableDefinition)*;
+ *
+ **/
+
+// loopVariableDefinition+=LoopVariableDefinition ("," loopVariableDefinition+=LoopVariableDefinition)*
+protected class ForControl_Group extends GroupToken {
+
+ public ForControl_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getForControlAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForControl_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ForControl_LoopVariableDefinitionAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getForControlRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// loopVariableDefinition+=LoopVariableDefinition
+protected class ForControl_LoopVariableDefinitionAssignment_0 extends AssignmentToken {
+
+ public ForControl_LoopVariableDefinitionAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getForControlAccess().getLoopVariableDefinitionAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LoopVariableDefinition_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("loopVariableDefinition",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("loopVariableDefinition");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getLoopVariableDefinitionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getForControlAccess().getLoopVariableDefinitionLoopVariableDefinitionParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// ("," loopVariableDefinition+=LoopVariableDefinition)*
+protected class ForControl_Group_1 extends GroupToken {
+
+ public ForControl_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getForControlAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForControl_LoopVariableDefinitionAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// ","
+protected class ForControl_CommaKeyword_1_0 extends KeywordToken {
+
+ public ForControl_CommaKeyword_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getForControlAccess().getCommaKeyword_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForControl_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ForControl_LoopVariableDefinitionAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// loopVariableDefinition+=LoopVariableDefinition
+protected class ForControl_LoopVariableDefinitionAssignment_1_1 extends AssignmentToken {
+
+ public ForControl_LoopVariableDefinitionAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getForControlAccess().getLoopVariableDefinitionAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LoopVariableDefinition_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("loopVariableDefinition",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("loopVariableDefinition");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getLoopVariableDefinitionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getForControlAccess().getLoopVariableDefinitionLoopVariableDefinitionParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ForControl_CommaKeyword_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule ForControl ****************/
+
+
+/************ begin Rule LoopVariableDefinition ****************
+ *
+ * LoopVariableDefinition:
+ * name=ID "in" expression1=Expression (".." expression2=Expression)? | type=QualifiedNameWithBinding name=ID ":"
+ * expression=Expression;
+ *
+ **/
+
+// name=ID "in" expression1=Expression (".." expression2=Expression)? | type=QualifiedNameWithBinding name=ID ":"
+// expression=Expression
+protected class LoopVariableDefinition_Alternatives extends AlternativesToken {
+
+ public LoopVariableDefinition_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getLoopVariableDefinitionAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LoopVariableDefinition_Group_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new LoopVariableDefinition_Group_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getLoopVariableDefinitionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// name=ID "in" expression1=Expression (".." expression2=Expression)?
+protected class LoopVariableDefinition_Group_0 extends GroupToken {
+
+ public LoopVariableDefinition_Group_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getLoopVariableDefinitionAccess().getGroup_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LoopVariableDefinition_Group_0_3(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new LoopVariableDefinition_Expression1Assignment_0_2(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// name=ID
+protected class LoopVariableDefinition_NameAssignment_0_0 extends AssignmentToken {
+
+ public LoopVariableDefinition_NameAssignment_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getLoopVariableDefinitionAccess().getNameAssignment_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getLoopVariableDefinitionAccess().getNameIDTerminalRuleCall_0_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getLoopVariableDefinitionAccess().getNameIDTerminalRuleCall_0_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// "in"
+protected class LoopVariableDefinition_InKeyword_0_1 extends KeywordToken {
+
+ public LoopVariableDefinition_InKeyword_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getLoopVariableDefinitionAccess().getInKeyword_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LoopVariableDefinition_NameAssignment_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// expression1=Expression
+protected class LoopVariableDefinition_Expression1Assignment_0_2 extends AssignmentToken {
+
+ public LoopVariableDefinition_Expression1Assignment_0_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getLoopVariableDefinitionAccess().getExpression1Assignment_0_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_ConditionalTestExpressionParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("expression1",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("expression1");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getLoopVariableDefinitionAccess().getExpression1ExpressionParserRuleCall_0_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new LoopVariableDefinition_InKeyword_0_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (".." expression2=Expression)?
+protected class LoopVariableDefinition_Group_0_3 extends GroupToken {
+
+ public LoopVariableDefinition_Group_0_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getLoopVariableDefinitionAccess().getGroup_0_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LoopVariableDefinition_Expression2Assignment_0_3_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// ".."
+protected class LoopVariableDefinition_FullStopFullStopKeyword_0_3_0 extends KeywordToken {
+
+ public LoopVariableDefinition_FullStopFullStopKeyword_0_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getLoopVariableDefinitionAccess().getFullStopFullStopKeyword_0_3_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LoopVariableDefinition_Expression1Assignment_0_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// expression2=Expression
+protected class LoopVariableDefinition_Expression2Assignment_0_3_1 extends AssignmentToken {
+
+ public LoopVariableDefinition_Expression2Assignment_0_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getLoopVariableDefinitionAccess().getExpression2Assignment_0_3_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_ConditionalTestExpressionParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("expression2",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("expression2");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getLoopVariableDefinitionAccess().getExpression2ExpressionParserRuleCall_0_3_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new LoopVariableDefinition_FullStopFullStopKeyword_0_3_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+// type=QualifiedNameWithBinding name=ID ":" expression=Expression
+protected class LoopVariableDefinition_Group_1 extends GroupToken {
+
+ public LoopVariableDefinition_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getLoopVariableDefinitionAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LoopVariableDefinition_ExpressionAssignment_1_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// type=QualifiedNameWithBinding
+protected class LoopVariableDefinition_TypeAssignment_1_0 extends AssignmentToken {
+
+ public LoopVariableDefinition_TypeAssignment_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getLoopVariableDefinitionAccess().getTypeAssignment_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new QualifiedNameWithBinding_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("type",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("type");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getQualifiedNameWithBindingRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getLoopVariableDefinitionAccess().getTypeQualifiedNameWithBindingParserRuleCall_1_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// name=ID
+protected class LoopVariableDefinition_NameAssignment_1_1 extends AssignmentToken {
+
+ public LoopVariableDefinition_NameAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getLoopVariableDefinitionAccess().getNameAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LoopVariableDefinition_TypeAssignment_1_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getLoopVariableDefinitionAccess().getNameIDTerminalRuleCall_1_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getLoopVariableDefinitionAccess().getNameIDTerminalRuleCall_1_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// ":"
+protected class LoopVariableDefinition_ColonKeyword_1_2 extends KeywordToken {
+
+ public LoopVariableDefinition_ColonKeyword_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getLoopVariableDefinitionAccess().getColonKeyword_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LoopVariableDefinition_NameAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// expression=Expression
+protected class LoopVariableDefinition_ExpressionAssignment_1_3 extends AssignmentToken {
+
+ public LoopVariableDefinition_ExpressionAssignment_1_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getLoopVariableDefinitionAccess().getExpressionAssignment_1_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_ConditionalTestExpressionParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("expression",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("expression");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getLoopVariableDefinitionAccess().getExpressionExpressionParserRuleCall_1_3_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new LoopVariableDefinition_ColonKeyword_1_2(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule LoopVariableDefinition ****************/
+
+
+/************ begin Rule BreakStatement ****************
+ *
+ * / * BREAK STATEMENTS * / BreakStatement:
+ * {BreakStatement} "break" ";";
+ *
+ **/
+
+// {BreakStatement} "break" ";"
+protected class BreakStatement_Group extends GroupToken {
+
+ public BreakStatement_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getBreakStatementAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new BreakStatement_SemicolonKeyword_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getBreakStatementAccess().getBreakStatementAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {BreakStatement}
+protected class BreakStatement_BreakStatementAction_0 extends ActionToken {
+
+ public BreakStatement_BreakStatementAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getBreakStatementAccess().getBreakStatementAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// "break"
+protected class BreakStatement_BreakKeyword_1 extends KeywordToken {
+
+ public BreakStatement_BreakKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getBreakStatementAccess().getBreakKeyword_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new BreakStatement_BreakStatementAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// ";"
+protected class BreakStatement_SemicolonKeyword_2 extends KeywordToken {
+
+ public BreakStatement_SemicolonKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getBreakStatementAccess().getSemicolonKeyword_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new BreakStatement_BreakKeyword_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule BreakStatement ****************/
+
+
+/************ begin Rule ReturnStatement ****************
+ *
+ * / * RETURN STATEMENTS * / ReturnStatement:
+ * "return" expression=Expression ";";
+ *
+ **/
+
+// "return" expression=Expression ";"
+protected class ReturnStatement_Group extends GroupToken {
+
+ public ReturnStatement_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getReturnStatementAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ReturnStatement_SemicolonKeyword_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getReturnStatementRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "return"
+protected class ReturnStatement_ReturnKeyword_0 extends KeywordToken {
+
+ public ReturnStatement_ReturnKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getReturnStatementAccess().getReturnKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// expression=Expression
+protected class ReturnStatement_ExpressionAssignment_1 extends AssignmentToken {
+
+ public ReturnStatement_ExpressionAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getReturnStatementAccess().getExpressionAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_ConditionalTestExpressionParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("expression",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("expression");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getReturnStatementAccess().getExpressionExpressionParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ReturnStatement_ReturnKeyword_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// ";"
+protected class ReturnStatement_SemicolonKeyword_2 extends KeywordToken {
+
+ public ReturnStatement_SemicolonKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getReturnStatementAccess().getSemicolonKeyword_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ReturnStatement_ExpressionAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule ReturnStatement ****************/
+
+
+/************ begin Rule AcceptStatement ****************
+ *
+ * / * ACCEPT STATEMENTS * / AcceptStatement:
+ * clause=AcceptClause (simpleAccept=SimpleAcceptStatementCompletion | compoundAccept=CompoundAcceptStatementCompletion);
+ *
+ **/
+
+// clause=AcceptClause (simpleAccept=SimpleAcceptStatementCompletion | compoundAccept=CompoundAcceptStatementCompletion)
+protected class AcceptStatement_Group extends GroupToken {
+
+ public AcceptStatement_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAcceptStatementAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AcceptStatement_Alternatives_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getAcceptStatementRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// clause=AcceptClause
+protected class AcceptStatement_ClauseAssignment_0 extends AssignmentToken {
+
+ public AcceptStatement_ClauseAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAcceptStatementAccess().getClauseAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AcceptClause_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("clause",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("clause");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getAcceptClauseRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAcceptStatementAccess().getClauseAcceptClauseParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// simpleAccept=SimpleAcceptStatementCompletion | compoundAccept=CompoundAcceptStatementCompletion
+protected class AcceptStatement_Alternatives_1 extends AlternativesToken {
+
+ public AcceptStatement_Alternatives_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getAcceptStatementAccess().getAlternatives_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AcceptStatement_SimpleAcceptAssignment_1_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new AcceptStatement_CompoundAcceptAssignment_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// simpleAccept=SimpleAcceptStatementCompletion
+protected class AcceptStatement_SimpleAcceptAssignment_1_0 extends AssignmentToken {
+
+ public AcceptStatement_SimpleAcceptAssignment_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAcceptStatementAccess().getSimpleAcceptAssignment_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SimpleAcceptStatementCompletion_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("simpleAccept",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("simpleAccept");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSimpleAcceptStatementCompletionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAcceptStatementAccess().getSimpleAcceptSimpleAcceptStatementCompletionParserRuleCall_1_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new AcceptStatement_ClauseAssignment_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// compoundAccept=CompoundAcceptStatementCompletion
+protected class AcceptStatement_CompoundAcceptAssignment_1_1 extends AssignmentToken {
+
+ public AcceptStatement_CompoundAcceptAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAcceptStatementAccess().getCompoundAcceptAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompoundAcceptStatementCompletion_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("compoundAccept",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("compoundAccept");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getCompoundAcceptStatementCompletionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAcceptStatementAccess().getCompoundAcceptCompoundAcceptStatementCompletionParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new AcceptStatement_ClauseAssignment_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule AcceptStatement ****************/
+
+
+/************ begin Rule SimpleAcceptStatementCompletion ****************
+ *
+ * SimpleAcceptStatementCompletion:
+ * {SimpleAcceptStatementCompletion} ";";
+ *
+ **/
+
+// {SimpleAcceptStatementCompletion} ";"
+protected class SimpleAcceptStatementCompletion_Group extends GroupToken {
+
+ public SimpleAcceptStatementCompletion_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getSimpleAcceptStatementCompletionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SimpleAcceptStatementCompletion_SemicolonKeyword_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getSimpleAcceptStatementCompletionAccess().getSimpleAcceptStatementCompletionAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {SimpleAcceptStatementCompletion}
+protected class SimpleAcceptStatementCompletion_SimpleAcceptStatementCompletionAction_0 extends ActionToken {
+
+ public SimpleAcceptStatementCompletion_SimpleAcceptStatementCompletionAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getSimpleAcceptStatementCompletionAccess().getSimpleAcceptStatementCompletionAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// ";"
+protected class SimpleAcceptStatementCompletion_SemicolonKeyword_1 extends KeywordToken {
+
+ public SimpleAcceptStatementCompletion_SemicolonKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSimpleAcceptStatementCompletionAccess().getSemicolonKeyword_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SimpleAcceptStatementCompletion_SimpleAcceptStatementCompletionAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule SimpleAcceptStatementCompletion ****************/
+
+
+/************ begin Rule CompoundAcceptStatementCompletion ****************
+ *
+ * CompoundAcceptStatementCompletion:
+ * block=Block ("or" acceptBlock+=AcceptBlock)*;
+ *
+ **/
+
+// block=Block ("or" acceptBlock+=AcceptBlock)*
+protected class CompoundAcceptStatementCompletion_Group extends GroupToken {
+
+ public CompoundAcceptStatementCompletion_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getCompoundAcceptStatementCompletionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompoundAcceptStatementCompletion_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new CompoundAcceptStatementCompletion_BlockAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getCompoundAcceptStatementCompletionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// block=Block
+protected class CompoundAcceptStatementCompletion_BlockAssignment_0 extends AssignmentToken {
+
+ public CompoundAcceptStatementCompletion_BlockAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCompoundAcceptStatementCompletionAccess().getBlockAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("block",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("block");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getCompoundAcceptStatementCompletionAccess().getBlockBlockParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// ("or" acceptBlock+=AcceptBlock)*
+protected class CompoundAcceptStatementCompletion_Group_1 extends GroupToken {
+
+ public CompoundAcceptStatementCompletion_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getCompoundAcceptStatementCompletionAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompoundAcceptStatementCompletion_AcceptBlockAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "or"
+protected class CompoundAcceptStatementCompletion_OrKeyword_1_0 extends KeywordToken {
+
+ public CompoundAcceptStatementCompletion_OrKeyword_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getCompoundAcceptStatementCompletionAccess().getOrKeyword_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompoundAcceptStatementCompletion_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new CompoundAcceptStatementCompletion_BlockAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// acceptBlock+=AcceptBlock
+protected class CompoundAcceptStatementCompletion_AcceptBlockAssignment_1_1 extends AssignmentToken {
+
+ public CompoundAcceptStatementCompletion_AcceptBlockAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCompoundAcceptStatementCompletionAccess().getAcceptBlockAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AcceptBlock_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("acceptBlock",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("acceptBlock");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getAcceptBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getCompoundAcceptStatementCompletionAccess().getAcceptBlockAcceptBlockParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new CompoundAcceptStatementCompletion_OrKeyword_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule CompoundAcceptStatementCompletion ****************/
+
+
+/************ begin Rule AcceptBlock ****************
+ *
+ * AcceptBlock:
+ * clause=AcceptClause block=Block;
+ *
+ **/
+
+// clause=AcceptClause block=Block
+protected class AcceptBlock_Group extends GroupToken {
+
+ public AcceptBlock_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAcceptBlockAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AcceptBlock_BlockAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getAcceptBlockRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// clause=AcceptClause
+protected class AcceptBlock_ClauseAssignment_0 extends AssignmentToken {
+
+ public AcceptBlock_ClauseAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAcceptBlockAccess().getClauseAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AcceptClause_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("clause",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("clause");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getAcceptClauseRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAcceptBlockAccess().getClauseAcceptClauseParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// block=Block
+protected class AcceptBlock_BlockAssignment_1 extends AssignmentToken {
+
+ public AcceptBlock_BlockAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAcceptBlockAccess().getBlockAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("block",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("block");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAcceptBlockAccess().getBlockBlockParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new AcceptBlock_ClauseAssignment_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule AcceptBlock ****************/
+
+
+/************ begin Rule AcceptClause ****************
+ *
+ * AcceptClause:
+ * "accept" "(" (name=ID ":")? qualifiedNameList=QualifiedNameList ")";
+ *
+ **/
+
+// "accept" "(" (name=ID ":")? qualifiedNameList=QualifiedNameList ")"
+protected class AcceptClause_Group extends GroupToken {
+
+ public AcceptClause_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAcceptClauseAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AcceptClause_RightParenthesisKeyword_4(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getAcceptClauseRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "accept"
+protected class AcceptClause_AcceptKeyword_0 extends KeywordToken {
+
+ public AcceptClause_AcceptKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getAcceptClauseAccess().getAcceptKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// "("
+protected class AcceptClause_LeftParenthesisKeyword_1 extends KeywordToken {
+
+ public AcceptClause_LeftParenthesisKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getAcceptClauseAccess().getLeftParenthesisKeyword_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AcceptClause_AcceptKeyword_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// (name=ID ":")?
+protected class AcceptClause_Group_2 extends GroupToken {
+
+ public AcceptClause_Group_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAcceptClauseAccess().getGroup_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AcceptClause_ColonKeyword_2_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// name=ID
+protected class AcceptClause_NameAssignment_2_0 extends AssignmentToken {
+
+ public AcceptClause_NameAssignment_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAcceptClauseAccess().getNameAssignment_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AcceptClause_LeftParenthesisKeyword_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getAcceptClauseAccess().getNameIDTerminalRuleCall_2_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getAcceptClauseAccess().getNameIDTerminalRuleCall_2_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// ":"
+protected class AcceptClause_ColonKeyword_2_1 extends KeywordToken {
+
+ public AcceptClause_ColonKeyword_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getAcceptClauseAccess().getColonKeyword_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AcceptClause_NameAssignment_2_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+// qualifiedNameList=QualifiedNameList
+protected class AcceptClause_QualifiedNameListAssignment_3 extends AssignmentToken {
+
+ public AcceptClause_QualifiedNameListAssignment_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAcceptClauseAccess().getQualifiedNameListAssignment_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new QualifiedNameList_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("qualifiedNameList",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("qualifiedNameList");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getQualifiedNameListRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAcceptClauseAccess().getQualifiedNameListQualifiedNameListParserRuleCall_3_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new AcceptClause_Group_2(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new AcceptClause_LeftParenthesisKeyword_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// ")"
+protected class AcceptClause_RightParenthesisKeyword_4 extends KeywordToken {
+
+ public AcceptClause_RightParenthesisKeyword_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getAcceptClauseAccess().getRightParenthesisKeyword_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AcceptClause_QualifiedNameListAssignment_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule AcceptClause ****************/
+
+
+/************ begin Rule ClassifyStatement ****************
+ *
+ * / * CLASSIFY STATEMENTS * / ClassifyStatement:
+ * "classify" expression=Expression clause=ClassificationClause ";";
+ *
+ **/
+
+// "classify" expression=Expression clause=ClassificationClause ";"
+protected class ClassifyStatement_Group extends GroupToken {
+
+ public ClassifyStatement_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getClassifyStatementAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassifyStatement_SemicolonKeyword_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getClassifyStatementRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "classify"
+protected class ClassifyStatement_ClassifyKeyword_0 extends KeywordToken {
+
+ public ClassifyStatement_ClassifyKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getClassifyStatementAccess().getClassifyKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// expression=Expression
+protected class ClassifyStatement_ExpressionAssignment_1 extends AssignmentToken {
+
+ public ClassifyStatement_ExpressionAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getClassifyStatementAccess().getExpressionAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_ConditionalTestExpressionParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("expression",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("expression");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getClassifyStatementAccess().getExpressionExpressionParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ClassifyStatement_ClassifyKeyword_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// clause=ClassificationClause
+protected class ClassifyStatement_ClauseAssignment_2 extends AssignmentToken {
+
+ public ClassifyStatement_ClauseAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getClassifyStatementAccess().getClauseAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassificationClause_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("clause",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("clause");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getClassificationClauseRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getClassifyStatementAccess().getClauseClassificationClauseParserRuleCall_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ClassifyStatement_ExpressionAssignment_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// ";"
+protected class ClassifyStatement_SemicolonKeyword_3 extends KeywordToken {
+
+ public ClassifyStatement_SemicolonKeyword_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getClassifyStatementAccess().getSemicolonKeyword_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassifyStatement_ClauseAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule ClassifyStatement ****************/
+
+
+/************ begin Rule ClassificationClause ****************
+ *
+ * ClassificationClause:
+ * classifyFromClause=ClassificationFromClause classifyToClause=ClassificationToClause? |
+ * reclassyAllClause=ReclassifyAllClause? classifyToClause=ClassificationToClause;
+ *
+ **/
+
+// classifyFromClause=ClassificationFromClause classifyToClause=ClassificationToClause? |
+// reclassyAllClause=ReclassifyAllClause? classifyToClause=ClassificationToClause
+protected class ClassificationClause_Alternatives extends AlternativesToken {
+
+ public ClassificationClause_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getClassificationClauseAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassificationClause_Group_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ClassificationClause_Group_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getClassificationClauseRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// classifyFromClause=ClassificationFromClause classifyToClause=ClassificationToClause?
+protected class ClassificationClause_Group_0 extends GroupToken {
+
+ public ClassificationClause_Group_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getClassificationClauseAccess().getGroup_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassificationClause_ClassifyToClauseAssignment_0_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ClassificationClause_ClassifyFromClauseAssignment_0_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// classifyFromClause=ClassificationFromClause
+protected class ClassificationClause_ClassifyFromClauseAssignment_0_0 extends AssignmentToken {
+
+ public ClassificationClause_ClassifyFromClauseAssignment_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getClassificationClauseAccess().getClassifyFromClauseAssignment_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassificationFromClause_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("classifyFromClause",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("classifyFromClause");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getClassificationFromClauseRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getClassificationClauseAccess().getClassifyFromClauseClassificationFromClauseParserRuleCall_0_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// classifyToClause=ClassificationToClause?
+protected class ClassificationClause_ClassifyToClauseAssignment_0_1 extends AssignmentToken {
+
+ public ClassificationClause_ClassifyToClauseAssignment_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getClassificationClauseAccess().getClassifyToClauseAssignment_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassificationToClause_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("classifyToClause",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("classifyToClause");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getClassificationToClauseRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getClassificationClauseAccess().getClassifyToClauseClassificationToClauseParserRuleCall_0_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ClassificationClause_ClassifyFromClauseAssignment_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// reclassyAllClause=ReclassifyAllClause? classifyToClause=ClassificationToClause
+protected class ClassificationClause_Group_1 extends GroupToken {
+
+ public ClassificationClause_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getClassificationClauseAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassificationClause_ClassifyToClauseAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// reclassyAllClause=ReclassifyAllClause?
+protected class ClassificationClause_ReclassyAllClauseAssignment_1_0 extends AssignmentToken {
+
+ public ClassificationClause_ReclassyAllClauseAssignment_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getClassificationClauseAccess().getReclassyAllClauseAssignment_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ReclassifyAllClause_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("reclassyAllClause",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("reclassyAllClause");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getReclassifyAllClauseRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getClassificationClauseAccess().getReclassyAllClauseReclassifyAllClauseParserRuleCall_1_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// classifyToClause=ClassificationToClause
+protected class ClassificationClause_ClassifyToClauseAssignment_1_1 extends AssignmentToken {
+
+ public ClassificationClause_ClassifyToClauseAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getClassificationClauseAccess().getClassifyToClauseAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassificationToClause_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("classifyToClause",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("classifyToClause");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getClassificationToClauseRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getClassificationClauseAccess().getClassifyToClauseClassificationToClauseParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ClassificationClause_ReclassyAllClauseAssignment_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index - 1, consumed);
+ }
+ }
+}
+
+
+
+/************ end Rule ClassificationClause ****************/
+
+
+/************ begin Rule ClassificationFromClause ****************
+ *
+ * ClassificationFromClause:
+ * "from" qualifiedNameList=QualifiedNameList;
+ *
+ **/
+
+// "from" qualifiedNameList=QualifiedNameList
+protected class ClassificationFromClause_Group extends GroupToken {
+
+ public ClassificationFromClause_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getClassificationFromClauseAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassificationFromClause_QualifiedNameListAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getClassificationFromClauseRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "from"
+protected class ClassificationFromClause_FromKeyword_0 extends KeywordToken {
+
+ public ClassificationFromClause_FromKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getClassificationFromClauseAccess().getFromKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// qualifiedNameList=QualifiedNameList
+protected class ClassificationFromClause_QualifiedNameListAssignment_1 extends AssignmentToken {
+
+ public ClassificationFromClause_QualifiedNameListAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getClassificationFromClauseAccess().getQualifiedNameListAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new QualifiedNameList_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("qualifiedNameList",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("qualifiedNameList");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getQualifiedNameListRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getClassificationFromClauseAccess().getQualifiedNameListQualifiedNameListParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ClassificationFromClause_FromKeyword_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule ClassificationFromClause ****************/
+
+
+/************ begin Rule ClassificationToClause ****************
+ *
+ * ClassificationToClause:
+ * "to" qualifiedNameList=QualifiedNameList;
+ *
+ **/
+
+// "to" qualifiedNameList=QualifiedNameList
+protected class ClassificationToClause_Group extends GroupToken {
+
+ public ClassificationToClause_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getClassificationToClauseAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassificationToClause_QualifiedNameListAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getClassificationToClauseRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "to"
+protected class ClassificationToClause_ToKeyword_0 extends KeywordToken {
+
+ public ClassificationToClause_ToKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getClassificationToClauseAccess().getToKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// qualifiedNameList=QualifiedNameList
+protected class ClassificationToClause_QualifiedNameListAssignment_1 extends AssignmentToken {
+
+ public ClassificationToClause_QualifiedNameListAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getClassificationToClauseAccess().getQualifiedNameListAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new QualifiedNameList_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("qualifiedNameList",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("qualifiedNameList");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getQualifiedNameListRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getClassificationToClauseAccess().getQualifiedNameListQualifiedNameListParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ClassificationToClause_ToKeyword_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule ClassificationToClause ****************/
+
+
+/************ begin Rule ReclassifyAllClause ****************
+ *
+ * ReclassifyAllClause:
+ * {ReclassifyAllClause} "from" "*";
+ *
+ **/
+
+// {ReclassifyAllClause} "from" "*"
+protected class ReclassifyAllClause_Group extends GroupToken {
+
+ public ReclassifyAllClause_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getReclassifyAllClauseAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ReclassifyAllClause_AsteriskKeyword_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getReclassifyAllClauseAccess().getReclassifyAllClauseAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {ReclassifyAllClause}
+protected class ReclassifyAllClause_ReclassifyAllClauseAction_0 extends ActionToken {
+
+ public ReclassifyAllClause_ReclassifyAllClauseAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getReclassifyAllClauseAccess().getReclassifyAllClauseAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// "from"
+protected class ReclassifyAllClause_FromKeyword_1 extends KeywordToken {
+
+ public ReclassifyAllClause_FromKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getReclassifyAllClauseAccess().getFromKeyword_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ReclassifyAllClause_ReclassifyAllClauseAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "*"
+protected class ReclassifyAllClause_AsteriskKeyword_2 extends KeywordToken {
+
+ public ReclassifyAllClause_AsteriskKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getReclassifyAllClauseAccess().getAsteriskKeyword_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ReclassifyAllClause_FromKeyword_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule ReclassifyAllClause ****************/
+
+
+/************ begin Rule QualifiedNameList ****************
+ *
+ * QualifiedNameList:
+ * qualifiedName+=QualifiedNameWithBinding ("," qualifiedName+=QualifiedNameWithBinding)*;
+ *
+ **/
+
+// qualifiedName+=QualifiedNameWithBinding ("," qualifiedName+=QualifiedNameWithBinding)*
+protected class QualifiedNameList_Group extends GroupToken {
+
+ public QualifiedNameList_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getQualifiedNameListAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new QualifiedNameList_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new QualifiedNameList_QualifiedNameAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getQualifiedNameListRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// qualifiedName+=QualifiedNameWithBinding
+protected class QualifiedNameList_QualifiedNameAssignment_0 extends AssignmentToken {
+
+ public QualifiedNameList_QualifiedNameAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getQualifiedNameListAccess().getQualifiedNameAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new QualifiedNameWithBinding_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("qualifiedName",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("qualifiedName");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getQualifiedNameWithBindingRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getQualifiedNameListAccess().getQualifiedNameQualifiedNameWithBindingParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// ("," qualifiedName+=QualifiedNameWithBinding)*
+protected class QualifiedNameList_Group_1 extends GroupToken {
+
+ public QualifiedNameList_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getQualifiedNameListAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new QualifiedNameList_QualifiedNameAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// ","
+protected class QualifiedNameList_CommaKeyword_1_0 extends KeywordToken {
+
+ public QualifiedNameList_CommaKeyword_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getQualifiedNameListAccess().getCommaKeyword_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new QualifiedNameList_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new QualifiedNameList_QualifiedNameAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// qualifiedName+=QualifiedNameWithBinding
+protected class QualifiedNameList_QualifiedNameAssignment_1_1 extends AssignmentToken {
+
+ public QualifiedNameList_QualifiedNameAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getQualifiedNameListAccess().getQualifiedNameAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new QualifiedNameWithBinding_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("qualifiedName",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("qualifiedName");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getQualifiedNameWithBindingRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getQualifiedNameListAccess().getQualifiedNameQualifiedNameWithBindingParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new QualifiedNameList_CommaKeyword_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule QualifiedNameList ****************/
+
+
+/************ begin Rule InvocationOrAssignementOrDeclarationStatement ****************
+ *
+ * InvocationOrAssignementOrDeclarationStatement:
+ * typePart_OR_assignedPart_OR_invocationPart=NameExpression (variableDeclarationCompletion=VariableDeclarationCompletion //(suffixCompletion = SuffixCompletion)?
+ * | assignmentCompletion=AssignmentCompletion)? ";";
+ *
+ **/
+
+// typePart_OR_assignedPart_OR_invocationPart=NameExpression (variableDeclarationCompletion=VariableDeclarationCompletion //(suffixCompletion = SuffixCompletion)?
+// | assignmentCompletion=AssignmentCompletion)? ";"
+protected class InvocationOrAssignementOrDeclarationStatement_Group extends GroupToken {
+
+ public InvocationOrAssignementOrDeclarationStatement_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getInvocationOrAssignementOrDeclarationStatementAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InvocationOrAssignementOrDeclarationStatement_SemicolonKeyword_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getInvocationOrAssignementOrDeclarationStatementRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// typePart_OR_assignedPart_OR_invocationPart=NameExpression
+protected class InvocationOrAssignementOrDeclarationStatement_TypePart_OR_assignedPart_OR_invocationPartAssignment_0 extends AssignmentToken {
+
+ public InvocationOrAssignementOrDeclarationStatement_TypePart_OR_assignedPart_OR_invocationPartAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getInvocationOrAssignementOrDeclarationStatementAccess().getTypePart_OR_assignedPart_OR_invocationPartAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NameExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("typePart_OR_assignedPart_OR_invocationPart",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("typePart_OR_assignedPart_OR_invocationPart");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getNameExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getInvocationOrAssignementOrDeclarationStatementAccess().getTypePart_OR_assignedPart_OR_invocationPartNameExpressionParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// (variableDeclarationCompletion=VariableDeclarationCompletion //(suffixCompletion = SuffixCompletion)?
+// | assignmentCompletion=AssignmentCompletion)?
+protected class InvocationOrAssignementOrDeclarationStatement_Alternatives_1 extends AlternativesToken {
+
+ public InvocationOrAssignementOrDeclarationStatement_Alternatives_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getInvocationOrAssignementOrDeclarationStatementAccess().getAlternatives_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InvocationOrAssignementOrDeclarationStatement_VariableDeclarationCompletionAssignment_1_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new InvocationOrAssignementOrDeclarationStatement_AssignmentCompletionAssignment_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// variableDeclarationCompletion=VariableDeclarationCompletion
+protected class InvocationOrAssignementOrDeclarationStatement_VariableDeclarationCompletionAssignment_1_0 extends AssignmentToken {
+
+ public InvocationOrAssignementOrDeclarationStatement_VariableDeclarationCompletionAssignment_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getInvocationOrAssignementOrDeclarationStatementAccess().getVariableDeclarationCompletionAssignment_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new VariableDeclarationCompletion_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("variableDeclarationCompletion",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("variableDeclarationCompletion");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getVariableDeclarationCompletionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getInvocationOrAssignementOrDeclarationStatementAccess().getVariableDeclarationCompletionVariableDeclarationCompletionParserRuleCall_1_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new InvocationOrAssignementOrDeclarationStatement_TypePart_OR_assignedPart_OR_invocationPartAssignment_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// assignmentCompletion=AssignmentCompletion
+protected class InvocationOrAssignementOrDeclarationStatement_AssignmentCompletionAssignment_1_1 extends AssignmentToken {
+
+ public InvocationOrAssignementOrDeclarationStatement_AssignmentCompletionAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getInvocationOrAssignementOrDeclarationStatementAccess().getAssignmentCompletionAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignmentCompletion_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("assignmentCompletion",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("assignmentCompletion");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getAssignmentCompletionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getInvocationOrAssignementOrDeclarationStatementAccess().getAssignmentCompletionAssignmentCompletionParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new InvocationOrAssignementOrDeclarationStatement_TypePart_OR_assignedPart_OR_invocationPartAssignment_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// ";"
+protected class InvocationOrAssignementOrDeclarationStatement_SemicolonKeyword_2 extends KeywordToken {
+
+ public InvocationOrAssignementOrDeclarationStatement_SemicolonKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getInvocationOrAssignementOrDeclarationStatementAccess().getSemicolonKeyword_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InvocationOrAssignementOrDeclarationStatement_Alternatives_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new InvocationOrAssignementOrDeclarationStatement_TypePart_OR_assignedPart_OR_invocationPartAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule InvocationOrAssignementOrDeclarationStatement ****************/
+
+
+/************ begin Rule SuperInvocationStatement ****************
+ *
+ * SuperInvocationStatement:
+ * _super=SuperInvocationExpression //(suffix = SuffixCompletion)? ';'
+ * ";";
+ *
+ **/
+
+// _super=SuperInvocationExpression //(suffix = SuffixCompletion)? ';'
+// ";"
+protected class SuperInvocationStatement_Group extends GroupToken {
+
+ public SuperInvocationStatement_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getSuperInvocationStatementAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuperInvocationStatement_SemicolonKeyword_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getSuperInvocationStatementRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// _super=SuperInvocationExpression
+protected class SuperInvocationStatement__superAssignment_0 extends AssignmentToken {
+
+ public SuperInvocationStatement__superAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSuperInvocationStatementAccess().get_superAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuperInvocationExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("_super",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("_super");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSuperInvocationExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSuperInvocationStatementAccess().get_superSuperInvocationExpressionParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// //(suffix = SuffixCompletion)? ';'
+// ";"
+protected class SuperInvocationStatement_SemicolonKeyword_1 extends KeywordToken {
+
+ public SuperInvocationStatement_SemicolonKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSuperInvocationStatementAccess().getSemicolonKeyword_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuperInvocationStatement__superAssignment_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule SuperInvocationStatement ****************/
+
+
+/************ begin Rule ThisInvocationStatement ****************
+ *
+ * ThisInvocationStatement: //_this = ThisExpression suffix = SuffixCompletion (assignmentCompletion = AssignmentCompletion)? ';'
+ * _this=ThisExpression assignmentCompletion=AssignmentCompletion? ";";
+ *
+ **/
+
+// //_this = ThisExpression suffix = SuffixCompletion (assignmentCompletion = AssignmentCompletion)? ';'
+// _this=ThisExpression assignmentCompletion=AssignmentCompletion? ";"
+protected class ThisInvocationStatement_Group extends GroupToken {
+
+ public ThisInvocationStatement_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getThisInvocationStatementAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ThisInvocationStatement_SemicolonKeyword_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getThisInvocationStatementRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// //_this = ThisExpression suffix = SuffixCompletion (assignmentCompletion = AssignmentCompletion)? ';'
+// _this=ThisExpression
+protected class ThisInvocationStatement__thisAssignment_0 extends AssignmentToken {
+
+ public ThisInvocationStatement__thisAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getThisInvocationStatementAccess().get_thisAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ThisExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("_this",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("_this");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getThisExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getThisInvocationStatementAccess().get_thisThisExpressionParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// assignmentCompletion=AssignmentCompletion?
+protected class ThisInvocationStatement_AssignmentCompletionAssignment_1 extends AssignmentToken {
+
+ public ThisInvocationStatement_AssignmentCompletionAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getThisInvocationStatementAccess().getAssignmentCompletionAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignmentCompletion_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("assignmentCompletion",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("assignmentCompletion");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getAssignmentCompletionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getThisInvocationStatementAccess().getAssignmentCompletionAssignmentCompletionParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ThisInvocationStatement__thisAssignment_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// ";"
+protected class ThisInvocationStatement_SemicolonKeyword_2 extends KeywordToken {
+
+ public ThisInvocationStatement_SemicolonKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getThisInvocationStatementAccess().getSemicolonKeyword_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ThisInvocationStatement_AssignmentCompletionAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ThisInvocationStatement__thisAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule ThisInvocationStatement ****************/
+
+
+/************ begin Rule InstanceCreationInvocationStatement ****************
+ *
+ * InstanceCreationInvocationStatement:
+ * _new=InstanceCreationExpression //(suffix = SuffixCompletion)? ';'
+ * ";";
+ *
+ **/
+
+// _new=InstanceCreationExpression //(suffix = SuffixCompletion)? ';'
+// ";"
+protected class InstanceCreationInvocationStatement_Group extends GroupToken {
+
+ public InstanceCreationInvocationStatement_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getInstanceCreationInvocationStatementAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InstanceCreationInvocationStatement_SemicolonKeyword_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getInstanceCreationInvocationStatementRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// _new=InstanceCreationExpression
+protected class InstanceCreationInvocationStatement__newAssignment_0 extends AssignmentToken {
+
+ public InstanceCreationInvocationStatement__newAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getInstanceCreationInvocationStatementAccess().get_newAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InstanceCreationExpression_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("_new",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("_new");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getInstanceCreationExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getInstanceCreationInvocationStatementAccess().get_newInstanceCreationExpressionParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// //(suffix = SuffixCompletion)? ';'
+// ";"
+protected class InstanceCreationInvocationStatement_SemicolonKeyword_1 extends KeywordToken {
+
+ public InstanceCreationInvocationStatement_SemicolonKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getInstanceCreationInvocationStatementAccess().getSemicolonKeyword_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new InstanceCreationInvocationStatement__newAssignment_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule InstanceCreationInvocationStatement ****************/
+
+
+/************ begin Rule VariableDeclarationCompletion ****************
+ *
+ * //SuffixCompletion :
+ * // suffix = SuffixExpression
+ * //;
+ * VariableDeclarationCompletion:
+ * (multiplicityIndicator?="[" "]")? variableName=ID initValue=AssignmentCompletion;
+ *
+ **/
+
+// (multiplicityIndicator?="[" "]")? variableName=ID initValue=AssignmentCompletion
+protected class VariableDeclarationCompletion_Group extends GroupToken {
+
+ public VariableDeclarationCompletion_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getVariableDeclarationCompletionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new VariableDeclarationCompletion_InitValueAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getVariableDeclarationCompletionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// (multiplicityIndicator?="[" "]")?
+protected class VariableDeclarationCompletion_Group_0 extends GroupToken {
+
+ public VariableDeclarationCompletion_Group_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getVariableDeclarationCompletionAccess().getGroup_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new VariableDeclarationCompletion_RightSquareBracketKeyword_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// multiplicityIndicator?="["
+protected class VariableDeclarationCompletion_MultiplicityIndicatorAssignment_0_0 extends AssignmentToken {
+
+ public VariableDeclarationCompletion_MultiplicityIndicatorAssignment_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getVariableDeclarationCompletionAccess().getMultiplicityIndicatorAssignment_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("multiplicityIndicator",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("multiplicityIndicator");
+ if(Boolean.TRUE.equals(value)) { // org::eclipse::xtext::impl::KeywordImpl
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getVariableDeclarationCompletionAccess().getMultiplicityIndicatorLeftSquareBracketKeyword_0_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// "]"
+protected class VariableDeclarationCompletion_RightSquareBracketKeyword_0_1 extends KeywordToken {
+
+ public VariableDeclarationCompletion_RightSquareBracketKeyword_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getVariableDeclarationCompletionAccess().getRightSquareBracketKeyword_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new VariableDeclarationCompletion_MultiplicityIndicatorAssignment_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+// variableName=ID
+protected class VariableDeclarationCompletion_VariableNameAssignment_1 extends AssignmentToken {
+
+ public VariableDeclarationCompletion_VariableNameAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getVariableDeclarationCompletionAccess().getVariableNameAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new VariableDeclarationCompletion_Group_0(lastRuleCallOrigin, this, 0, inst);
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index - 1, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("variableName",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("variableName");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getVariableDeclarationCompletionAccess().getVariableNameIDTerminalRuleCall_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getVariableDeclarationCompletionAccess().getVariableNameIDTerminalRuleCall_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// initValue=AssignmentCompletion
+protected class VariableDeclarationCompletion_InitValueAssignment_2 extends AssignmentToken {
+
+ public VariableDeclarationCompletion_InitValueAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getVariableDeclarationCompletionAccess().getInitValueAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignmentCompletion_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("initValue",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("initValue");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getAssignmentCompletionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getVariableDeclarationCompletionAccess().getInitValueAssignmentCompletionParserRuleCall_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new VariableDeclarationCompletion_VariableNameAssignment_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule VariableDeclarationCompletion ****************/
+
+
+/************ begin Rule AssignmentCompletion ****************
+ *
+ * //op=('=' | '+=' | '-=' | '*=' | '%=' | '/=' | '&=' |
+ * // '|=' | '^=' | '<<=' | '>>=' | '>>>=') rightHandSide = Expression
+ * AssignmentCompletion:
+ * op=AssignmentOperator rightHandSide=SequenceElement;
+ *
+ **/
+
+// op=AssignmentOperator rightHandSide=SequenceElement
+protected class AssignmentCompletion_Group extends GroupToken {
+
+ public AssignmentCompletion_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAssignmentCompletionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignmentCompletion_RightHandSideAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getAssignmentCompletionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// op=AssignmentOperator
+protected class AssignmentCompletion_OpAssignment_0 extends AssignmentToken {
+
+ public AssignmentCompletion_OpAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAssignmentCompletionAccess().getOpAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("op",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("op");
+ if(enumLitSerializer.isValid(obj.getEObject(), grammarAccess.getAssignmentCompletionAccess().getOpAssignmentOperatorEnumRuleCall_0_0(), value, null)) {
+ type = AssignmentType.ENUM_RULE_CALL;
+ element = grammarAccess.getAssignmentCompletionAccess().getOpAssignmentOperatorEnumRuleCall_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// rightHandSide=SequenceElement
+protected class AssignmentCompletion_RightHandSideAssignment_1 extends AssignmentToken {
+
+ public AssignmentCompletion_RightHandSideAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAssignmentCompletionAccess().getRightHandSideAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SequenceElement_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("rightHandSide",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("rightHandSide");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSequenceElementRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAssignmentCompletionAccess().getRightHandSideSequenceElementParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new AssignmentCompletion_OpAssignment_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule AssignmentCompletion ****************/
+
+}
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/parser/antlr/AlfAntlrTokenFileProvider.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/parser/antlr/AlfAntlrTokenFileProvider.java
new file mode 100644
index 00000000000..3d5df68a950
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/parser/antlr/AlfAntlrTokenFileProvider.java
@@ -0,0 +1,15 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.papyrus.alf.parser.antlr;
+
+import java.io.InputStream;
+import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider;
+
+public class AlfAntlrTokenFileProvider implements IAntlrTokenFileProvider {
+
+ public InputStream getAntlrTokenFile() {
+ ClassLoader classLoader = getClass().getClassLoader();
+ return classLoader.getResourceAsStream("org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.tokens");
+ }
+}
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/parser/antlr/AlfParser.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/parser/antlr/AlfParser.java
new file mode 100644
index 00000000000..c7813c84e9d
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/parser/antlr/AlfParser.java
@@ -0,0 +1,39 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.papyrus.alf.parser.antlr;
+
+import com.google.inject.Inject;
+
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.papyrus.alf.services.AlfGrammarAccess;
+
+public class AlfParser extends org.eclipse.xtext.parser.antlr.AbstractAntlrParser {
+
+ @Inject
+ private AlfGrammarAccess grammarAccess;
+
+ @Override
+ protected void setInitialHiddenTokens(XtextTokenStream tokenStream) {
+ tokenStream.setInitialHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT");
+ }
+
+ @Override
+ protected org.eclipse.papyrus.alf.parser.antlr.internal.InternalAlfParser createParser(XtextTokenStream stream) {
+ return new org.eclipse.papyrus.alf.parser.antlr.internal.InternalAlfParser(stream, getGrammarAccess());
+ }
+
+ @Override
+ protected String getDefaultRuleName() {
+ return "Test";
+ }
+
+ public AlfGrammarAccess getGrammarAccess() {
+ return this.grammarAccess;
+ }
+
+ public void setGrammarAccess(AlfGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+
+}
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g
new file mode 100644
index 00000000000..726cbd73417
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g
@@ -0,0 +1,7364 @@
+/*
+* generated by Xtext
+*/
+grammar InternalAlf;
+
+options {
+ superClass=AbstractInternalAntlrParser;
+
+}
+
+@lexer::header {
+package org.eclipse.papyrus.alf.parser.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import.
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.parser.antlr.Lexer;
+}
+
+@parser::header {
+package org.eclipse.papyrus.alf.parser.antlr.internal;
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.common.util.Enumerator;
+import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
+import org.eclipse.papyrus.alf.services.AlfGrammarAccess;
+
+}
+
+@parser::members {
+
+ private AlfGrammarAccess grammarAccess;
+
+ public InternalAlfParser(TokenStream input, AlfGrammarAccess grammarAccess) {
+ this(input);
+ this.grammarAccess = grammarAccess;
+ registerRules(grammarAccess.getGrammar());
+ }
+
+ @Override
+ protected String getFirstRuleName() {
+ return "Test";
+ }
+
+ @Override
+ protected AlfGrammarAccess getGrammarAccess() {
+ return grammarAccess;
+ }
+}
+
+@rulecatch {
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+}
+
+
+
+
+// Entry rule entryRuleTest
+entryRuleTest returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getTestRule()); }
+ iv_ruleTest=ruleTest
+ { $current=$iv_ruleTest.current; }
+ EOF
+;
+
+// Rule Test
+ruleTest returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(( otherlv_0='testExpression'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getTestAccess().getTestExpressionKeyword_0_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getTestAccess().getExpressionExpressionParserRuleCall_0_1_0());
+ }
+ lv_expression_1_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTestRule());
+ }
+ add(
+ $current,
+ "expression",
+ lv_expression_1_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*( otherlv_2='testAssignmentExpression'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getTestAccess().getTestAssignmentExpressionKeyword_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getTestAccess().getAssignExpressionAssignmentCompletionParserRuleCall_1_1_0());
+ }
+ lv_assignExpression_3_0=ruleAssignmentCompletion {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTestRule());
+ }
+ add(
+ $current,
+ "assignExpression",
+ lv_assignExpression_3_0,
+ "AssignmentCompletion");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*( otherlv_4='testStatement'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getTestAccess().getTestStatementKeyword_2_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getTestAccess().getStatementsStatementParserRuleCall_2_1_0());
+ }
+ lv_statements_5_0=ruleStatement {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTestRule());
+ }
+ add(
+ $current,
+ "statements",
+ lv_statements_5_0,
+ "Statement");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*( otherlv_6='testBlock'
+ {
+ newLeafNode(otherlv_6, grammarAccess.getTestAccess().getTestBlockKeyword_3_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getTestAccess().getBlockBlockParserRuleCall_3_1_0());
+ }
+ lv_block_7_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTestRule());
+ }
+ set(
+ $current,
+ "block",
+ lv_block_7_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)))
+;
+
+
+
+
+
+// Entry rule entryRuleLITERAL
+entryRuleLITERAL returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getLITERALRule()); }
+ iv_ruleLITERAL=ruleLITERAL
+ { $current=$iv_ruleLITERAL.current; }
+ EOF
+;
+
+// Rule LITERAL
+ruleLITERAL returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getLITERALAccess().getBOOLEAN_LITERALParserRuleCall_0());
+ }
+ this_BOOLEAN_LITERAL_0=ruleBOOLEAN_LITERAL
+ {
+ $current = $this_BOOLEAN_LITERAL_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getLITERALAccess().getNUMBER_LITERALParserRuleCall_1());
+ }
+ this_NUMBER_LITERAL_1=ruleNUMBER_LITERAL
+ {
+ $current = $this_NUMBER_LITERAL_1.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getLITERALAccess().getSTRING_LITERALParserRuleCall_2());
+ }
+ this_STRING_LITERAL_2=ruleSTRING_LITERAL
+ {
+ $current = $this_STRING_LITERAL_2.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleBOOLEAN_LITERAL
+entryRuleBOOLEAN_LITERAL returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getBOOLEAN_LITERALRule()); }
+ iv_ruleBOOLEAN_LITERAL=ruleBOOLEAN_LITERAL
+ { $current=$iv_ruleBOOLEAN_LITERAL.current; }
+ EOF
+;
+
+// Rule BOOLEAN_LITERAL
+ruleBOOLEAN_LITERAL returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+(
+ {
+ newCompositeNode(grammarAccess.getBOOLEAN_LITERALAccess().getValueBooleanValueEnumRuleCall_0());
+ }
+ lv_value_0_0=ruleBooleanValue {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getBOOLEAN_LITERALRule());
+ }
+ set(
+ $current,
+ "value",
+ lv_value_0_0,
+ "BooleanValue");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+;
+
+
+
+
+
+// Entry rule entryRuleNUMBER_LITERAL
+entryRuleNUMBER_LITERAL returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getNUMBER_LITERALRule()); }
+ iv_ruleNUMBER_LITERAL=ruleNUMBER_LITERAL
+ { $current=$iv_ruleNUMBER_LITERAL.current; }
+ EOF
+;
+
+// Rule NUMBER_LITERAL
+ruleNUMBER_LITERAL returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getNUMBER_LITERALAccess().getINTEGER_LITERALParserRuleCall_0());
+ }
+ this_INTEGER_LITERAL_0=ruleINTEGER_LITERAL
+ {
+ $current = $this_INTEGER_LITERAL_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getNUMBER_LITERALAccess().getUNLIMITED_LITERALParserRuleCall_1());
+ }
+ this_UNLIMITED_LITERAL_1=ruleUNLIMITED_LITERAL
+ {
+ $current = $this_UNLIMITED_LITERAL_1.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleINTEGER_LITERAL
+entryRuleINTEGER_LITERAL returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getINTEGER_LITERALRule()); }
+ iv_ruleINTEGER_LITERAL=ruleINTEGER_LITERAL
+ { $current=$iv_ruleINTEGER_LITERAL.current; }
+ EOF
+;
+
+// Rule INTEGER_LITERAL
+ruleINTEGER_LITERAL returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+(
+ lv_value_0_0=RULE_INTEGERVALUE
+ {
+ newLeafNode(lv_value_0_0, grammarAccess.getINTEGER_LITERALAccess().getValueIntegerValueTerminalRuleCall_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getINTEGER_LITERALRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "value",
+ lv_value_0_0,
+ "IntegerValue");
+ }
+
+)
+)
+;
+
+
+
+
+
+// Entry rule entryRuleUNLIMITED_LITERAL
+entryRuleUNLIMITED_LITERAL returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getUNLIMITED_LITERALRule()); }
+ iv_ruleUNLIMITED_LITERAL=ruleUNLIMITED_LITERAL
+ { $current=$iv_ruleUNLIMITED_LITERAL.current; }
+ EOF
+;
+
+// Rule UNLIMITED_LITERAL
+ruleUNLIMITED_LITERAL returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+(
+ lv_value_0_0= '*'
+ {
+ newLeafNode(lv_value_0_0, grammarAccess.getUNLIMITED_LITERALAccess().getValueAsteriskKeyword_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getUNLIMITED_LITERALRule());
+ }
+ setWithLastConsumed($current, "value", lv_value_0_0, "*");
+ }
+
+)
+)
+;
+
+
+
+
+
+// Entry rule entryRuleSTRING_LITERAL
+entryRuleSTRING_LITERAL returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getSTRING_LITERALRule()); }
+ iv_ruleSTRING_LITERAL=ruleSTRING_LITERAL
+ { $current=$iv_ruleSTRING_LITERAL.current; }
+ EOF
+;
+
+// Rule STRING_LITERAL
+ruleSTRING_LITERAL returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+(
+ lv_value_0_0=RULE_STRING
+ {
+ newLeafNode(lv_value_0_0, grammarAccess.getSTRING_LITERALAccess().getValueSTRINGTerminalRuleCall_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getSTRING_LITERALRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "value",
+ lv_value_0_0,
+ "STRING");
+ }
+
+)
+)
+;
+
+
+
+
+
+// Entry rule entryRuleNameExpression
+entryRuleNameExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getNameExpressionRule()); }
+ iv_ruleNameExpression=ruleNameExpression
+ { $current=$iv_ruleNameExpression.current; }
+ EOF
+;
+
+// Rule NameExpression
+ruleNameExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((((
+(
+(
+ lv_prefixOp_0_1= '++'
+ {
+ newLeafNode(lv_prefixOp_0_1, grammarAccess.getNameExpressionAccess().getPrefixOpPlusSignPlusSignKeyword_0_0_0_0_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getNameExpressionRule());
+ }
+ setWithLastConsumed($current, "prefixOp", lv_prefixOp_0_1, null);
+ }
+
+ | lv_prefixOp_0_2= '--'
+ {
+ newLeafNode(lv_prefixOp_0_2, grammarAccess.getNameExpressionAccess().getPrefixOpHyphenMinusHyphenMinusKeyword_0_0_0_0_1());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getNameExpressionRule());
+ }
+ setWithLastConsumed($current, "prefixOp", lv_prefixOp_0_2, null);
+ }
+
+)
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getNameExpressionAccess().getPathQualifiedNamePathParserRuleCall_0_0_1_0());
+ }
+ lv_path_1_0=ruleQualifiedNamePath {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getNameExpressionRule());
+ }
+ set(
+ $current,
+ "path",
+ lv_path_1_0,
+ "QualifiedNamePath");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?(
+(
+ lv_id_2_0=RULE_ID
+ {
+ newLeafNode(lv_id_2_0, grammarAccess.getNameExpressionAccess().getIdIDTerminalRuleCall_0_0_2_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getNameExpressionRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "id",
+ lv_id_2_0,
+ "ID");
+ }
+
+)
+))
+ |((
+(
+ {
+ newCompositeNode(grammarAccess.getNameExpressionAccess().getPathQualifiedNamePathParserRuleCall_0_1_0_0());
+ }
+ lv_path_3_0=ruleQualifiedNamePath {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getNameExpressionRule());
+ }
+ set(
+ $current,
+ "path",
+ lv_path_3_0,
+ "QualifiedNamePath");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?(
+(
+ lv_id_4_0=RULE_ID
+ {
+ newLeafNode(lv_id_4_0, grammarAccess.getNameExpressionAccess().getIdIDTerminalRuleCall_0_1_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getNameExpressionRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "id",
+ lv_id_4_0,
+ "ID");
+ }
+
+)
+)((
+(
+ {
+ newCompositeNode(grammarAccess.getNameExpressionAccess().getInvocationCompletionTupleParserRuleCall_0_1_2_0_0());
+ }
+ lv_invocationCompletion_5_0=ruleTuple {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getNameExpressionRule());
+ }
+ set(
+ $current,
+ "invocationCompletion",
+ lv_invocationCompletion_5_0,
+ "Tuple");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+ |(
+(
+ {
+ newCompositeNode(grammarAccess.getNameExpressionAccess().getSequenceConstructionCompletionSequenceConstructionOrAccessCompletionParserRuleCall_0_1_2_1_0());
+ }
+ lv_sequenceConstructionCompletion_6_0=ruleSequenceConstructionOrAccessCompletion {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getNameExpressionRule());
+ }
+ set(
+ $current,
+ "sequenceConstructionCompletion",
+ lv_sequenceConstructionCompletion_6_0,
+ "SequenceConstructionOrAccessCompletion");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+ |(
+(
+(
+ lv_postfixOp_7_1= '++'
+ {
+ newLeafNode(lv_postfixOp_7_1, grammarAccess.getNameExpressionAccess().getPostfixOpPlusSignPlusSignKeyword_0_1_2_2_0_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getNameExpressionRule());
+ }
+ setWithLastConsumed($current, "postfixOp", lv_postfixOp_7_1, null);
+ }
+
+ | lv_postfixOp_7_2= '--'
+ {
+ newLeafNode(lv_postfixOp_7_2, grammarAccess.getNameExpressionAccess().getPostfixOpHyphenMinusHyphenMinusKeyword_0_1_2_2_0_1());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getNameExpressionRule());
+ }
+ setWithLastConsumed($current, "postfixOp", lv_postfixOp_7_2, null);
+ }
+
+)
+
+)
+))?))(
+(
+ {
+ newCompositeNode(grammarAccess.getNameExpressionAccess().getSuffixSuffixExpressionParserRuleCall_1_0());
+ }
+ lv_suffix_8_0=ruleSuffixExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getNameExpressionRule());
+ }
+ set(
+ $current,
+ "suffix",
+ lv_suffix_8_0,
+ "SuffixExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleQualifiedNamePath
+entryRuleQualifiedNamePath returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getQualifiedNamePathRule()); }
+ iv_ruleQualifiedNamePath=ruleQualifiedNamePath
+ { $current=$iv_ruleQualifiedNamePath.current; }
+ EOF
+;
+
+// Rule QualifiedNamePath
+ruleQualifiedNamePath returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getQualifiedNamePathAccess().getNamespaceUnqualifiedNameParserRuleCall_0_0());
+ }
+ lv_namespace_0_0=ruleUnqualifiedName {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getQualifiedNamePathRule());
+ }
+ add(
+ $current,
+ "namespace",
+ lv_namespace_0_0,
+ "UnqualifiedName");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_1='::'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getQualifiedNamePathAccess().getColonColonKeyword_1());
+ }
+)+
+;
+
+
+
+
+
+// Entry rule entryRuleUnqualifiedName
+entryRuleUnqualifiedName returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getUnqualifiedNameRule()); }
+ iv_ruleUnqualifiedName=ruleUnqualifiedName
+ { $current=$iv_ruleUnqualifiedName.current; }
+ EOF
+;
+
+// Rule UnqualifiedName
+ruleUnqualifiedName returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ lv_name_0_0=RULE_ID
+ {
+ newLeafNode(lv_name_0_0, grammarAccess.getUnqualifiedNameAccess().getNameIDTerminalRuleCall_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getUnqualifiedNameRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "name",
+ lv_name_0_0,
+ "ID");
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getUnqualifiedNameAccess().getTemplateBindingTemplateBindingParserRuleCall_1_0());
+ }
+ lv_templateBinding_1_0=ruleTemplateBinding {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getUnqualifiedNameRule());
+ }
+ set(
+ $current,
+ "templateBinding",
+ lv_templateBinding_1_0,
+ "TemplateBinding");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleTemplateBinding
+entryRuleTemplateBinding returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getTemplateBindingRule()); }
+ iv_ruleTemplateBinding=ruleTemplateBinding
+ { $current=$iv_ruleTemplateBinding.current; }
+ EOF
+;
+
+// Rule TemplateBinding
+ruleTemplateBinding returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='<'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getTemplateBindingAccess().getLessThanSignKeyword_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getTemplateBindingAccess().getBindingsNamedTemplateBindingParserRuleCall_1_0());
+ }
+ lv_bindings_1_0=ruleNamedTemplateBinding {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTemplateBindingRule());
+ }
+ add(
+ $current,
+ "bindings",
+ lv_bindings_1_0,
+ "NamedTemplateBinding");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_2=','
+ {
+ newLeafNode(otherlv_2, grammarAccess.getTemplateBindingAccess().getCommaKeyword_2_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getTemplateBindingAccess().getBindingsNamedTemplateBindingParserRuleCall_2_1_0());
+ }
+ lv_bindings_3_0=ruleNamedTemplateBinding {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTemplateBindingRule());
+ }
+ add(
+ $current,
+ "bindings",
+ lv_bindings_3_0,
+ "NamedTemplateBinding");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))* otherlv_4='>'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getTemplateBindingAccess().getGreaterThanSignKeyword_3());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleNamedTemplateBinding
+entryRuleNamedTemplateBinding returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getNamedTemplateBindingRule()); }
+ iv_ruleNamedTemplateBinding=ruleNamedTemplateBinding
+ { $current=$iv_ruleNamedTemplateBinding.current; }
+ EOF
+;
+
+// Rule NamedTemplateBinding
+ruleNamedTemplateBinding returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ lv_formal_0_0=RULE_ID
+ {
+ newLeafNode(lv_formal_0_0, grammarAccess.getNamedTemplateBindingAccess().getFormalIDTerminalRuleCall_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getNamedTemplateBindingRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "formal",
+ lv_formal_0_0,
+ "ID");
+ }
+
+)
+) otherlv_1='=>'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getNamedTemplateBindingAccess().getEqualsSignGreaterThanSignKeyword_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getNamedTemplateBindingAccess().getActualQualifiedNameWithBindingParserRuleCall_2_0());
+ }
+ lv_actual_2_0=ruleQualifiedNameWithBinding {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getNamedTemplateBindingRule());
+ }
+ set(
+ $current,
+ "actual",
+ lv_actual_2_0,
+ "QualifiedNameWithBinding");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleQualifiedNameWithBinding
+entryRuleQualifiedNameWithBinding returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getQualifiedNameWithBindingRule()); }
+ iv_ruleQualifiedNameWithBinding=ruleQualifiedNameWithBinding
+ { $current=$iv_ruleQualifiedNameWithBinding.current; }
+ EOF
+;
+
+// Rule QualifiedNameWithBinding
+ruleQualifiedNameWithBinding returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ lv_id_0_0=RULE_ID
+ {
+ newLeafNode(lv_id_0_0, grammarAccess.getQualifiedNameWithBindingAccess().getIdIDTerminalRuleCall_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getQualifiedNameWithBindingRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "id",
+ lv_id_0_0,
+ "ID");
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getQualifiedNameWithBindingAccess().getBindingTemplateBindingParserRuleCall_1_0());
+ }
+ lv_binding_1_0=ruleTemplateBinding {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getQualifiedNameWithBindingRule());
+ }
+ set(
+ $current,
+ "binding",
+ lv_binding_1_0,
+ "TemplateBinding");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?( otherlv_2='::'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getQualifiedNameWithBindingAccess().getColonColonKeyword_2_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getQualifiedNameWithBindingAccess().getRemainingQualifiedNameWithBindingParserRuleCall_2_1_0());
+ }
+ lv_remaining_3_0=ruleQualifiedNameWithBinding {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getQualifiedNameWithBindingRule());
+ }
+ set(
+ $current,
+ "remaining",
+ lv_remaining_3_0,
+ "QualifiedNameWithBinding");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleTuple
+entryRuleTuple returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getTupleRule()); }
+ iv_ruleTuple=ruleTuple
+ { $current=$iv_ruleTuple.current; }
+ EOF
+;
+
+// Rule Tuple
+ruleTuple returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getTupleAccess().getTupleAction_0(),
+ $current);
+ }
+) otherlv_1='('
+ {
+ newLeafNode(otherlv_1, grammarAccess.getTupleAccess().getLeftParenthesisKeyword_1());
+ }
+((
+(
+ {
+ newCompositeNode(grammarAccess.getTupleAccess().getTupleElementsTupleElementParserRuleCall_2_0_0());
+ }
+ lv_tupleElements_2_0=ruleTupleElement {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTupleRule());
+ }
+ add(
+ $current,
+ "tupleElements",
+ lv_tupleElements_2_0,
+ "TupleElement");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_3=','
+ {
+ newLeafNode(otherlv_3, grammarAccess.getTupleAccess().getCommaKeyword_2_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getTupleAccess().getTupleElementsTupleElementParserRuleCall_2_1_1_0());
+ }
+ lv_tupleElements_4_0=ruleTupleElement {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTupleRule());
+ }
+ add(
+ $current,
+ "tupleElements",
+ lv_tupleElements_4_0,
+ "TupleElement");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)? otherlv_5=')'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getTupleAccess().getRightParenthesisKeyword_3());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleTupleElement
+entryRuleTupleElement returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getTupleElementRule()); }
+ iv_ruleTupleElement=ruleTupleElement
+ { $current=$iv_ruleTupleElement.current; }
+ EOF
+;
+
+// Rule TupleElement
+ruleTupleElement returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+(
+ {
+ newCompositeNode(grammarAccess.getTupleElementAccess().getArgumentExpressionParserRuleCall_0());
+ }
+ lv_argument_0_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTupleElementRule());
+ }
+ set(
+ $current,
+ "argument",
+ lv_argument_0_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+;
+
+
+
+
+
+// Entry rule entryRuleExpression
+entryRuleExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getExpressionRule()); }
+ iv_ruleExpression=ruleExpression
+ { $current=$iv_ruleExpression.current; }
+ EOF
+;
+
+// Rule Expression
+ruleExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+
+ {
+ newCompositeNode(grammarAccess.getExpressionAccess().getConditionalTestExpressionParserRuleCall());
+ }
+ this_ConditionalTestExpression_0=ruleConditionalTestExpression
+ {
+ $current = $this_ConditionalTestExpression_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+;
+
+
+
+
+
+// Entry rule entryRuleConditionalTestExpression
+entryRuleConditionalTestExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getConditionalTestExpressionRule()); }
+ iv_ruleConditionalTestExpression=ruleConditionalTestExpression
+ { $current=$iv_ruleConditionalTestExpression.current; }
+ EOF
+;
+
+// Rule ConditionalTestExpression
+ruleConditionalTestExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getConditionalTestExpressionAccess().getExpConditionalOrExpressionParserRuleCall_0_0());
+ }
+ lv_exp_0_0=ruleConditionalOrExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getConditionalTestExpressionRule());
+ }
+ set(
+ $current,
+ "exp",
+ lv_exp_0_0,
+ "ConditionalOrExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_1='?'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getConditionalTestExpressionAccess().getQuestionMarkKeyword_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getConditionalTestExpressionAccess().getWhenTrueConditionalTestExpressionParserRuleCall_1_1_0());
+ }
+ lv_whenTrue_2_0=ruleConditionalTestExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getConditionalTestExpressionRule());
+ }
+ set(
+ $current,
+ "whenTrue",
+ lv_whenTrue_2_0,
+ "ConditionalTestExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_3=':'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getConditionalTestExpressionAccess().getColonKeyword_1_2());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getConditionalTestExpressionAccess().getWhenFalseConditionalTestExpressionParserRuleCall_1_3_0());
+ }
+ lv_whenFalse_4_0=ruleConditionalTestExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getConditionalTestExpressionRule());
+ }
+ set(
+ $current,
+ "whenFalse",
+ lv_whenFalse_4_0,
+ "ConditionalTestExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleConditionalOrExpression
+entryRuleConditionalOrExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getConditionalOrExpressionRule()); }
+ iv_ruleConditionalOrExpression=ruleConditionalOrExpression
+ { $current=$iv_ruleConditionalOrExpression.current; }
+ EOF
+;
+
+// Rule ConditionalOrExpression
+ruleConditionalOrExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getConditionalOrExpressionAccess().getExpConditionalAndExpressionParserRuleCall_0_0());
+ }
+ lv_exp_0_0=ruleConditionalAndExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getConditionalOrExpressionRule());
+ }
+ add(
+ $current,
+ "exp",
+ lv_exp_0_0,
+ "ConditionalAndExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_1='||'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getConditionalOrExpressionAccess().getVerticalLineVerticalLineKeyword_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getConditionalOrExpressionAccess().getExpConditionalAndExpressionParserRuleCall_1_1_0());
+ }
+ lv_exp_2_0=ruleConditionalAndExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getConditionalOrExpressionRule());
+ }
+ add(
+ $current,
+ "exp",
+ lv_exp_2_0,
+ "ConditionalAndExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleConditionalAndExpression
+entryRuleConditionalAndExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getConditionalAndExpressionRule()); }
+ iv_ruleConditionalAndExpression=ruleConditionalAndExpression
+ { $current=$iv_ruleConditionalAndExpression.current; }
+ EOF
+;
+
+// Rule ConditionalAndExpression
+ruleConditionalAndExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getConditionalAndExpressionAccess().getExpInclusiveOrExpressionParserRuleCall_0_0());
+ }
+ lv_exp_0_0=ruleInclusiveOrExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getConditionalAndExpressionRule());
+ }
+ add(
+ $current,
+ "exp",
+ lv_exp_0_0,
+ "InclusiveOrExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_1='&&'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getConditionalAndExpressionAccess().getAmpersandAmpersandKeyword_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getConditionalAndExpressionAccess().getExpInclusiveOrExpressionParserRuleCall_1_1_0());
+ }
+ lv_exp_2_0=ruleInclusiveOrExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getConditionalAndExpressionRule());
+ }
+ add(
+ $current,
+ "exp",
+ lv_exp_2_0,
+ "InclusiveOrExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleInclusiveOrExpression
+entryRuleInclusiveOrExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getInclusiveOrExpressionRule()); }
+ iv_ruleInclusiveOrExpression=ruleInclusiveOrExpression
+ { $current=$iv_ruleInclusiveOrExpression.current; }
+ EOF
+;
+
+// Rule InclusiveOrExpression
+ruleInclusiveOrExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getInclusiveOrExpressionAccess().getExpExclusiveOrExpressionParserRuleCall_0_0());
+ }
+ lv_exp_0_0=ruleExclusiveOrExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getInclusiveOrExpressionRule());
+ }
+ add(
+ $current,
+ "exp",
+ lv_exp_0_0,
+ "ExclusiveOrExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_1='|'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getInclusiveOrExpressionAccess().getVerticalLineKeyword_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getInclusiveOrExpressionAccess().getExpExclusiveOrExpressionParserRuleCall_1_1_0());
+ }
+ lv_exp_2_0=ruleExclusiveOrExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getInclusiveOrExpressionRule());
+ }
+ add(
+ $current,
+ "exp",
+ lv_exp_2_0,
+ "ExclusiveOrExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleExclusiveOrExpression
+entryRuleExclusiveOrExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getExclusiveOrExpressionRule()); }
+ iv_ruleExclusiveOrExpression=ruleExclusiveOrExpression
+ { $current=$iv_ruleExclusiveOrExpression.current; }
+ EOF
+;
+
+// Rule ExclusiveOrExpression
+ruleExclusiveOrExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getExclusiveOrExpressionAccess().getExpAndExpressionParserRuleCall_0_0());
+ }
+ lv_exp_0_0=ruleAndExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getExclusiveOrExpressionRule());
+ }
+ add(
+ $current,
+ "exp",
+ lv_exp_0_0,
+ "AndExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_1='^'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getExclusiveOrExpressionAccess().getCircumflexAccentKeyword_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getExclusiveOrExpressionAccess().getExpAndExpressionParserRuleCall_1_1_0());
+ }
+ lv_exp_2_0=ruleAndExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getExclusiveOrExpressionRule());
+ }
+ add(
+ $current,
+ "exp",
+ lv_exp_2_0,
+ "AndExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleAndExpression
+entryRuleAndExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getAndExpressionRule()); }
+ iv_ruleAndExpression=ruleAndExpression
+ { $current=$iv_ruleAndExpression.current; }
+ EOF
+;
+
+// Rule AndExpression
+ruleAndExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getAndExpressionAccess().getExpEqualityExpressionParserRuleCall_0_0());
+ }
+ lv_exp_0_0=ruleEqualityExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAndExpressionRule());
+ }
+ add(
+ $current,
+ "exp",
+ lv_exp_0_0,
+ "EqualityExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_1='&'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getAndExpressionAccess().getAmpersandKeyword_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getAndExpressionAccess().getExpEqualityExpressionParserRuleCall_1_1_0());
+ }
+ lv_exp_2_0=ruleEqualityExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAndExpressionRule());
+ }
+ add(
+ $current,
+ "exp",
+ lv_exp_2_0,
+ "EqualityExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleEqualityExpression
+entryRuleEqualityExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getEqualityExpressionRule()); }
+ iv_ruleEqualityExpression=ruleEqualityExpression
+ { $current=$iv_ruleEqualityExpression.current; }
+ EOF
+;
+
+// Rule EqualityExpression
+ruleEqualityExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getEqualityExpressionAccess().getExpClassificationExpressionParserRuleCall_0_0());
+ }
+ lv_exp_0_0=ruleClassificationExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getEqualityExpressionRule());
+ }
+ add(
+ $current,
+ "exp",
+ lv_exp_0_0,
+ "ClassificationExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)((
+(
+(
+ lv_op_1_1= '=='
+ {
+ newLeafNode(lv_op_1_1, grammarAccess.getEqualityExpressionAccess().getOpEqualsSignEqualsSignKeyword_1_0_0_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getEqualityExpressionRule());
+ }
+ addWithLastConsumed($current, "op", lv_op_1_1, null);
+ }
+
+ | lv_op_1_2= '!='
+ {
+ newLeafNode(lv_op_1_2, grammarAccess.getEqualityExpressionAccess().getOpExclamationMarkEqualsSignKeyword_1_0_0_1());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getEqualityExpressionRule());
+ }
+ addWithLastConsumed($current, "op", lv_op_1_2, null);
+ }
+
+)
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getEqualityExpressionAccess().getExpClassificationExpressionParserRuleCall_1_1_0());
+ }
+ lv_exp_2_0=ruleClassificationExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getEqualityExpressionRule());
+ }
+ add(
+ $current,
+ "exp",
+ lv_exp_2_0,
+ "ClassificationExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleClassificationExpression
+entryRuleClassificationExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getClassificationExpressionRule()); }
+ iv_ruleClassificationExpression=ruleClassificationExpression
+ { $current=$iv_ruleClassificationExpression.current; }
+ EOF
+;
+
+// Rule ClassificationExpression
+ruleClassificationExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getClassificationExpressionAccess().getExpRelationalExpressionParserRuleCall_0_0());
+ }
+ lv_exp_0_0=ruleRelationalExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getClassificationExpressionRule());
+ }
+ set(
+ $current,
+ "exp",
+ lv_exp_0_0,
+ "RelationalExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)((
+(
+(
+ lv_op_1_1= 'instanceof'
+ {
+ newLeafNode(lv_op_1_1, grammarAccess.getClassificationExpressionAccess().getOpInstanceofKeyword_1_0_0_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getClassificationExpressionRule());
+ }
+ setWithLastConsumed($current, "op", lv_op_1_1, null);
+ }
+
+ | lv_op_1_2= 'hastype'
+ {
+ newLeafNode(lv_op_1_2, grammarAccess.getClassificationExpressionAccess().getOpHastypeKeyword_1_0_0_1());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getClassificationExpressionRule());
+ }
+ setWithLastConsumed($current, "op", lv_op_1_2, null);
+ }
+
+)
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getClassificationExpressionAccess().getTypeNameNameExpressionParserRuleCall_1_1_0());
+ }
+ lv_typeName_2_0=ruleNameExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getClassificationExpressionRule());
+ }
+ set(
+ $current,
+ "typeName",
+ lv_typeName_2_0,
+ "NameExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleRelationalExpression
+entryRuleRelationalExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getRelationalExpressionRule()); }
+ iv_ruleRelationalExpression=ruleRelationalExpression
+ { $current=$iv_ruleRelationalExpression.current; }
+ EOF
+;
+
+// Rule RelationalExpression
+ruleRelationalExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getRelationalExpressionAccess().getLeftShiftExpressionParserRuleCall_0_0());
+ }
+ lv_left_0_0=ruleShiftExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getRelationalExpressionRule());
+ }
+ set(
+ $current,
+ "left",
+ lv_left_0_0,
+ "ShiftExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)((
+(
+(
+ lv_op_1_1= '<'
+ {
+ newLeafNode(lv_op_1_1, grammarAccess.getRelationalExpressionAccess().getOpLessThanSignKeyword_1_0_0_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getRelationalExpressionRule());
+ }
+ setWithLastConsumed($current, "op", lv_op_1_1, null);
+ }
+
+ | lv_op_1_2= '>'
+ {
+ newLeafNode(lv_op_1_2, grammarAccess.getRelationalExpressionAccess().getOpGreaterThanSignKeyword_1_0_0_1());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getRelationalExpressionRule());
+ }
+ setWithLastConsumed($current, "op", lv_op_1_2, null);
+ }
+
+ | lv_op_1_3= '<='
+ {
+ newLeafNode(lv_op_1_3, grammarAccess.getRelationalExpressionAccess().getOpLessThanSignEqualsSignKeyword_1_0_0_2());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getRelationalExpressionRule());
+ }
+ setWithLastConsumed($current, "op", lv_op_1_3, null);
+ }
+
+ | lv_op_1_4= '>='
+ {
+ newLeafNode(lv_op_1_4, grammarAccess.getRelationalExpressionAccess().getOpGreaterThanSignEqualsSignKeyword_1_0_0_3());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getRelationalExpressionRule());
+ }
+ setWithLastConsumed($current, "op", lv_op_1_4, null);
+ }
+
+)
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getRelationalExpressionAccess().getRightShiftExpressionParserRuleCall_1_1_0());
+ }
+ lv_right_2_0=ruleShiftExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getRelationalExpressionRule());
+ }
+ set(
+ $current,
+ "right",
+ lv_right_2_0,
+ "ShiftExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleShiftExpression
+entryRuleShiftExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getShiftExpressionRule()); }
+ iv_ruleShiftExpression=ruleShiftExpression
+ { $current=$iv_ruleShiftExpression.current; }
+ EOF
+;
+
+// Rule ShiftExpression
+ruleShiftExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getShiftExpressionAccess().getExpAdditiveExpressionParserRuleCall_0_0());
+ }
+ lv_exp_0_0=ruleAdditiveExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getShiftExpressionRule());
+ }
+ add(
+ $current,
+ "exp",
+ lv_exp_0_0,
+ "AdditiveExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)((
+(
+(
+ lv_op_1_1= '<<'
+ {
+ newLeafNode(lv_op_1_1, grammarAccess.getShiftExpressionAccess().getOpLessThanSignLessThanSignKeyword_1_0_0_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getShiftExpressionRule());
+ }
+ setWithLastConsumed($current, "op", lv_op_1_1, null);
+ }
+
+ | lv_op_1_2= '>>'
+ {
+ newLeafNode(lv_op_1_2, grammarAccess.getShiftExpressionAccess().getOpGreaterThanSignGreaterThanSignKeyword_1_0_0_1());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getShiftExpressionRule());
+ }
+ setWithLastConsumed($current, "op", lv_op_1_2, null);
+ }
+
+ | lv_op_1_3= '>>>'
+ {
+ newLeafNode(lv_op_1_3, grammarAccess.getShiftExpressionAccess().getOpGreaterThanSignGreaterThanSignGreaterThanSignKeyword_1_0_0_2());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getShiftExpressionRule());
+ }
+ setWithLastConsumed($current, "op", lv_op_1_3, null);
+ }
+
+)
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getShiftExpressionAccess().getExpAdditiveExpressionParserRuleCall_1_1_0());
+ }
+ lv_exp_2_0=ruleAdditiveExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getShiftExpressionRule());
+ }
+ add(
+ $current,
+ "exp",
+ lv_exp_2_0,
+ "AdditiveExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleAdditiveExpression
+entryRuleAdditiveExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getAdditiveExpressionRule()); }
+ iv_ruleAdditiveExpression=ruleAdditiveExpression
+ { $current=$iv_ruleAdditiveExpression.current; }
+ EOF
+;
+
+// Rule AdditiveExpression
+ruleAdditiveExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getAdditiveExpressionAccess().getExpMultiplicativeExpressionParserRuleCall_0_0());
+ }
+ lv_exp_0_0=ruleMultiplicativeExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAdditiveExpressionRule());
+ }
+ add(
+ $current,
+ "exp",
+ lv_exp_0_0,
+ "MultiplicativeExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)((
+(
+(
+ lv_op_1_1= '+'
+ {
+ newLeafNode(lv_op_1_1, grammarAccess.getAdditiveExpressionAccess().getOpPlusSignKeyword_1_0_0_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getAdditiveExpressionRule());
+ }
+ addWithLastConsumed($current, "op", lv_op_1_1, null);
+ }
+
+ | lv_op_1_2= '-'
+ {
+ newLeafNode(lv_op_1_2, grammarAccess.getAdditiveExpressionAccess().getOpHyphenMinusKeyword_1_0_0_1());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getAdditiveExpressionRule());
+ }
+ addWithLastConsumed($current, "op", lv_op_1_2, null);
+ }
+
+)
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getAdditiveExpressionAccess().getExpMultiplicativeExpressionParserRuleCall_1_1_0());
+ }
+ lv_exp_2_0=ruleMultiplicativeExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAdditiveExpressionRule());
+ }
+ add(
+ $current,
+ "exp",
+ lv_exp_2_0,
+ "MultiplicativeExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleMultiplicativeExpression
+entryRuleMultiplicativeExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getMultiplicativeExpressionRule()); }
+ iv_ruleMultiplicativeExpression=ruleMultiplicativeExpression
+ { $current=$iv_ruleMultiplicativeExpression.current; }
+ EOF
+;
+
+// Rule MultiplicativeExpression
+ruleMultiplicativeExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getMultiplicativeExpressionAccess().getExpUnaryExpressionParserRuleCall_0_0());
+ }
+ lv_exp_0_0=ruleUnaryExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getMultiplicativeExpressionRule());
+ }
+ add(
+ $current,
+ "exp",
+ lv_exp_0_0,
+ "UnaryExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)((
+(
+(
+ lv_op_1_1= '*'
+ {
+ newLeafNode(lv_op_1_1, grammarAccess.getMultiplicativeExpressionAccess().getOpAsteriskKeyword_1_0_0_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getMultiplicativeExpressionRule());
+ }
+ addWithLastConsumed($current, "op", lv_op_1_1, null);
+ }
+
+ | lv_op_1_2= '/'
+ {
+ newLeafNode(lv_op_1_2, grammarAccess.getMultiplicativeExpressionAccess().getOpSolidusKeyword_1_0_0_1());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getMultiplicativeExpressionRule());
+ }
+ addWithLastConsumed($current, "op", lv_op_1_2, null);
+ }
+
+ | lv_op_1_3= '%'
+ {
+ newLeafNode(lv_op_1_3, grammarAccess.getMultiplicativeExpressionAccess().getOpPercentSignKeyword_1_0_0_2());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getMultiplicativeExpressionRule());
+ }
+ addWithLastConsumed($current, "op", lv_op_1_3, null);
+ }
+
+)
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getMultiplicativeExpressionAccess().getExpUnaryExpressionParserRuleCall_1_1_0());
+ }
+ lv_exp_2_0=ruleUnaryExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getMultiplicativeExpressionRule());
+ }
+ add(
+ $current,
+ "exp",
+ lv_exp_2_0,
+ "UnaryExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleUnaryExpression
+entryRuleUnaryExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getUnaryExpressionRule()); }
+ iv_ruleUnaryExpression=ruleUnaryExpression
+ { $current=$iv_ruleUnaryExpression.current; }
+ EOF
+;
+
+// Rule UnaryExpression
+ruleUnaryExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+(
+ lv_op_0_1= '!'
+ {
+ newLeafNode(lv_op_0_1, grammarAccess.getUnaryExpressionAccess().getOpExclamationMarkKeyword_0_0_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getUnaryExpressionRule());
+ }
+ setWithLastConsumed($current, "op", lv_op_0_1, null);
+ }
+
+ | lv_op_0_2= '-'
+ {
+ newLeafNode(lv_op_0_2, grammarAccess.getUnaryExpressionAccess().getOpHyphenMinusKeyword_0_0_1());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getUnaryExpressionRule());
+ }
+ setWithLastConsumed($current, "op", lv_op_0_2, null);
+ }
+
+ | lv_op_0_3= '+'
+ {
+ newLeafNode(lv_op_0_3, grammarAccess.getUnaryExpressionAccess().getOpPlusSignKeyword_0_0_2());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getUnaryExpressionRule());
+ }
+ setWithLastConsumed($current, "op", lv_op_0_3, null);
+ }
+
+ | lv_op_0_4= '$'
+ {
+ newLeafNode(lv_op_0_4, grammarAccess.getUnaryExpressionAccess().getOpDollarSignKeyword_0_0_3());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getUnaryExpressionRule());
+ }
+ setWithLastConsumed($current, "op", lv_op_0_4, null);
+ }
+
+ | lv_op_0_5= '~'
+ {
+ newLeafNode(lv_op_0_5, grammarAccess.getUnaryExpressionAccess().getOpTildeKeyword_0_0_4());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getUnaryExpressionRule());
+ }
+ setWithLastConsumed($current, "op", lv_op_0_5, null);
+ }
+
+)
+
+)
+)?(
+(
+ {
+ newCompositeNode(grammarAccess.getUnaryExpressionAccess().getExpPrimaryExpressionParserRuleCall_1_0());
+ }
+ lv_exp_1_0=rulePrimaryExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getUnaryExpressionRule());
+ }
+ set(
+ $current,
+ "exp",
+ lv_exp_1_0,
+ "PrimaryExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRulePrimaryExpression
+entryRulePrimaryExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getPrimaryExpressionRule()); }
+ iv_rulePrimaryExpression=rulePrimaryExpression
+ { $current=$iv_rulePrimaryExpression.current; }
+ EOF
+;
+
+// Rule PrimaryExpression
+rulePrimaryExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getPrefixValueSpecificationParserRuleCall_0());
+ }
+ lv_prefix_0_0=ruleValueSpecification {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "prefix",
+ lv_prefix_0_0,
+ "ValueSpecification");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+;
+
+
+
+
+
+// Entry rule entryRuleSuffixExpression
+entryRuleSuffixExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getSuffixExpressionRule()); }
+ iv_ruleSuffixExpression=ruleSuffixExpression
+ { $current=$iv_ruleSuffixExpression.current; }
+ EOF
+;
+
+// Rule SuffixExpression
+ruleSuffixExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getSuffixExpressionAccess().getOperationCallExpressionParserRuleCall_0());
+ }
+ this_OperationCallExpression_0=ruleOperationCallExpression
+ {
+ $current = $this_OperationCallExpression_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getSuffixExpressionAccess().getPropertyCallExpressionParserRuleCall_1());
+ }
+ this_PropertyCallExpression_1=rulePropertyCallExpression
+ {
+ $current = $this_PropertyCallExpression_1.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getSuffixExpressionAccess().getLinkOperationExpressionParserRuleCall_2());
+ }
+ this_LinkOperationExpression_2=ruleLinkOperationExpression
+ {
+ $current = $this_LinkOperationExpression_2.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getSuffixExpressionAccess().getSequenceOperationExpressionParserRuleCall_3());
+ }
+ this_SequenceOperationExpression_3=ruleSequenceOperationExpression
+ {
+ $current = $this_SequenceOperationExpression_3.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getSuffixExpressionAccess().getSequenceReductionExpressionParserRuleCall_4());
+ }
+ this_SequenceReductionExpression_4=ruleSequenceReductionExpression
+ {
+ $current = $this_SequenceReductionExpression_4.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getSuffixExpressionAccess().getSequenceExpansionExpressionParserRuleCall_5());
+ }
+ this_SequenceExpansionExpression_5=ruleSequenceExpansionExpression
+ {
+ $current = $this_SequenceExpansionExpression_5.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getSuffixExpressionAccess().getClassExtentExpressionParserRuleCall_6());
+ }
+ this_ClassExtentExpression_6=ruleClassExtentExpression
+ {
+ $current = $this_ClassExtentExpression_6.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleOperationCallExpression
+entryRuleOperationCallExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getOperationCallExpressionRule()); }
+ iv_ruleOperationCallExpression=ruleOperationCallExpression
+ { $current=$iv_ruleOperationCallExpression.current; }
+ EOF
+;
+
+// Rule OperationCallExpression
+ruleOperationCallExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='.'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getOperationCallExpressionAccess().getFullStopKeyword_0());
+ }
+(
+(
+ lv_operationName_1_0=RULE_ID
+ {
+ newLeafNode(lv_operationName_1_0, grammarAccess.getOperationCallExpressionAccess().getOperationNameIDTerminalRuleCall_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getOperationCallExpressionRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "operationName",
+ lv_operationName_1_0,
+ "ID");
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getOperationCallExpressionAccess().getTupleTupleParserRuleCall_2_0());
+ }
+ lv_tuple_2_0=ruleTuple {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getOperationCallExpressionRule());
+ }
+ set(
+ $current,
+ "tuple",
+ lv_tuple_2_0,
+ "Tuple");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getOperationCallExpressionAccess().getSuffixSuffixExpressionParserRuleCall_3_0());
+ }
+ lv_suffix_3_0=ruleSuffixExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getOperationCallExpressionRule());
+ }
+ set(
+ $current,
+ "suffix",
+ lv_suffix_3_0,
+ "SuffixExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?)
+;
+
+
+
+
+
+// Entry rule entryRulePropertyCallExpression
+entryRulePropertyCallExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getPropertyCallExpressionRule()); }
+ iv_rulePropertyCallExpression=rulePropertyCallExpression
+ { $current=$iv_rulePropertyCallExpression.current; }
+ EOF
+;
+
+// Rule PropertyCallExpression
+rulePropertyCallExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='.'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getPropertyCallExpressionAccess().getFullStopKeyword_0());
+ }
+(
+(
+ lv_propertyName_1_0=RULE_ID
+ {
+ newLeafNode(lv_propertyName_1_0, grammarAccess.getPropertyCallExpressionAccess().getPropertyNameIDTerminalRuleCall_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getPropertyCallExpressionRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "propertyName",
+ lv_propertyName_1_0,
+ "ID");
+ }
+
+)
+)( otherlv_2='['
+ {
+ newLeafNode(otherlv_2, grammarAccess.getPropertyCallExpressionAccess().getLeftSquareBracketKeyword_2_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getPropertyCallExpressionAccess().getIndexExpressionParserRuleCall_2_1_0());
+ }
+ lv_index_3_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPropertyCallExpressionRule());
+ }
+ set(
+ $current,
+ "index",
+ lv_index_3_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_4=']'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getPropertyCallExpressionAccess().getRightSquareBracketKeyword_2_2());
+ }
+)?(
+(
+ {
+ newCompositeNode(grammarAccess.getPropertyCallExpressionAccess().getSuffixSuffixExpressionParserRuleCall_3_0());
+ }
+ lv_suffix_5_0=ruleSuffixExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPropertyCallExpressionRule());
+ }
+ set(
+ $current,
+ "suffix",
+ lv_suffix_5_0,
+ "SuffixExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleLinkOperationExpression
+entryRuleLinkOperationExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getLinkOperationExpressionRule()); }
+ iv_ruleLinkOperationExpression=ruleLinkOperationExpression
+ { $current=$iv_ruleLinkOperationExpression.current; }
+ EOF
+;
+
+// Rule LinkOperationExpression
+ruleLinkOperationExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='.'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getLinkOperationExpressionAccess().getFullStopKeyword_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getLinkOperationExpressionAccess().getKindLinkOperationKindEnumRuleCall_1_0());
+ }
+ lv_kind_1_0=ruleLinkOperationKind {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLinkOperationExpressionRule());
+ }
+ set(
+ $current,
+ "kind",
+ lv_kind_1_0,
+ "LinkOperationKind");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getLinkOperationExpressionAccess().getTupleLinkOperationTupleParserRuleCall_2_0());
+ }
+ lv_tuple_2_0=ruleLinkOperationTuple {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLinkOperationExpressionRule());
+ }
+ set(
+ $current,
+ "tuple",
+ lv_tuple_2_0,
+ "LinkOperationTuple");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleLinkOperationTuple
+entryRuleLinkOperationTuple returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getLinkOperationTupleRule()); }
+ iv_ruleLinkOperationTuple=ruleLinkOperationTuple
+ { $current=$iv_ruleLinkOperationTuple.current; }
+ EOF
+;
+
+// Rule LinkOperationTuple
+ruleLinkOperationTuple returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='('
+ {
+ newLeafNode(otherlv_0, grammarAccess.getLinkOperationTupleAccess().getLeftParenthesisKeyword_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getLinkOperationTupleAccess().getLinkOperationTupleElementLinkOperationTupleElementParserRuleCall_1_0());
+ }
+ lv_linkOperationTupleElement_1_0=ruleLinkOperationTupleElement {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLinkOperationTupleRule());
+ }
+ add(
+ $current,
+ "linkOperationTupleElement",
+ lv_linkOperationTupleElement_1_0,
+ "LinkOperationTupleElement");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_2=','
+ {
+ newLeafNode(otherlv_2, grammarAccess.getLinkOperationTupleAccess().getCommaKeyword_2_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getLinkOperationTupleAccess().getLinkOperationTupleElementLinkOperationTupleElementParserRuleCall_2_1_0());
+ }
+ lv_linkOperationTupleElement_3_0=ruleLinkOperationTupleElement {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLinkOperationTupleRule());
+ }
+ add(
+ $current,
+ "linkOperationTupleElement",
+ lv_linkOperationTupleElement_3_0,
+ "LinkOperationTupleElement");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))* otherlv_4=')'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getLinkOperationTupleAccess().getRightParenthesisKeyword_3());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleLinkOperationTupleElement
+entryRuleLinkOperationTupleElement returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getLinkOperationTupleElementRule()); }
+ iv_ruleLinkOperationTupleElement=ruleLinkOperationTupleElement
+ { $current=$iv_ruleLinkOperationTupleElement.current; }
+ EOF
+;
+
+// Rule LinkOperationTupleElement
+ruleLinkOperationTupleElement returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ lv_role_0_0=RULE_ID
+ {
+ newLeafNode(lv_role_0_0, grammarAccess.getLinkOperationTupleElementAccess().getRoleIDTerminalRuleCall_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getLinkOperationTupleElementRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "role",
+ lv_role_0_0,
+ "ID");
+ }
+
+)
+)( otherlv_1='['
+ {
+ newLeafNode(otherlv_1, grammarAccess.getLinkOperationTupleElementAccess().getLeftSquareBracketKeyword_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getLinkOperationTupleElementAccess().getRoleIndexExpressionParserRuleCall_1_1_0());
+ }
+ lv_roleIndex_2_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLinkOperationTupleElementRule());
+ }
+ set(
+ $current,
+ "roleIndex",
+ lv_roleIndex_2_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_3=']'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getLinkOperationTupleElementAccess().getRightSquareBracketKeyword_1_2());
+ }
+)? otherlv_4='=>'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getLinkOperationTupleElementAccess().getEqualsSignGreaterThanSignKeyword_2());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getLinkOperationTupleElementAccess().getObjectExpressionParserRuleCall_3_0());
+ }
+ lv_object_5_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLinkOperationTupleElementRule());
+ }
+ set(
+ $current,
+ "object",
+ lv_object_5_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleSequenceOperationExpression
+entryRuleSequenceOperationExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getSequenceOperationExpressionRule()); }
+ iv_ruleSequenceOperationExpression=ruleSequenceOperationExpression
+ { $current=$iv_ruleSequenceOperationExpression.current; }
+ EOF
+;
+
+// Rule SequenceOperationExpression
+ruleSequenceOperationExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='->'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getSequenceOperationExpressionAccess().getHyphenMinusGreaterThanSignKeyword_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getSequenceOperationExpressionAccess().getOperationNameQualifiedNameWithBindingParserRuleCall_1_0());
+ }
+ lv_operationName_1_0=ruleQualifiedNameWithBinding {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSequenceOperationExpressionRule());
+ }
+ set(
+ $current,
+ "operationName",
+ lv_operationName_1_0,
+ "QualifiedNameWithBinding");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getSequenceOperationExpressionAccess().getTupleTupleParserRuleCall_2_0());
+ }
+ lv_tuple_2_0=ruleTuple {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSequenceOperationExpressionRule());
+ }
+ set(
+ $current,
+ "tuple",
+ lv_tuple_2_0,
+ "Tuple");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getSequenceOperationExpressionAccess().getSuffixSuffixExpressionParserRuleCall_3_0());
+ }
+ lv_suffix_3_0=ruleSuffixExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSequenceOperationExpressionRule());
+ }
+ set(
+ $current,
+ "suffix",
+ lv_suffix_3_0,
+ "SuffixExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleSequenceReductionExpression
+entryRuleSequenceReductionExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getSequenceReductionExpressionRule()); }
+ iv_ruleSequenceReductionExpression=ruleSequenceReductionExpression
+ { $current=$iv_ruleSequenceReductionExpression.current; }
+ EOF
+;
+
+// Rule SequenceReductionExpression
+ruleSequenceReductionExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='->'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getSequenceReductionExpressionAccess().getHyphenMinusGreaterThanSignKeyword_0());
+ }
+ otherlv_1='reduce'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getSequenceReductionExpressionAccess().getReduceKeyword_1());
+ }
+(
+(
+ lv_isOrdered_2_0= 'ordered'
+ {
+ newLeafNode(lv_isOrdered_2_0, grammarAccess.getSequenceReductionExpressionAccess().getIsOrderedOrderedKeyword_2_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getSequenceReductionExpressionRule());
+ }
+ setWithLastConsumed($current, "isOrdered", true, "ordered");
+ }
+
+)
+)?(
+(
+ {
+ newCompositeNode(grammarAccess.getSequenceReductionExpressionAccess().getBehaviorQualifiedNameWithBindingParserRuleCall_3_0());
+ }
+ lv_behavior_3_0=ruleQualifiedNameWithBinding {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSequenceReductionExpressionRule());
+ }
+ set(
+ $current,
+ "behavior",
+ lv_behavior_3_0,
+ "QualifiedNameWithBinding");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getSequenceReductionExpressionAccess().getSuffixSuffixExpressionParserRuleCall_4_0());
+ }
+ lv_suffix_4_0=ruleSuffixExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSequenceReductionExpressionRule());
+ }
+ set(
+ $current,
+ "suffix",
+ lv_suffix_4_0,
+ "SuffixExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleSequenceExpansionExpression
+entryRuleSequenceExpansionExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getSequenceExpansionExpressionRule()); }
+ iv_ruleSequenceExpansionExpression=ruleSequenceExpansionExpression
+ { $current=$iv_ruleSequenceExpansionExpression.current; }
+ EOF
+;
+
+// Rule SequenceExpansionExpression
+ruleSequenceExpansionExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getSequenceExpansionExpressionAccess().getSelectOrRejectOperationParserRuleCall_0());
+ }
+ this_SelectOrRejectOperation_0=ruleSelectOrRejectOperation
+ {
+ $current = $this_SelectOrRejectOperation_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getSequenceExpansionExpressionAccess().getCollectOrIterateOperationParserRuleCall_1());
+ }
+ this_CollectOrIterateOperation_1=ruleCollectOrIterateOperation
+ {
+ $current = $this_CollectOrIterateOperation_1.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getSequenceExpansionExpressionAccess().getForAllOrExistsOrOneOperationParserRuleCall_2());
+ }
+ this_ForAllOrExistsOrOneOperation_2=ruleForAllOrExistsOrOneOperation
+ {
+ $current = $this_ForAllOrExistsOrOneOperation_2.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getSequenceExpansionExpressionAccess().getIsUniqueOperationParserRuleCall_3());
+ }
+ this_IsUniqueOperation_3=ruleIsUniqueOperation
+ {
+ $current = $this_IsUniqueOperation_3.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleSelectOrRejectOperation
+entryRuleSelectOrRejectOperation returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getSelectOrRejectOperationRule()); }
+ iv_ruleSelectOrRejectOperation=ruleSelectOrRejectOperation
+ { $current=$iv_ruleSelectOrRejectOperation.current; }
+ EOF
+;
+
+// Rule SelectOrRejectOperation
+ruleSelectOrRejectOperation returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='->'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getSelectOrRejectOperationAccess().getHyphenMinusGreaterThanSignKeyword_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getSelectOrRejectOperationAccess().getOpSelectOrRejectOperatorEnumRuleCall_1_0());
+ }
+ lv_op_1_0=ruleSelectOrRejectOperator {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSelectOrRejectOperationRule());
+ }
+ set(
+ $current,
+ "op",
+ lv_op_1_0,
+ "SelectOrRejectOperator");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ lv_name_2_0=RULE_ID
+ {
+ newLeafNode(lv_name_2_0, grammarAccess.getSelectOrRejectOperationAccess().getNameIDTerminalRuleCall_2_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getSelectOrRejectOperationRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "name",
+ lv_name_2_0,
+ "ID");
+ }
+
+)
+) otherlv_3='('
+ {
+ newLeafNode(otherlv_3, grammarAccess.getSelectOrRejectOperationAccess().getLeftParenthesisKeyword_3());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getSelectOrRejectOperationAccess().getExprExpressionParserRuleCall_4_0());
+ }
+ lv_expr_4_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSelectOrRejectOperationRule());
+ }
+ set(
+ $current,
+ "expr",
+ lv_expr_4_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_5=')'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getSelectOrRejectOperationAccess().getRightParenthesisKeyword_5());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getSelectOrRejectOperationAccess().getSuffixSuffixExpressionParserRuleCall_6_0());
+ }
+ lv_suffix_6_0=ruleSuffixExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSelectOrRejectOperationRule());
+ }
+ set(
+ $current,
+ "suffix",
+ lv_suffix_6_0,
+ "SuffixExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleCollectOrIterateOperation
+entryRuleCollectOrIterateOperation returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getCollectOrIterateOperationRule()); }
+ iv_ruleCollectOrIterateOperation=ruleCollectOrIterateOperation
+ { $current=$iv_ruleCollectOrIterateOperation.current; }
+ EOF
+;
+
+// Rule CollectOrIterateOperation
+ruleCollectOrIterateOperation returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='->'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getCollectOrIterateOperationAccess().getHyphenMinusGreaterThanSignKeyword_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getCollectOrIterateOperationAccess().getOpCollectOrIterateOperatorEnumRuleCall_1_0());
+ }
+ lv_op_1_0=ruleCollectOrIterateOperator {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCollectOrIterateOperationRule());
+ }
+ set(
+ $current,
+ "op",
+ lv_op_1_0,
+ "CollectOrIterateOperator");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ lv_name_2_0=RULE_ID
+ {
+ newLeafNode(lv_name_2_0, grammarAccess.getCollectOrIterateOperationAccess().getNameIDTerminalRuleCall_2_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getCollectOrIterateOperationRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "name",
+ lv_name_2_0,
+ "ID");
+ }
+
+)
+) otherlv_3='('
+ {
+ newLeafNode(otherlv_3, grammarAccess.getCollectOrIterateOperationAccess().getLeftParenthesisKeyword_3());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getCollectOrIterateOperationAccess().getExprExpressionParserRuleCall_4_0());
+ }
+ lv_expr_4_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCollectOrIterateOperationRule());
+ }
+ set(
+ $current,
+ "expr",
+ lv_expr_4_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_5=')'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getCollectOrIterateOperationAccess().getRightParenthesisKeyword_5());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getCollectOrIterateOperationAccess().getSuffixSuffixExpressionParserRuleCall_6_0());
+ }
+ lv_suffix_6_0=ruleSuffixExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCollectOrIterateOperationRule());
+ }
+ set(
+ $current,
+ "suffix",
+ lv_suffix_6_0,
+ "SuffixExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleForAllOrExistsOrOneOperation
+entryRuleForAllOrExistsOrOneOperation returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getForAllOrExistsOrOneOperationRule()); }
+ iv_ruleForAllOrExistsOrOneOperation=ruleForAllOrExistsOrOneOperation
+ { $current=$iv_ruleForAllOrExistsOrOneOperation.current; }
+ EOF
+;
+
+// Rule ForAllOrExistsOrOneOperation
+ruleForAllOrExistsOrOneOperation returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='->'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getForAllOrExistsOrOneOperationAccess().getHyphenMinusGreaterThanSignKeyword_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getForAllOrExistsOrOneOperationAccess().getOpForAllOrExistsOrOneOperatorEnumRuleCall_1_0());
+ }
+ lv_op_1_0=ruleForAllOrExistsOrOneOperator {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getForAllOrExistsOrOneOperationRule());
+ }
+ set(
+ $current,
+ "op",
+ lv_op_1_0,
+ "ForAllOrExistsOrOneOperator");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ lv_name_2_0=RULE_ID
+ {
+ newLeafNode(lv_name_2_0, grammarAccess.getForAllOrExistsOrOneOperationAccess().getNameIDTerminalRuleCall_2_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getForAllOrExistsOrOneOperationRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "name",
+ lv_name_2_0,
+ "ID");
+ }
+
+)
+) otherlv_3='('
+ {
+ newLeafNode(otherlv_3, grammarAccess.getForAllOrExistsOrOneOperationAccess().getLeftParenthesisKeyword_3());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getForAllOrExistsOrOneOperationAccess().getExprExpressionParserRuleCall_4_0());
+ }
+ lv_expr_4_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getForAllOrExistsOrOneOperationRule());
+ }
+ set(
+ $current,
+ "expr",
+ lv_expr_4_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_5=')'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getForAllOrExistsOrOneOperationAccess().getRightParenthesisKeyword_5());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getForAllOrExistsOrOneOperationAccess().getSuffixSuffixExpressionParserRuleCall_6_0());
+ }
+ lv_suffix_6_0=ruleSuffixExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getForAllOrExistsOrOneOperationRule());
+ }
+ set(
+ $current,
+ "suffix",
+ lv_suffix_6_0,
+ "SuffixExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleIsUniqueOperation
+entryRuleIsUniqueOperation returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getIsUniqueOperationRule()); }
+ iv_ruleIsUniqueOperation=ruleIsUniqueOperation
+ { $current=$iv_ruleIsUniqueOperation.current; }
+ EOF
+;
+
+// Rule IsUniqueOperation
+ruleIsUniqueOperation returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='->'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getIsUniqueOperationAccess().getHyphenMinusGreaterThanSignKeyword_0());
+ }
+ otherlv_1='isUnique'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getIsUniqueOperationAccess().getIsUniqueKeyword_1());
+ }
+(
+(
+ lv_name_2_0=RULE_ID
+ {
+ newLeafNode(lv_name_2_0, grammarAccess.getIsUniqueOperationAccess().getNameIDTerminalRuleCall_2_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getIsUniqueOperationRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "name",
+ lv_name_2_0,
+ "ID");
+ }
+
+)
+) otherlv_3='('
+ {
+ newLeafNode(otherlv_3, grammarAccess.getIsUniqueOperationAccess().getLeftParenthesisKeyword_3());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getIsUniqueOperationAccess().getExprExpressionParserRuleCall_4_0());
+ }
+ lv_expr_4_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getIsUniqueOperationRule());
+ }
+ set(
+ $current,
+ "expr",
+ lv_expr_4_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_5=')'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getIsUniqueOperationAccess().getRightParenthesisKeyword_5());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getIsUniqueOperationAccess().getSuffixSuffixExpressionParserRuleCall_6_0());
+ }
+ lv_suffix_6_0=ruleSuffixExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getIsUniqueOperationRule());
+ }
+ set(
+ $current,
+ "suffix",
+ lv_suffix_6_0,
+ "SuffixExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleValueSpecification
+entryRuleValueSpecification returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getValueSpecificationRule()); }
+ iv_ruleValueSpecification=ruleValueSpecification
+ { $current=$iv_ruleValueSpecification.current; }
+ EOF
+;
+
+// Rule ValueSpecification
+ruleValueSpecification returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getValueSpecificationAccess().getNameExpressionParserRuleCall_0());
+ }
+ this_NameExpression_0=ruleNameExpression
+ {
+ $current = $this_NameExpression_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getValueSpecificationAccess().getLITERALParserRuleCall_1());
+ }
+ this_LITERAL_1=ruleLITERAL
+ {
+ $current = $this_LITERAL_1.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getValueSpecificationAccess().getThisExpressionParserRuleCall_2());
+ }
+ this_ThisExpression_2=ruleThisExpression
+ {
+ $current = $this_ThisExpression_2.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getValueSpecificationAccess().getSuperInvocationExpressionParserRuleCall_3());
+ }
+ this_SuperInvocationExpression_3=ruleSuperInvocationExpression
+ {
+ $current = $this_SuperInvocationExpression_3.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getValueSpecificationAccess().getInstanceCreationExpressionParserRuleCall_4());
+ }
+ this_InstanceCreationExpression_4=ruleInstanceCreationExpression
+ {
+ $current = $this_InstanceCreationExpression_4.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getValueSpecificationAccess().getParenthesizedExpressionParserRuleCall_5());
+ }
+ this_ParenthesizedExpression_5=ruleParenthesizedExpression
+ {
+ $current = $this_ParenthesizedExpression_5.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getValueSpecificationAccess().getNullExpressionParserRuleCall_6());
+ }
+ this_NullExpression_6=ruleNullExpression
+ {
+ $current = $this_NullExpression_6.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleNonLiteralValueSpecification
+entryRuleNonLiteralValueSpecification returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getNonLiteralValueSpecificationRule()); }
+ iv_ruleNonLiteralValueSpecification=ruleNonLiteralValueSpecification
+ { $current=$iv_ruleNonLiteralValueSpecification.current; }
+ EOF
+;
+
+// Rule NonLiteralValueSpecification
+ruleNonLiteralValueSpecification returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getNonLiteralValueSpecificationAccess().getNameExpressionParserRuleCall_0());
+ }
+ this_NameExpression_0=ruleNameExpression
+ {
+ $current = $this_NameExpression_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getNonLiteralValueSpecificationAccess().getParenthesizedExpressionParserRuleCall_1());
+ }
+ this_ParenthesizedExpression_1=ruleParenthesizedExpression
+ {
+ $current = $this_ParenthesizedExpression_1.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getNonLiteralValueSpecificationAccess().getInstanceCreationExpressionParserRuleCall_2());
+ }
+ this_InstanceCreationExpression_2=ruleInstanceCreationExpression
+ {
+ $current = $this_InstanceCreationExpression_2.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getNonLiteralValueSpecificationAccess().getThisExpressionParserRuleCall_3());
+ }
+ this_ThisExpression_3=ruleThisExpression
+ {
+ $current = $this_ThisExpression_3.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getNonLiteralValueSpecificationAccess().getSuperInvocationExpressionParserRuleCall_4());
+ }
+ this_SuperInvocationExpression_4=ruleSuperInvocationExpression
+ {
+ $current = $this_SuperInvocationExpression_4.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleParenthesizedExpression
+entryRuleParenthesizedExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getParenthesizedExpressionRule()); }
+ iv_ruleParenthesizedExpression=ruleParenthesizedExpression
+ { $current=$iv_ruleParenthesizedExpression.current; }
+ EOF
+;
+
+// Rule ParenthesizedExpression
+ruleParenthesizedExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='('
+ {
+ newLeafNode(otherlv_0, grammarAccess.getParenthesizedExpressionAccess().getLeftParenthesisKeyword_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getParenthesizedExpressionAccess().getExpOrTypeCastExpressionParserRuleCall_1_0());
+ }
+ lv_expOrTypeCast_1_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getParenthesizedExpressionRule());
+ }
+ set(
+ $current,
+ "expOrTypeCast",
+ lv_expOrTypeCast_1_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_2=')'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getParenthesizedExpressionAccess().getRightParenthesisKeyword_2());
+ }
+((
+(
+ {
+ newCompositeNode(grammarAccess.getParenthesizedExpressionAccess().getCastedNonLiteralValueSpecificationParserRuleCall_3_0_0());
+ }
+ lv_casted_3_0=ruleNonLiteralValueSpecification {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getParenthesizedExpressionRule());
+ }
+ set(
+ $current,
+ "casted",
+ lv_casted_3_0,
+ "NonLiteralValueSpecification");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+ |(
+(
+ {
+ newCompositeNode(grammarAccess.getParenthesizedExpressionAccess().getSuffixSuffixExpressionParserRuleCall_3_1_0());
+ }
+ lv_suffix_4_0=ruleSuffixExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getParenthesizedExpressionRule());
+ }
+ set(
+ $current,
+ "suffix",
+ lv_suffix_4_0,
+ "SuffixExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleNullExpression
+entryRuleNullExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getNullExpressionRule()); }
+ iv_ruleNullExpression=ruleNullExpression
+ { $current=$iv_ruleNullExpression.current; }
+ EOF
+;
+
+// Rule NullExpression
+ruleNullExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getNullExpressionAccess().getNullExpressionAction_0(),
+ $current);
+ }
+) otherlv_1='null'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getNullExpressionAccess().getNullKeyword_1());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleThisExpression
+entryRuleThisExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getThisExpressionRule()); }
+ iv_ruleThisExpression=ruleThisExpression
+ { $current=$iv_ruleThisExpression.current; }
+ EOF
+;
+
+// Rule ThisExpression
+ruleThisExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getThisExpressionAccess().getThisExpressionAction_0(),
+ $current);
+ }
+) otherlv_1='this'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getThisExpressionAccess().getThisKeyword_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getThisExpressionAccess().getSuffixSuffixExpressionParserRuleCall_2_0());
+ }
+ lv_suffix_2_0=ruleSuffixExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getThisExpressionRule());
+ }
+ set(
+ $current,
+ "suffix",
+ lv_suffix_2_0,
+ "SuffixExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleSuperInvocationExpression
+entryRuleSuperInvocationExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getSuperInvocationExpressionRule()); }
+ iv_ruleSuperInvocationExpression=ruleSuperInvocationExpression
+ { $current=$iv_ruleSuperInvocationExpression.current; }
+ EOF
+;
+
+// Rule SuperInvocationExpression
+ruleSuperInvocationExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='super'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getSuperInvocationExpressionAccess().getSuperKeyword_0());
+ }
+((
+(
+ {
+ newCompositeNode(grammarAccess.getSuperInvocationExpressionAccess().getTupleTupleParserRuleCall_1_0_0());
+ }
+ lv_tuple_1_0=ruleTuple {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSuperInvocationExpressionRule());
+ }
+ set(
+ $current,
+ "tuple",
+ lv_tuple_1_0,
+ "Tuple");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+ |( otherlv_2='.'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getSuperInvocationExpressionAccess().getFullStopKeyword_1_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getSuperInvocationExpressionAccess().getOperationNameQualifiedNameWithBindingParserRuleCall_1_1_1_0());
+ }
+ lv_operationName_3_0=ruleQualifiedNameWithBinding {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSuperInvocationExpressionRule());
+ }
+ set(
+ $current,
+ "operationName",
+ lv_operationName_3_0,
+ "QualifiedNameWithBinding");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getSuperInvocationExpressionAccess().getTupleTupleParserRuleCall_1_1_2_0());
+ }
+ lv_tuple_4_0=ruleTuple {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSuperInvocationExpressionRule());
+ }
+ set(
+ $current,
+ "tuple",
+ lv_tuple_4_0,
+ "Tuple");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))))
+;
+
+
+
+
+
+// Entry rule entryRuleInstanceCreationExpression
+entryRuleInstanceCreationExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getInstanceCreationExpressionRule()); }
+ iv_ruleInstanceCreationExpression=ruleInstanceCreationExpression
+ { $current=$iv_ruleInstanceCreationExpression.current; }
+ EOF
+;
+
+// Rule InstanceCreationExpression
+ruleInstanceCreationExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='new'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getInstanceCreationExpressionAccess().getNewKeyword_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getInstanceCreationExpressionAccess().getConstructorQualifiedNameWithBindingParserRuleCall_1_0());
+ }
+ lv_constructor_1_0=ruleQualifiedNameWithBinding {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getInstanceCreationExpressionRule());
+ }
+ set(
+ $current,
+ "constructor",
+ lv_constructor_1_0,
+ "QualifiedNameWithBinding");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getInstanceCreationExpressionAccess().getTupleInstanceCreationTupleParserRuleCall_2_0());
+ }
+ lv_tuple_2_0=ruleInstanceCreationTuple {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getInstanceCreationExpressionRule());
+ }
+ set(
+ $current,
+ "tuple",
+ lv_tuple_2_0,
+ "InstanceCreationTuple");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getInstanceCreationExpressionAccess().getSuffixSuffixExpressionParserRuleCall_3_0());
+ }
+ lv_suffix_3_0=ruleSuffixExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getInstanceCreationExpressionRule());
+ }
+ set(
+ $current,
+ "suffix",
+ lv_suffix_3_0,
+ "SuffixExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleInstanceCreationTuple
+entryRuleInstanceCreationTuple returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getInstanceCreationTupleRule()); }
+ iv_ruleInstanceCreationTuple=ruleInstanceCreationTuple
+ { $current=$iv_ruleInstanceCreationTuple.current; }
+ EOF
+;
+
+// Rule InstanceCreationTuple
+ruleInstanceCreationTuple returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getInstanceCreationTupleAccess().getInstanceCreationTupleAction_0(),
+ $current);
+ }
+) otherlv_1='('
+ {
+ newLeafNode(otherlv_1, grammarAccess.getInstanceCreationTupleAccess().getLeftParenthesisKeyword_1());
+ }
+((
+(
+ {
+ newCompositeNode(grammarAccess.getInstanceCreationTupleAccess().getInstanceCreationTupleElementInstanceCreationTupleElementParserRuleCall_2_0_0());
+ }
+ lv_instanceCreationTupleElement_2_0=ruleInstanceCreationTupleElement {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getInstanceCreationTupleRule());
+ }
+ add(
+ $current,
+ "instanceCreationTupleElement",
+ lv_instanceCreationTupleElement_2_0,
+ "InstanceCreationTupleElement");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_3=','
+ {
+ newLeafNode(otherlv_3, grammarAccess.getInstanceCreationTupleAccess().getCommaKeyword_2_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getInstanceCreationTupleAccess().getInstanceCreationTupleElementInstanceCreationTupleElementParserRuleCall_2_1_1_0());
+ }
+ lv_instanceCreationTupleElement_4_0=ruleInstanceCreationTupleElement {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getInstanceCreationTupleRule());
+ }
+ add(
+ $current,
+ "instanceCreationTupleElement",
+ lv_instanceCreationTupleElement_4_0,
+ "InstanceCreationTupleElement");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)? otherlv_5=')'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getInstanceCreationTupleAccess().getRightParenthesisKeyword_3());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleInstanceCreationTupleElement
+entryRuleInstanceCreationTupleElement returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getInstanceCreationTupleElementRule()); }
+ iv_ruleInstanceCreationTupleElement=ruleInstanceCreationTupleElement
+ { $current=$iv_ruleInstanceCreationTupleElement.current; }
+ EOF
+;
+
+// Rule InstanceCreationTupleElement
+ruleInstanceCreationTupleElement returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ lv_role_0_0=RULE_ID
+ {
+ newLeafNode(lv_role_0_0, grammarAccess.getInstanceCreationTupleElementAccess().getRoleIDTerminalRuleCall_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getInstanceCreationTupleElementRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "role",
+ lv_role_0_0,
+ "ID");
+ }
+
+)
+) otherlv_1='=>'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getInstanceCreationTupleElementAccess().getEqualsSignGreaterThanSignKeyword_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getInstanceCreationTupleElementAccess().getObjectExpressionParserRuleCall_2_0());
+ }
+ lv_object_2_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getInstanceCreationTupleElementRule());
+ }
+ set(
+ $current,
+ "object",
+ lv_object_2_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleSequenceConstructionOrAccessCompletion
+entryRuleSequenceConstructionOrAccessCompletion returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getSequenceConstructionOrAccessCompletionRule()); }
+ iv_ruleSequenceConstructionOrAccessCompletion=ruleSequenceConstructionOrAccessCompletion
+ { $current=$iv_ruleSequenceConstructionOrAccessCompletion.current; }
+ EOF
+;
+
+// Rule SequenceConstructionOrAccessCompletion
+ruleSequenceConstructionOrAccessCompletion returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(((
+(
+ lv_multiplicityIndicator_0_0= '['
+ {
+ newLeafNode(lv_multiplicityIndicator_0_0, grammarAccess.getSequenceConstructionOrAccessCompletionAccess().getMultiplicityIndicatorLeftSquareBracketKeyword_0_0_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getSequenceConstructionOrAccessCompletionRule());
+ }
+ setWithLastConsumed($current, "multiplicityIndicator", true, "[");
+ }
+
+)
+)((
+(
+ {
+ newCompositeNode(grammarAccess.getSequenceConstructionOrAccessCompletionAccess().getAccessCompletionAccessCompletionParserRuleCall_0_1_0_0());
+ }
+ lv_accessCompletion_1_0=ruleAccessCompletion {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSequenceConstructionOrAccessCompletionRule());
+ }
+ set(
+ $current,
+ "accessCompletion",
+ lv_accessCompletion_1_0,
+ "AccessCompletion");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+ |(
+(
+ {
+ newCompositeNode(grammarAccess.getSequenceConstructionOrAccessCompletionAccess().getSequenceCompletionPartialSequenceConstructionCompletionParserRuleCall_0_1_1_0());
+ }
+ lv_sequenceCompletion_2_0=rulePartialSequenceConstructionCompletion {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSequenceConstructionOrAccessCompletionRule());
+ }
+ set(
+ $current,
+ "sequenceCompletion",
+ lv_sequenceCompletion_2_0,
+ "PartialSequenceConstructionCompletion");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)))
+ |(
+(
+ {
+ newCompositeNode(grammarAccess.getSequenceConstructionOrAccessCompletionAccess().getExpressionSequenceConstructionExpressionParserRuleCall_1_0());
+ }
+ lv_expression_3_0=ruleSequenceConstructionExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSequenceConstructionOrAccessCompletionRule());
+ }
+ set(
+ $current,
+ "expression",
+ lv_expression_3_0,
+ "SequenceConstructionExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleAccessCompletion
+entryRuleAccessCompletion returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getAccessCompletionRule()); }
+ iv_ruleAccessCompletion=ruleAccessCompletion
+ { $current=$iv_ruleAccessCompletion.current; }
+ EOF
+;
+
+// Rule AccessCompletion
+ruleAccessCompletion returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getAccessCompletionAccess().getAccessIndexExpressionParserRuleCall_0_0());
+ }
+ lv_accessIndex_0_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAccessCompletionRule());
+ }
+ set(
+ $current,
+ "accessIndex",
+ lv_accessIndex_0_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_1=']'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getAccessCompletionAccess().getRightSquareBracketKeyword_1());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRulePartialSequenceConstructionCompletion
+entryRulePartialSequenceConstructionCompletion returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getPartialSequenceConstructionCompletionRule()); }
+ iv_rulePartialSequenceConstructionCompletion=rulePartialSequenceConstructionCompletion
+ { $current=$iv_rulePartialSequenceConstructionCompletion.current; }
+ EOF
+;
+
+// Rule PartialSequenceConstructionCompletion
+rulePartialSequenceConstructionCompletion returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0=']'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getPartialSequenceConstructionCompletionAccess().getRightSquareBracketKeyword_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getPartialSequenceConstructionCompletionAccess().getExpressionSequenceConstructionExpressionParserRuleCall_1_0());
+ }
+ lv_expression_1_0=ruleSequenceConstructionExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPartialSequenceConstructionCompletionRule());
+ }
+ set(
+ $current,
+ "expression",
+ lv_expression_1_0,
+ "SequenceConstructionExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleSequenceConstructionExpression
+entryRuleSequenceConstructionExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getSequenceConstructionExpressionRule()); }
+ iv_ruleSequenceConstructionExpression=ruleSequenceConstructionExpression
+ { $current=$iv_ruleSequenceConstructionExpression.current; }
+ EOF
+;
+
+// Rule SequenceConstructionExpression
+ruleSequenceConstructionExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='{'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getSequenceConstructionExpressionAccess().getLeftCurlyBracketKeyword_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getSequenceConstructionExpressionAccess().getSequenceElementSequenceElementParserRuleCall_1_0());
+ }
+ lv_sequenceElement_1_0=ruleSequenceElement {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSequenceConstructionExpressionRule());
+ }
+ add(
+ $current,
+ "sequenceElement",
+ lv_sequenceElement_1_0,
+ "SequenceElement");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(( otherlv_2=','
+ {
+ newLeafNode(otherlv_2, grammarAccess.getSequenceConstructionExpressionAccess().getCommaKeyword_2_0_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getSequenceConstructionExpressionAccess().getSequenceElementSequenceElementParserRuleCall_2_0_1_0());
+ }
+ lv_sequenceElement_3_0=ruleSequenceElement {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSequenceConstructionExpressionRule());
+ }
+ add(
+ $current,
+ "sequenceElement",
+ lv_sequenceElement_3_0,
+ "SequenceElement");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*
+ |( otherlv_4='..'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getSequenceConstructionExpressionAccess().getFullStopFullStopKeyword_2_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getSequenceConstructionExpressionAccess().getRangeUpperExpressionParserRuleCall_2_1_1_0());
+ }
+ lv_rangeUpper_5_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSequenceConstructionExpressionRule());
+ }
+ set(
+ $current,
+ "rangeUpper",
+ lv_rangeUpper_5_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))) otherlv_6='}'
+ {
+ newLeafNode(otherlv_6, grammarAccess.getSequenceConstructionExpressionAccess().getRightCurlyBracketKeyword_3());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleSequenceElement
+entryRuleSequenceElement returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getSequenceElementRule()); }
+ iv_ruleSequenceElement=ruleSequenceElement
+ { $current=$iv_ruleSequenceElement.current; }
+ EOF
+;
+
+// Rule SequenceElement
+ruleSequenceElement returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getSequenceElementAccess().getExpressionParserRuleCall_0());
+ }
+ this_Expression_0=ruleExpression
+ {
+ $current = $this_Expression_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getSequenceElementAccess().getSequenceConstructionExpressionParserRuleCall_1());
+ }
+ this_SequenceConstructionExpression_1=ruleSequenceConstructionExpression
+ {
+ $current = $this_SequenceConstructionExpression_1.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleClassExtentExpression
+entryRuleClassExtentExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getClassExtentExpressionRule()); }
+ iv_ruleClassExtentExpression=ruleClassExtentExpression
+ { $current=$iv_ruleClassExtentExpression.current; }
+ EOF
+;
+
+// Rule ClassExtentExpression
+ruleClassExtentExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getClassExtentExpressionAccess().getClassExtentExpressionAction_0(),
+ $current);
+ }
+) otherlv_1='.'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getClassExtentExpressionAccess().getFullStopKeyword_1());
+ }
+ otherlv_2='allInstances'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getClassExtentExpressionAccess().getAllInstancesKeyword_2());
+ }
+ otherlv_3='('
+ {
+ newLeafNode(otherlv_3, grammarAccess.getClassExtentExpressionAccess().getLeftParenthesisKeyword_3());
+ }
+ otherlv_4=')'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getClassExtentExpressionAccess().getRightParenthesisKeyword_4());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleBlock
+entryRuleBlock returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getBlockRule()); }
+ iv_ruleBlock=ruleBlock
+ { $current=$iv_ruleBlock.current; }
+ EOF
+;
+
+// Rule Block
+ruleBlock returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='{'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getBlockAccess().getLeftCurlyBracketKeyword_0());
+ }
+(
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getBlockAccess().getBlockAction_1(),
+ $current);
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getBlockAccess().getSequenceStatementSequenceParserRuleCall_2_0());
+ }
+ lv_sequence_2_0=ruleStatementSequence {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getBlockRule());
+ }
+ set(
+ $current,
+ "sequence",
+ lv_sequence_2_0,
+ "StatementSequence");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)? otherlv_3='}'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getBlockAccess().getRightCurlyBracketKeyword_3());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleStatementSequence
+entryRuleStatementSequence returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getStatementSequenceRule()); }
+ iv_ruleStatementSequence=ruleStatementSequence
+ { $current=$iv_ruleStatementSequence.current; }
+ EOF
+;
+
+// Rule StatementSequence
+ruleStatementSequence returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+(
+ {
+ newCompositeNode(grammarAccess.getStatementSequenceAccess().getStatementsDocumentedStatementParserRuleCall_0());
+ }
+ lv_statements_0_0=ruleDocumentedStatement {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getStatementSequenceRule());
+ }
+ add(
+ $current,
+ "statements",
+ lv_statements_0_0,
+ "DocumentedStatement");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)+
+;
+
+
+
+
+
+// Entry rule entryRuleDocumentedStatement
+entryRuleDocumentedStatement returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getDocumentedStatementRule()); }
+ iv_ruleDocumentedStatement=ruleDocumentedStatement
+ { $current=$iv_ruleDocumentedStatement.current; }
+ EOF
+;
+
+// Rule DocumentedStatement
+ruleDocumentedStatement returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+(
+ lv_comment_0_1=RULE_ML_COMMENT
+ {
+ newLeafNode(lv_comment_0_1, grammarAccess.getDocumentedStatementAccess().getCommentML_COMMENTTerminalRuleCall_0_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getDocumentedStatementRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "comment",
+ lv_comment_0_1,
+ "ML_COMMENT");
+ }
+
+ | lv_comment_0_2=RULE_SL_COMMENT
+ {
+ newLeafNode(lv_comment_0_2, grammarAccess.getDocumentedStatementAccess().getCommentSL_COMMENTTerminalRuleCall_0_0_1());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getDocumentedStatementRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "comment",
+ lv_comment_0_2,
+ "SL_COMMENT");
+ }
+
+)
+
+)
+)?(
+(
+ {
+ newCompositeNode(grammarAccess.getDocumentedStatementAccess().getStatementStatementParserRuleCall_1_0());
+ }
+ lv_statement_1_0=ruleStatement {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getDocumentedStatementRule());
+ }
+ set(
+ $current,
+ "statement",
+ lv_statement_1_0,
+ "Statement");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleInlineStatement
+entryRuleInlineStatement returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getInlineStatementRule()); }
+ iv_ruleInlineStatement=ruleInlineStatement
+ { $current=$iv_ruleInlineStatement.current; }
+ EOF
+;
+
+// Rule InlineStatement
+ruleInlineStatement returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='/*@'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getInlineStatementAccess().getSolidusAsteriskCommercialAtKeyword_0());
+ }
+ otherlv_1='inline'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getInlineStatementAccess().getInlineKeyword_1());
+ }
+ otherlv_2='('
+ {
+ newLeafNode(otherlv_2, grammarAccess.getInlineStatementAccess().getLeftParenthesisKeyword_2());
+ }
+(
+(
+ lv_langageName_3_0=RULE_ID
+ {
+ newLeafNode(lv_langageName_3_0, grammarAccess.getInlineStatementAccess().getLangageNameIDTerminalRuleCall_3_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getInlineStatementRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "langageName",
+ lv_langageName_3_0,
+ "ID");
+ }
+
+)
+) otherlv_4=')'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getInlineStatementAccess().getRightParenthesisKeyword_4());
+ }
+(
+(
+ lv_body_5_0=RULE_STRING
+ {
+ newLeafNode(lv_body_5_0, grammarAccess.getInlineStatementAccess().getBodySTRINGTerminalRuleCall_5_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getInlineStatementRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "body",
+ lv_body_5_0,
+ "STRING");
+ }
+
+)
+) otherlv_6='*/'
+ {
+ newLeafNode(otherlv_6, grammarAccess.getInlineStatementAccess().getAsteriskSolidusKeyword_6());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleAnnotatedStatement
+entryRuleAnnotatedStatement returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getAnnotatedStatementRule()); }
+ iv_ruleAnnotatedStatement=ruleAnnotatedStatement
+ { $current=$iv_ruleAnnotatedStatement.current; }
+ EOF
+;
+
+// Rule AnnotatedStatement
+ruleAnnotatedStatement returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='//@'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getAnnotatedStatementAccess().getSolidusSolidusCommercialAtKeyword_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getAnnotatedStatementAccess().getAnnotationAnnotationParserRuleCall_1_0());
+ }
+ lv_annotation_1_0=ruleAnnotation {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAnnotatedStatementRule());
+ }
+ set(
+ $current,
+ "annotation",
+ lv_annotation_1_0,
+ "Annotation");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getAnnotatedStatementAccess().getStatementStatementParserRuleCall_2_0());
+ }
+ lv_statement_2_0=ruleStatement {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAnnotatedStatementRule());
+ }
+ set(
+ $current,
+ "statement",
+ lv_statement_2_0,
+ "Statement");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleStatement
+entryRuleStatement returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getStatementRule()); }
+ iv_ruleStatement=ruleStatement
+ { $current=$iv_ruleStatement.current; }
+ EOF
+;
+
+// Rule Statement
+ruleStatement returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getStatementAccess().getAnnotatedStatementParserRuleCall_0());
+ }
+ this_AnnotatedStatement_0=ruleAnnotatedStatement
+ {
+ $current = $this_AnnotatedStatement_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getStatementAccess().getInlineStatementParserRuleCall_1());
+ }
+ this_InlineStatement_1=ruleInlineStatement
+ {
+ $current = $this_InlineStatement_1.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getStatementAccess().getBlockStatementParserRuleCall_2());
+ }
+ this_BlockStatement_2=ruleBlockStatement
+ {
+ $current = $this_BlockStatement_2.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getStatementAccess().getEmptyStatementParserRuleCall_3());
+ }
+ this_EmptyStatement_3=ruleEmptyStatement
+ {
+ $current = $this_EmptyStatement_3.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getStatementAccess().getLocalNameDeclarationStatementParserRuleCall_4());
+ }
+ this_LocalNameDeclarationStatement_4=ruleLocalNameDeclarationStatement
+ {
+ $current = $this_LocalNameDeclarationStatement_4.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getStatementAccess().getIfStatementParserRuleCall_5());
+ }
+ this_IfStatement_5=ruleIfStatement
+ {
+ $current = $this_IfStatement_5.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getStatementAccess().getSwitchStatementParserRuleCall_6());
+ }
+ this_SwitchStatement_6=ruleSwitchStatement
+ {
+ $current = $this_SwitchStatement_6.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getStatementAccess().getWhileStatementParserRuleCall_7());
+ }
+ this_WhileStatement_7=ruleWhileStatement
+ {
+ $current = $this_WhileStatement_7.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getStatementAccess().getDoStatementParserRuleCall_8());
+ }
+ this_DoStatement_8=ruleDoStatement
+ {
+ $current = $this_DoStatement_8.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getStatementAccess().getForStatementParserRuleCall_9());
+ }
+ this_ForStatement_9=ruleForStatement
+ {
+ $current = $this_ForStatement_9.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getStatementAccess().getBreakStatementParserRuleCall_10());
+ }
+ this_BreakStatement_10=ruleBreakStatement
+ {
+ $current = $this_BreakStatement_10.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getStatementAccess().getReturnStatementParserRuleCall_11());
+ }
+ this_ReturnStatement_11=ruleReturnStatement
+ {
+ $current = $this_ReturnStatement_11.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getStatementAccess().getAcceptStatementParserRuleCall_12());
+ }
+ this_AcceptStatement_12=ruleAcceptStatement
+ {
+ $current = $this_AcceptStatement_12.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getStatementAccess().getClassifyStatementParserRuleCall_13());
+ }
+ this_ClassifyStatement_13=ruleClassifyStatement
+ {
+ $current = $this_ClassifyStatement_13.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getStatementAccess().getInvocationOrAssignementOrDeclarationStatementParserRuleCall_14());
+ }
+ this_InvocationOrAssignementOrDeclarationStatement_14=ruleInvocationOrAssignementOrDeclarationStatement
+ {
+ $current = $this_InvocationOrAssignementOrDeclarationStatement_14.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getStatementAccess().getSuperInvocationStatementParserRuleCall_15());
+ }
+ this_SuperInvocationStatement_15=ruleSuperInvocationStatement
+ {
+ $current = $this_SuperInvocationStatement_15.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getStatementAccess().getThisInvocationStatementParserRuleCall_16());
+ }
+ this_ThisInvocationStatement_16=ruleThisInvocationStatement
+ {
+ $current = $this_ThisInvocationStatement_16.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getStatementAccess().getInstanceCreationInvocationStatementParserRuleCall_17());
+ }
+ this_InstanceCreationInvocationStatement_17=ruleInstanceCreationInvocationStatement
+ {
+ $current = $this_InstanceCreationInvocationStatement_17.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleAnnotation
+entryRuleAnnotation returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getAnnotationRule()); }
+ iv_ruleAnnotation=ruleAnnotation
+ { $current=$iv_ruleAnnotation.current; }
+ EOF
+;
+
+// Rule Annotation
+ruleAnnotation returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getAnnotationAccess().getKindAnnotationKindEnumRuleCall_0_0());
+ }
+ lv_kind_0_0=ruleAnnotationKind {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAnnotationRule());
+ }
+ set(
+ $current,
+ "kind",
+ lv_kind_0_0,
+ "AnnotationKind");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_1='('
+ {
+ newLeafNode(otherlv_1, grammarAccess.getAnnotationAccess().getLeftParenthesisKeyword_1_0());
+ }
+(
+(
+ lv_args_2_0=RULE_ID
+ {
+ newLeafNode(lv_args_2_0, grammarAccess.getAnnotationAccess().getArgsIDTerminalRuleCall_1_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getAnnotationRule());
+ }
+ addWithLastConsumed(
+ $current,
+ "args",
+ lv_args_2_0,
+ "ID");
+ }
+
+)
+)( otherlv_3=','
+ {
+ newLeafNode(otherlv_3, grammarAccess.getAnnotationAccess().getCommaKeyword_1_2_0());
+ }
+(
+(
+ lv_args_4_0=RULE_ID
+ {
+ newLeafNode(lv_args_4_0, grammarAccess.getAnnotationAccess().getArgsIDTerminalRuleCall_1_2_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getAnnotationRule());
+ }
+ addWithLastConsumed(
+ $current,
+ "args",
+ lv_args_4_0,
+ "ID");
+ }
+
+)
+))* otherlv_5=')'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getAnnotationAccess().getRightParenthesisKeyword_1_3());
+ }
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleBlockStatement
+entryRuleBlockStatement returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getBlockStatementRule()); }
+ iv_ruleBlockStatement=ruleBlockStatement
+ { $current=$iv_ruleBlockStatement.current; }
+ EOF
+;
+
+// Rule BlockStatement
+ruleBlockStatement returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+(
+ {
+ newCompositeNode(grammarAccess.getBlockStatementAccess().getBlockBlockParserRuleCall_0());
+ }
+ lv_block_0_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getBlockStatementRule());
+ }
+ set(
+ $current,
+ "block",
+ lv_block_0_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+;
+
+
+
+
+
+// Entry rule entryRuleEmptyStatement
+entryRuleEmptyStatement returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getEmptyStatementRule()); }
+ iv_ruleEmptyStatement=ruleEmptyStatement
+ { $current=$iv_ruleEmptyStatement.current; }
+ EOF
+;
+
+// Rule EmptyStatement
+ruleEmptyStatement returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getEmptyStatementAccess().getEmptyStatementAction_0(),
+ $current);
+ }
+) otherlv_1=';'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getEmptyStatementAccess().getSemicolonKeyword_1());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleLocalNameDeclarationStatement
+entryRuleLocalNameDeclarationStatement returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getLocalNameDeclarationStatementRule()); }
+ iv_ruleLocalNameDeclarationStatement=ruleLocalNameDeclarationStatement
+ { $current=$iv_ruleLocalNameDeclarationStatement.current; }
+ EOF
+;
+
+// Rule LocalNameDeclarationStatement
+ruleLocalNameDeclarationStatement returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='let'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getLocalNameDeclarationStatementAccess().getLetKeyword_0());
+ }
+(
+(
+ lv_varName_1_0=RULE_ID
+ {
+ newLeafNode(lv_varName_1_0, grammarAccess.getLocalNameDeclarationStatementAccess().getVarNameIDTerminalRuleCall_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getLocalNameDeclarationStatementRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "varName",
+ lv_varName_1_0,
+ "ID");
+ }
+
+)
+) otherlv_2=':'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getLocalNameDeclarationStatementAccess().getColonKeyword_2());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getLocalNameDeclarationStatementAccess().getTypeQualifiedNameWithBindingParserRuleCall_3_0());
+ }
+ lv_type_3_0=ruleQualifiedNameWithBinding {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLocalNameDeclarationStatementRule());
+ }
+ set(
+ $current,
+ "type",
+ lv_type_3_0,
+ "QualifiedNameWithBinding");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)((
+(
+ lv_multiplicityIndicator_4_0= '['
+ {
+ newLeafNode(lv_multiplicityIndicator_4_0, grammarAccess.getLocalNameDeclarationStatementAccess().getMultiplicityIndicatorLeftSquareBracketKeyword_4_0_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getLocalNameDeclarationStatementRule());
+ }
+ setWithLastConsumed($current, "multiplicityIndicator", true, "[");
+ }
+
+)
+) otherlv_5=']'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getLocalNameDeclarationStatementAccess().getRightSquareBracketKeyword_4_1());
+ }
+)? otherlv_6='='
+ {
+ newLeafNode(otherlv_6, grammarAccess.getLocalNameDeclarationStatementAccess().getEqualsSignKeyword_5());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getLocalNameDeclarationStatementAccess().getInitSequenceElementParserRuleCall_6_0());
+ }
+ lv_init_7_0=ruleSequenceElement {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLocalNameDeclarationStatementRule());
+ }
+ set(
+ $current,
+ "init",
+ lv_init_7_0,
+ "SequenceElement");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_8=';'
+ {
+ newLeafNode(otherlv_8, grammarAccess.getLocalNameDeclarationStatementAccess().getSemicolonKeyword_7());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleIfStatement
+entryRuleIfStatement returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getIfStatementRule()); }
+ iv_ruleIfStatement=ruleIfStatement
+ { $current=$iv_ruleIfStatement.current; }
+ EOF
+;
+
+// Rule IfStatement
+ruleIfStatement returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='if'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getIfStatementAccess().getIfKeyword_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getIfStatementAccess().getSequentialClaussesSequentialClausesParserRuleCall_1_0());
+ }
+ lv_sequentialClausses_1_0=ruleSequentialClauses {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getIfStatementRule());
+ }
+ set(
+ $current,
+ "sequentialClausses",
+ lv_sequentialClausses_1_0,
+ "SequentialClauses");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getIfStatementAccess().getFinalClauseFinalClauseParserRuleCall_2_0());
+ }
+ lv_finalClause_2_0=ruleFinalClause {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getIfStatementRule());
+ }
+ set(
+ $current,
+ "finalClause",
+ lv_finalClause_2_0,
+ "FinalClause");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleSequentialClauses
+entryRuleSequentialClauses returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getSequentialClausesRule()); }
+ iv_ruleSequentialClauses=ruleSequentialClauses
+ { $current=$iv_ruleSequentialClauses.current; }
+ EOF
+;
+
+// Rule SequentialClauses
+ruleSequentialClauses returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getSequentialClausesAccess().getConccurentClausesConcurrentClausesParserRuleCall_0_0());
+ }
+ lv_conccurentClauses_0_0=ruleConcurrentClauses {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSequentialClausesRule());
+ }
+ add(
+ $current,
+ "conccurentClauses",
+ lv_conccurentClauses_0_0,
+ "ConcurrentClauses");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_1='else'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getSequentialClausesAccess().getElseKeyword_1_0());
+ }
+ otherlv_2='if'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getSequentialClausesAccess().getIfKeyword_1_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getSequentialClausesAccess().getConccurentClausesConcurrentClausesParserRuleCall_1_2_0());
+ }
+ lv_conccurentClauses_3_0=ruleConcurrentClauses {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSequentialClausesRule());
+ }
+ add(
+ $current,
+ "conccurentClauses",
+ lv_conccurentClauses_3_0,
+ "ConcurrentClauses");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleConcurrentClauses
+entryRuleConcurrentClauses returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getConcurrentClausesRule()); }
+ iv_ruleConcurrentClauses=ruleConcurrentClauses
+ { $current=$iv_ruleConcurrentClauses.current; }
+ EOF
+;
+
+// Rule ConcurrentClauses
+ruleConcurrentClauses returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getConcurrentClausesAccess().getNonFinalClauseNonFinalClauseParserRuleCall_0_0());
+ }
+ lv_nonFinalClause_0_0=ruleNonFinalClause {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getConcurrentClausesRule());
+ }
+ add(
+ $current,
+ "nonFinalClause",
+ lv_nonFinalClause_0_0,
+ "NonFinalClause");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_1='or'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getConcurrentClausesAccess().getOrKeyword_1_0());
+ }
+ otherlv_2='if'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getConcurrentClausesAccess().getIfKeyword_1_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getConcurrentClausesAccess().getNonFinalClauseNonFinalClauseParserRuleCall_1_2_0());
+ }
+ lv_nonFinalClause_3_0=ruleNonFinalClause {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getConcurrentClausesRule());
+ }
+ add(
+ $current,
+ "nonFinalClause",
+ lv_nonFinalClause_3_0,
+ "NonFinalClause");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleNonFinalClause
+entryRuleNonFinalClause returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getNonFinalClauseRule()); }
+ iv_ruleNonFinalClause=ruleNonFinalClause
+ { $current=$iv_ruleNonFinalClause.current; }
+ EOF
+;
+
+// Rule NonFinalClause
+ruleNonFinalClause returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='('
+ {
+ newLeafNode(otherlv_0, grammarAccess.getNonFinalClauseAccess().getLeftParenthesisKeyword_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getNonFinalClauseAccess().getConditionExpressionParserRuleCall_1_0());
+ }
+ lv_condition_1_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getNonFinalClauseRule());
+ }
+ set(
+ $current,
+ "condition",
+ lv_condition_1_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_2=')'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getNonFinalClauseAccess().getRightParenthesisKeyword_2());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getNonFinalClauseAccess().getBlockBlockParserRuleCall_3_0());
+ }
+ lv_block_3_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getNonFinalClauseRule());
+ }
+ set(
+ $current,
+ "block",
+ lv_block_3_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleFinalClause
+entryRuleFinalClause returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getFinalClauseRule()); }
+ iv_ruleFinalClause=ruleFinalClause
+ { $current=$iv_ruleFinalClause.current; }
+ EOF
+;
+
+// Rule FinalClause
+ruleFinalClause returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='else'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getFinalClauseAccess().getElseKeyword_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getFinalClauseAccess().getBlockBlockParserRuleCall_1_0());
+ }
+ lv_block_1_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getFinalClauseRule());
+ }
+ set(
+ $current,
+ "block",
+ lv_block_1_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleSwitchStatement
+entryRuleSwitchStatement returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getSwitchStatementRule()); }
+ iv_ruleSwitchStatement=ruleSwitchStatement
+ { $current=$iv_ruleSwitchStatement.current; }
+ EOF
+;
+
+// Rule SwitchStatement
+ruleSwitchStatement returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='switch'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getSwitchStatementAccess().getSwitchKeyword_0());
+ }
+ otherlv_1='('
+ {
+ newLeafNode(otherlv_1, grammarAccess.getSwitchStatementAccess().getLeftParenthesisKeyword_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getSwitchStatementAccess().getExpressionExpressionParserRuleCall_2_0());
+ }
+ lv_expression_2_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSwitchStatementRule());
+ }
+ set(
+ $current,
+ "expression",
+ lv_expression_2_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_3=')'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getSwitchStatementAccess().getRightParenthesisKeyword_3());
+ }
+ otherlv_4='{'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getSwitchStatementAccess().getLeftCurlyBracketKeyword_4());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getSwitchStatementAccess().getSwitchClauseSwitchClauseParserRuleCall_5_0());
+ }
+ lv_switchClause_5_0=ruleSwitchClause {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSwitchStatementRule());
+ }
+ add(
+ $current,
+ "switchClause",
+ lv_switchClause_5_0,
+ "SwitchClause");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)*(
+(
+ {
+ newCompositeNode(grammarAccess.getSwitchStatementAccess().getDefaultClauseSwitchDefaultClauseParserRuleCall_6_0());
+ }
+ lv_defaultClause_6_0=ruleSwitchDefaultClause {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSwitchStatementRule());
+ }
+ set(
+ $current,
+ "defaultClause",
+ lv_defaultClause_6_0,
+ "SwitchDefaultClause");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)? otherlv_7='}'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getSwitchStatementAccess().getRightCurlyBracketKeyword_7());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleSwitchClause
+entryRuleSwitchClause returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getSwitchClauseRule()); }
+ iv_ruleSwitchClause=ruleSwitchClause
+ { $current=$iv_ruleSwitchClause.current; }
+ EOF
+;
+
+// Rule SwitchClause
+ruleSwitchClause returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getSwitchClauseAccess().getSwitchCaseSwitchCaseParserRuleCall_0_0());
+ }
+ lv_switchCase_0_0=ruleSwitchCase {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSwitchClauseRule());
+ }
+ add(
+ $current,
+ "switchCase",
+ lv_switchCase_0_0,
+ "SwitchCase");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getSwitchClauseAccess().getSwitchCaseSwitchCaseParserRuleCall_1_0());
+ }
+ lv_switchCase_1_0=ruleSwitchCase {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSwitchClauseRule());
+ }
+ add(
+ $current,
+ "switchCase",
+ lv_switchCase_1_0,
+ "SwitchCase");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)*(
+(
+ {
+ newCompositeNode(grammarAccess.getSwitchClauseAccess().getStatementSequenceNonEmptyStatementSequenceParserRuleCall_2_0());
+ }
+ lv_statementSequence_2_0=ruleNonEmptyStatementSequence {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSwitchClauseRule());
+ }
+ set(
+ $current,
+ "statementSequence",
+ lv_statementSequence_2_0,
+ "NonEmptyStatementSequence");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleSwitchCase
+entryRuleSwitchCase returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getSwitchCaseRule()); }
+ iv_ruleSwitchCase=ruleSwitchCase
+ { $current=$iv_ruleSwitchCase.current; }
+ EOF
+;
+
+// Rule SwitchCase
+ruleSwitchCase returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='case'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getSwitchCaseAccess().getCaseKeyword_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getSwitchCaseAccess().getExpressionExpressionParserRuleCall_1_0());
+ }
+ lv_expression_1_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSwitchCaseRule());
+ }
+ set(
+ $current,
+ "expression",
+ lv_expression_1_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_2=':'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getSwitchCaseAccess().getColonKeyword_2());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleSwitchDefaultClause
+entryRuleSwitchDefaultClause returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getSwitchDefaultClauseRule()); }
+ iv_ruleSwitchDefaultClause=ruleSwitchDefaultClause
+ { $current=$iv_ruleSwitchDefaultClause.current; }
+ EOF
+;
+
+// Rule SwitchDefaultClause
+ruleSwitchDefaultClause returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='default'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getSwitchDefaultClauseAccess().getDefaultKeyword_0());
+ }
+ otherlv_1=':'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getSwitchDefaultClauseAccess().getColonKeyword_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getSwitchDefaultClauseAccess().getStatementSequenceNonEmptyStatementSequenceParserRuleCall_2_0());
+ }
+ lv_statementSequence_2_0=ruleNonEmptyStatementSequence {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSwitchDefaultClauseRule());
+ }
+ set(
+ $current,
+ "statementSequence",
+ lv_statementSequence_2_0,
+ "NonEmptyStatementSequence");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleNonEmptyStatementSequence
+entryRuleNonEmptyStatementSequence returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getNonEmptyStatementSequenceRule()); }
+ iv_ruleNonEmptyStatementSequence=ruleNonEmptyStatementSequence
+ { $current=$iv_ruleNonEmptyStatementSequence.current; }
+ EOF
+;
+
+// Rule NonEmptyStatementSequence
+ruleNonEmptyStatementSequence returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+(
+ {
+ newCompositeNode(grammarAccess.getNonEmptyStatementSequenceAccess().getStatementDocumentedStatementParserRuleCall_0());
+ }
+ lv_statement_0_0=ruleDocumentedStatement {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getNonEmptyStatementSequenceRule());
+ }
+ add(
+ $current,
+ "statement",
+ lv_statement_0_0,
+ "DocumentedStatement");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)+
+;
+
+
+
+
+
+// Entry rule entryRuleWhileStatement
+entryRuleWhileStatement returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getWhileStatementRule()); }
+ iv_ruleWhileStatement=ruleWhileStatement
+ { $current=$iv_ruleWhileStatement.current; }
+ EOF
+;
+
+// Rule WhileStatement
+ruleWhileStatement returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='while'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getWhileStatementAccess().getWhileKeyword_0());
+ }
+ otherlv_1='('
+ {
+ newLeafNode(otherlv_1, grammarAccess.getWhileStatementAccess().getLeftParenthesisKeyword_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getWhileStatementAccess().getConditionExpressionParserRuleCall_2_0());
+ }
+ lv_condition_2_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getWhileStatementRule());
+ }
+ set(
+ $current,
+ "condition",
+ lv_condition_2_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_3=')'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getWhileStatementAccess().getRightParenthesisKeyword_3());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getWhileStatementAccess().getBlockBlockParserRuleCall_4_0());
+ }
+ lv_block_4_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getWhileStatementRule());
+ }
+ set(
+ $current,
+ "block",
+ lv_block_4_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleDoStatement
+entryRuleDoStatement returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getDoStatementRule()); }
+ iv_ruleDoStatement=ruleDoStatement
+ { $current=$iv_ruleDoStatement.current; }
+ EOF
+;
+
+// Rule DoStatement
+ruleDoStatement returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='do'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getDoStatementAccess().getDoKeyword_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getDoStatementAccess().getBlockBlockParserRuleCall_1_0());
+ }
+ lv_block_1_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getDoStatementRule());
+ }
+ set(
+ $current,
+ "block",
+ lv_block_1_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_2='while'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getDoStatementAccess().getWhileKeyword_2());
+ }
+ otherlv_3='('
+ {
+ newLeafNode(otherlv_3, grammarAccess.getDoStatementAccess().getLeftParenthesisKeyword_3());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getDoStatementAccess().getConditionExpressionParserRuleCall_4_0());
+ }
+ lv_condition_4_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getDoStatementRule());
+ }
+ set(
+ $current,
+ "condition",
+ lv_condition_4_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_5=')'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getDoStatementAccess().getRightParenthesisKeyword_5());
+ }
+ otherlv_6=';'
+ {
+ newLeafNode(otherlv_6, grammarAccess.getDoStatementAccess().getSemicolonKeyword_6());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleForStatement
+entryRuleForStatement returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getForStatementRule()); }
+ iv_ruleForStatement=ruleForStatement
+ { $current=$iv_ruleForStatement.current; }
+ EOF
+;
+
+// Rule ForStatement
+ruleForStatement returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='for'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getForStatementAccess().getForKeyword_0());
+ }
+ otherlv_1='('
+ {
+ newLeafNode(otherlv_1, grammarAccess.getForStatementAccess().getLeftParenthesisKeyword_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getForStatementAccess().getControlForControlParserRuleCall_2_0());
+ }
+ lv_control_2_0=ruleForControl {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getForStatementRule());
+ }
+ set(
+ $current,
+ "control",
+ lv_control_2_0,
+ "ForControl");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_3=')'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getForStatementAccess().getRightParenthesisKeyword_3());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getForStatementAccess().getBlockBlockParserRuleCall_4_0());
+ }
+ lv_block_4_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getForStatementRule());
+ }
+ set(
+ $current,
+ "block",
+ lv_block_4_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleForControl
+entryRuleForControl returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getForControlRule()); }
+ iv_ruleForControl=ruleForControl
+ { $current=$iv_ruleForControl.current; }
+ EOF
+;
+
+// Rule ForControl
+ruleForControl returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getForControlAccess().getLoopVariableDefinitionLoopVariableDefinitionParserRuleCall_0_0());
+ }
+ lv_loopVariableDefinition_0_0=ruleLoopVariableDefinition {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getForControlRule());
+ }
+ add(
+ $current,
+ "loopVariableDefinition",
+ lv_loopVariableDefinition_0_0,
+ "LoopVariableDefinition");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_1=','
+ {
+ newLeafNode(otherlv_1, grammarAccess.getForControlAccess().getCommaKeyword_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getForControlAccess().getLoopVariableDefinitionLoopVariableDefinitionParserRuleCall_1_1_0());
+ }
+ lv_loopVariableDefinition_2_0=ruleLoopVariableDefinition {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getForControlRule());
+ }
+ add(
+ $current,
+ "loopVariableDefinition",
+ lv_loopVariableDefinition_2_0,
+ "LoopVariableDefinition");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleLoopVariableDefinition
+entryRuleLoopVariableDefinition returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getLoopVariableDefinitionRule()); }
+ iv_ruleLoopVariableDefinition=ruleLoopVariableDefinition
+ { $current=$iv_ruleLoopVariableDefinition.current; }
+ EOF
+;
+
+// Rule LoopVariableDefinition
+ruleLoopVariableDefinition returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(((
+(
+ lv_name_0_0=RULE_ID
+ {
+ newLeafNode(lv_name_0_0, grammarAccess.getLoopVariableDefinitionAccess().getNameIDTerminalRuleCall_0_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getLoopVariableDefinitionRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "name",
+ lv_name_0_0,
+ "ID");
+ }
+
+)
+) otherlv_1='in'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getLoopVariableDefinitionAccess().getInKeyword_0_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getLoopVariableDefinitionAccess().getExpression1ExpressionParserRuleCall_0_2_0());
+ }
+ lv_expression1_2_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLoopVariableDefinitionRule());
+ }
+ set(
+ $current,
+ "expression1",
+ lv_expression1_2_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_3='..'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getLoopVariableDefinitionAccess().getFullStopFullStopKeyword_0_3_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getLoopVariableDefinitionAccess().getExpression2ExpressionParserRuleCall_0_3_1_0());
+ }
+ lv_expression2_4_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLoopVariableDefinitionRule());
+ }
+ set(
+ $current,
+ "expression2",
+ lv_expression2_4_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?)
+ |((
+(
+ {
+ newCompositeNode(grammarAccess.getLoopVariableDefinitionAccess().getTypeQualifiedNameWithBindingParserRuleCall_1_0_0());
+ }
+ lv_type_5_0=ruleQualifiedNameWithBinding {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLoopVariableDefinitionRule());
+ }
+ set(
+ $current,
+ "type",
+ lv_type_5_0,
+ "QualifiedNameWithBinding");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ lv_name_6_0=RULE_ID
+ {
+ newLeafNode(lv_name_6_0, grammarAccess.getLoopVariableDefinitionAccess().getNameIDTerminalRuleCall_1_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getLoopVariableDefinitionRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "name",
+ lv_name_6_0,
+ "ID");
+ }
+
+)
+) otherlv_7=':'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getLoopVariableDefinitionAccess().getColonKeyword_1_2());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getLoopVariableDefinitionAccess().getExpressionExpressionParserRuleCall_1_3_0());
+ }
+ lv_expression_8_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLoopVariableDefinitionRule());
+ }
+ set(
+ $current,
+ "expression",
+ lv_expression_8_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)))
+;
+
+
+
+
+
+// Entry rule entryRuleBreakStatement
+entryRuleBreakStatement returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getBreakStatementRule()); }
+ iv_ruleBreakStatement=ruleBreakStatement
+ { $current=$iv_ruleBreakStatement.current; }
+ EOF
+;
+
+// Rule BreakStatement
+ruleBreakStatement returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getBreakStatementAccess().getBreakStatementAction_0(),
+ $current);
+ }
+) otherlv_1='break'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getBreakStatementAccess().getBreakKeyword_1());
+ }
+ otherlv_2=';'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getBreakStatementAccess().getSemicolonKeyword_2());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleReturnStatement
+entryRuleReturnStatement returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getReturnStatementRule()); }
+ iv_ruleReturnStatement=ruleReturnStatement
+ { $current=$iv_ruleReturnStatement.current; }
+ EOF
+;
+
+// Rule ReturnStatement
+ruleReturnStatement returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='return'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getReturnStatementAccess().getReturnKeyword_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getReturnStatementAccess().getExpressionExpressionParserRuleCall_1_0());
+ }
+ lv_expression_1_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getReturnStatementRule());
+ }
+ set(
+ $current,
+ "expression",
+ lv_expression_1_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_2=';'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getReturnStatementAccess().getSemicolonKeyword_2());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleAcceptStatement
+entryRuleAcceptStatement returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getAcceptStatementRule()); }
+ iv_ruleAcceptStatement=ruleAcceptStatement
+ { $current=$iv_ruleAcceptStatement.current; }
+ EOF
+;
+
+// Rule AcceptStatement
+ruleAcceptStatement returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getAcceptStatementAccess().getClauseAcceptClauseParserRuleCall_0_0());
+ }
+ lv_clause_0_0=ruleAcceptClause {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAcceptStatementRule());
+ }
+ set(
+ $current,
+ "clause",
+ lv_clause_0_0,
+ "AcceptClause");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)((
+(
+ {
+ newCompositeNode(grammarAccess.getAcceptStatementAccess().getSimpleAcceptSimpleAcceptStatementCompletionParserRuleCall_1_0_0());
+ }
+ lv_simpleAccept_1_0=ruleSimpleAcceptStatementCompletion {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAcceptStatementRule());
+ }
+ set(
+ $current,
+ "simpleAccept",
+ lv_simpleAccept_1_0,
+ "SimpleAcceptStatementCompletion");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+ |(
+(
+ {
+ newCompositeNode(grammarAccess.getAcceptStatementAccess().getCompoundAcceptCompoundAcceptStatementCompletionParserRuleCall_1_1_0());
+ }
+ lv_compoundAccept_2_0=ruleCompoundAcceptStatementCompletion {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAcceptStatementRule());
+ }
+ set(
+ $current,
+ "compoundAccept",
+ lv_compoundAccept_2_0,
+ "CompoundAcceptStatementCompletion");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)))
+;
+
+
+
+
+
+// Entry rule entryRuleSimpleAcceptStatementCompletion
+entryRuleSimpleAcceptStatementCompletion returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getSimpleAcceptStatementCompletionRule()); }
+ iv_ruleSimpleAcceptStatementCompletion=ruleSimpleAcceptStatementCompletion
+ { $current=$iv_ruleSimpleAcceptStatementCompletion.current; }
+ EOF
+;
+
+// Rule SimpleAcceptStatementCompletion
+ruleSimpleAcceptStatementCompletion returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getSimpleAcceptStatementCompletionAccess().getSimpleAcceptStatementCompletionAction_0(),
+ $current);
+ }
+) otherlv_1=';'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getSimpleAcceptStatementCompletionAccess().getSemicolonKeyword_1());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleCompoundAcceptStatementCompletion
+entryRuleCompoundAcceptStatementCompletion returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getCompoundAcceptStatementCompletionRule()); }
+ iv_ruleCompoundAcceptStatementCompletion=ruleCompoundAcceptStatementCompletion
+ { $current=$iv_ruleCompoundAcceptStatementCompletion.current; }
+ EOF
+;
+
+// Rule CompoundAcceptStatementCompletion
+ruleCompoundAcceptStatementCompletion returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getCompoundAcceptStatementCompletionAccess().getBlockBlockParserRuleCall_0_0());
+ }
+ lv_block_0_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCompoundAcceptStatementCompletionRule());
+ }
+ set(
+ $current,
+ "block",
+ lv_block_0_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_1='or'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getCompoundAcceptStatementCompletionAccess().getOrKeyword_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getCompoundAcceptStatementCompletionAccess().getAcceptBlockAcceptBlockParserRuleCall_1_1_0());
+ }
+ lv_acceptBlock_2_0=ruleAcceptBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCompoundAcceptStatementCompletionRule());
+ }
+ add(
+ $current,
+ "acceptBlock",
+ lv_acceptBlock_2_0,
+ "AcceptBlock");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleAcceptBlock
+entryRuleAcceptBlock returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getAcceptBlockRule()); }
+ iv_ruleAcceptBlock=ruleAcceptBlock
+ { $current=$iv_ruleAcceptBlock.current; }
+ EOF
+;
+
+// Rule AcceptBlock
+ruleAcceptBlock returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getAcceptBlockAccess().getClauseAcceptClauseParserRuleCall_0_0());
+ }
+ lv_clause_0_0=ruleAcceptClause {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAcceptBlockRule());
+ }
+ set(
+ $current,
+ "clause",
+ lv_clause_0_0,
+ "AcceptClause");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getAcceptBlockAccess().getBlockBlockParserRuleCall_1_0());
+ }
+ lv_block_1_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAcceptBlockRule());
+ }
+ set(
+ $current,
+ "block",
+ lv_block_1_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleAcceptClause
+entryRuleAcceptClause returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getAcceptClauseRule()); }
+ iv_ruleAcceptClause=ruleAcceptClause
+ { $current=$iv_ruleAcceptClause.current; }
+ EOF
+;
+
+// Rule AcceptClause
+ruleAcceptClause returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='accept'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getAcceptClauseAccess().getAcceptKeyword_0());
+ }
+ otherlv_1='('
+ {
+ newLeafNode(otherlv_1, grammarAccess.getAcceptClauseAccess().getLeftParenthesisKeyword_1());
+ }
+((
+(
+ lv_name_2_0=RULE_ID
+ {
+ newLeafNode(lv_name_2_0, grammarAccess.getAcceptClauseAccess().getNameIDTerminalRuleCall_2_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getAcceptClauseRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "name",
+ lv_name_2_0,
+ "ID");
+ }
+
+)
+) otherlv_3=':'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getAcceptClauseAccess().getColonKeyword_2_1());
+ }
+)?(
+(
+ {
+ newCompositeNode(grammarAccess.getAcceptClauseAccess().getQualifiedNameListQualifiedNameListParserRuleCall_3_0());
+ }
+ lv_qualifiedNameList_4_0=ruleQualifiedNameList {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAcceptClauseRule());
+ }
+ set(
+ $current,
+ "qualifiedNameList",
+ lv_qualifiedNameList_4_0,
+ "QualifiedNameList");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_5=')'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getAcceptClauseAccess().getRightParenthesisKeyword_4());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleClassifyStatement
+entryRuleClassifyStatement returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getClassifyStatementRule()); }
+ iv_ruleClassifyStatement=ruleClassifyStatement
+ { $current=$iv_ruleClassifyStatement.current; }
+ EOF
+;
+
+// Rule ClassifyStatement
+ruleClassifyStatement returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='classify'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getClassifyStatementAccess().getClassifyKeyword_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getClassifyStatementAccess().getExpressionExpressionParserRuleCall_1_0());
+ }
+ lv_expression_1_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getClassifyStatementRule());
+ }
+ set(
+ $current,
+ "expression",
+ lv_expression_1_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getClassifyStatementAccess().getClauseClassificationClauseParserRuleCall_2_0());
+ }
+ lv_clause_2_0=ruleClassificationClause {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getClassifyStatementRule());
+ }
+ set(
+ $current,
+ "clause",
+ lv_clause_2_0,
+ "ClassificationClause");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_3=';'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getClassifyStatementAccess().getSemicolonKeyword_3());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleClassificationClause
+entryRuleClassificationClause returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getClassificationClauseRule()); }
+ iv_ruleClassificationClause=ruleClassificationClause
+ { $current=$iv_ruleClassificationClause.current; }
+ EOF
+;
+
+// Rule ClassificationClause
+ruleClassificationClause returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(((
+(
+ {
+ newCompositeNode(grammarAccess.getClassificationClauseAccess().getClassifyFromClauseClassificationFromClauseParserRuleCall_0_0_0());
+ }
+ lv_classifyFromClause_0_0=ruleClassificationFromClause {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getClassificationClauseRule());
+ }
+ set(
+ $current,
+ "classifyFromClause",
+ lv_classifyFromClause_0_0,
+ "ClassificationFromClause");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getClassificationClauseAccess().getClassifyToClauseClassificationToClauseParserRuleCall_0_1_0());
+ }
+ lv_classifyToClause_1_0=ruleClassificationToClause {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getClassificationClauseRule());
+ }
+ set(
+ $current,
+ "classifyToClause",
+ lv_classifyToClause_1_0,
+ "ClassificationToClause");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?)
+ |((
+(
+ {
+ newCompositeNode(grammarAccess.getClassificationClauseAccess().getReclassyAllClauseReclassifyAllClauseParserRuleCall_1_0_0());
+ }
+ lv_reclassyAllClause_2_0=ruleReclassifyAllClause {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getClassificationClauseRule());
+ }
+ set(
+ $current,
+ "reclassyAllClause",
+ lv_reclassyAllClause_2_0,
+ "ReclassifyAllClause");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?(
+(
+ {
+ newCompositeNode(grammarAccess.getClassificationClauseAccess().getClassifyToClauseClassificationToClauseParserRuleCall_1_1_0());
+ }
+ lv_classifyToClause_3_0=ruleClassificationToClause {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getClassificationClauseRule());
+ }
+ set(
+ $current,
+ "classifyToClause",
+ lv_classifyToClause_3_0,
+ "ClassificationToClause");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)))
+;
+
+
+
+
+
+// Entry rule entryRuleClassificationFromClause
+entryRuleClassificationFromClause returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getClassificationFromClauseRule()); }
+ iv_ruleClassificationFromClause=ruleClassificationFromClause
+ { $current=$iv_ruleClassificationFromClause.current; }
+ EOF
+;
+
+// Rule ClassificationFromClause
+ruleClassificationFromClause returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='from'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getClassificationFromClauseAccess().getFromKeyword_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getClassificationFromClauseAccess().getQualifiedNameListQualifiedNameListParserRuleCall_1_0());
+ }
+ lv_qualifiedNameList_1_0=ruleQualifiedNameList {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getClassificationFromClauseRule());
+ }
+ set(
+ $current,
+ "qualifiedNameList",
+ lv_qualifiedNameList_1_0,
+ "QualifiedNameList");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleClassificationToClause
+entryRuleClassificationToClause returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getClassificationToClauseRule()); }
+ iv_ruleClassificationToClause=ruleClassificationToClause
+ { $current=$iv_ruleClassificationToClause.current; }
+ EOF
+;
+
+// Rule ClassificationToClause
+ruleClassificationToClause returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='to'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getClassificationToClauseAccess().getToKeyword_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getClassificationToClauseAccess().getQualifiedNameListQualifiedNameListParserRuleCall_1_0());
+ }
+ lv_qualifiedNameList_1_0=ruleQualifiedNameList {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getClassificationToClauseRule());
+ }
+ set(
+ $current,
+ "qualifiedNameList",
+ lv_qualifiedNameList_1_0,
+ "QualifiedNameList");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleReclassifyAllClause
+entryRuleReclassifyAllClause returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getReclassifyAllClauseRule()); }
+ iv_ruleReclassifyAllClause=ruleReclassifyAllClause
+ { $current=$iv_ruleReclassifyAllClause.current; }
+ EOF
+;
+
+// Rule ReclassifyAllClause
+ruleReclassifyAllClause returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getReclassifyAllClauseAccess().getReclassifyAllClauseAction_0(),
+ $current);
+ }
+) otherlv_1='from'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getReclassifyAllClauseAccess().getFromKeyword_1());
+ }
+ otherlv_2='*'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getReclassifyAllClauseAccess().getAsteriskKeyword_2());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleQualifiedNameList
+entryRuleQualifiedNameList returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getQualifiedNameListRule()); }
+ iv_ruleQualifiedNameList=ruleQualifiedNameList
+ { $current=$iv_ruleQualifiedNameList.current; }
+ EOF
+;
+
+// Rule QualifiedNameList
+ruleQualifiedNameList returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getQualifiedNameListAccess().getQualifiedNameQualifiedNameWithBindingParserRuleCall_0_0());
+ }
+ lv_qualifiedName_0_0=ruleQualifiedNameWithBinding {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getQualifiedNameListRule());
+ }
+ add(
+ $current,
+ "qualifiedName",
+ lv_qualifiedName_0_0,
+ "QualifiedNameWithBinding");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_1=','
+ {
+ newLeafNode(otherlv_1, grammarAccess.getQualifiedNameListAccess().getCommaKeyword_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getQualifiedNameListAccess().getQualifiedNameQualifiedNameWithBindingParserRuleCall_1_1_0());
+ }
+ lv_qualifiedName_2_0=ruleQualifiedNameWithBinding {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getQualifiedNameListRule());
+ }
+ add(
+ $current,
+ "qualifiedName",
+ lv_qualifiedName_2_0,
+ "QualifiedNameWithBinding");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleInvocationOrAssignementOrDeclarationStatement
+entryRuleInvocationOrAssignementOrDeclarationStatement returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getInvocationOrAssignementOrDeclarationStatementRule()); }
+ iv_ruleInvocationOrAssignementOrDeclarationStatement=ruleInvocationOrAssignementOrDeclarationStatement
+ { $current=$iv_ruleInvocationOrAssignementOrDeclarationStatement.current; }
+ EOF
+;
+
+// Rule InvocationOrAssignementOrDeclarationStatement
+ruleInvocationOrAssignementOrDeclarationStatement returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getInvocationOrAssignementOrDeclarationStatementAccess().getTypePart_OR_assignedPart_OR_invocationPartNameExpressionParserRuleCall_0_0());
+ }
+ lv_typePart_OR_assignedPart_OR_invocationPart_0_0=ruleNameExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getInvocationOrAssignementOrDeclarationStatementRule());
+ }
+ set(
+ $current,
+ "typePart_OR_assignedPart_OR_invocationPart",
+ lv_typePart_OR_assignedPart_OR_invocationPart_0_0,
+ "NameExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)((
+(
+ {
+ newCompositeNode(grammarAccess.getInvocationOrAssignementOrDeclarationStatementAccess().getVariableDeclarationCompletionVariableDeclarationCompletionParserRuleCall_1_0_0());
+ }
+ lv_variableDeclarationCompletion_1_0=ruleVariableDeclarationCompletion {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getInvocationOrAssignementOrDeclarationStatementRule());
+ }
+ set(
+ $current,
+ "variableDeclarationCompletion",
+ lv_variableDeclarationCompletion_1_0,
+ "VariableDeclarationCompletion");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+ |(
+(
+ {
+ newCompositeNode(grammarAccess.getInvocationOrAssignementOrDeclarationStatementAccess().getAssignmentCompletionAssignmentCompletionParserRuleCall_1_1_0());
+ }
+ lv_assignmentCompletion_2_0=ruleAssignmentCompletion {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getInvocationOrAssignementOrDeclarationStatementRule());
+ }
+ set(
+ $current,
+ "assignmentCompletion",
+ lv_assignmentCompletion_2_0,
+ "AssignmentCompletion");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))? otherlv_3=';'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getInvocationOrAssignementOrDeclarationStatementAccess().getSemicolonKeyword_2());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleSuperInvocationStatement
+entryRuleSuperInvocationStatement returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getSuperInvocationStatementRule()); }
+ iv_ruleSuperInvocationStatement=ruleSuperInvocationStatement
+ { $current=$iv_ruleSuperInvocationStatement.current; }
+ EOF
+;
+
+// Rule SuperInvocationStatement
+ruleSuperInvocationStatement returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getSuperInvocationStatementAccess().get_superSuperInvocationExpressionParserRuleCall_0_0());
+ }
+ lv__super_0_0=ruleSuperInvocationExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSuperInvocationStatementRule());
+ }
+ set(
+ $current,
+ "_super",
+ lv__super_0_0,
+ "SuperInvocationExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_1=';'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getSuperInvocationStatementAccess().getSemicolonKeyword_1());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleThisInvocationStatement
+entryRuleThisInvocationStatement returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getThisInvocationStatementRule()); }
+ iv_ruleThisInvocationStatement=ruleThisInvocationStatement
+ { $current=$iv_ruleThisInvocationStatement.current; }
+ EOF
+;
+
+// Rule ThisInvocationStatement
+ruleThisInvocationStatement returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getThisInvocationStatementAccess().get_thisThisExpressionParserRuleCall_0_0());
+ }
+ lv__this_0_0=ruleThisExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getThisInvocationStatementRule());
+ }
+ set(
+ $current,
+ "_this",
+ lv__this_0_0,
+ "ThisExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getThisInvocationStatementAccess().getAssignmentCompletionAssignmentCompletionParserRuleCall_1_0());
+ }
+ lv_assignmentCompletion_1_0=ruleAssignmentCompletion {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getThisInvocationStatementRule());
+ }
+ set(
+ $current,
+ "assignmentCompletion",
+ lv_assignmentCompletion_1_0,
+ "AssignmentCompletion");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)? otherlv_2=';'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getThisInvocationStatementAccess().getSemicolonKeyword_2());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleInstanceCreationInvocationStatement
+entryRuleInstanceCreationInvocationStatement returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getInstanceCreationInvocationStatementRule()); }
+ iv_ruleInstanceCreationInvocationStatement=ruleInstanceCreationInvocationStatement
+ { $current=$iv_ruleInstanceCreationInvocationStatement.current; }
+ EOF
+;
+
+// Rule InstanceCreationInvocationStatement
+ruleInstanceCreationInvocationStatement returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getInstanceCreationInvocationStatementAccess().get_newInstanceCreationExpressionParserRuleCall_0_0());
+ }
+ lv__new_0_0=ruleInstanceCreationExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getInstanceCreationInvocationStatementRule());
+ }
+ set(
+ $current,
+ "_new",
+ lv__new_0_0,
+ "InstanceCreationExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_1=';'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getInstanceCreationInvocationStatementAccess().getSemicolonKeyword_1());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleVariableDeclarationCompletion
+entryRuleVariableDeclarationCompletion returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getVariableDeclarationCompletionRule()); }
+ iv_ruleVariableDeclarationCompletion=ruleVariableDeclarationCompletion
+ { $current=$iv_ruleVariableDeclarationCompletion.current; }
+ EOF
+;
+
+// Rule VariableDeclarationCompletion
+ruleVariableDeclarationCompletion returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(((
+(
+ lv_multiplicityIndicator_0_0= '['
+ {
+ newLeafNode(lv_multiplicityIndicator_0_0, grammarAccess.getVariableDeclarationCompletionAccess().getMultiplicityIndicatorLeftSquareBracketKeyword_0_0_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getVariableDeclarationCompletionRule());
+ }
+ setWithLastConsumed($current, "multiplicityIndicator", true, "[");
+ }
+
+)
+) otherlv_1=']'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getVariableDeclarationCompletionAccess().getRightSquareBracketKeyword_0_1());
+ }
+)?(
+(
+ lv_variableName_2_0=RULE_ID
+ {
+ newLeafNode(lv_variableName_2_0, grammarAccess.getVariableDeclarationCompletionAccess().getVariableNameIDTerminalRuleCall_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getVariableDeclarationCompletionRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "variableName",
+ lv_variableName_2_0,
+ "ID");
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getVariableDeclarationCompletionAccess().getInitValueAssignmentCompletionParserRuleCall_2_0());
+ }
+ lv_initValue_3_0=ruleAssignmentCompletion {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getVariableDeclarationCompletionRule());
+ }
+ set(
+ $current,
+ "initValue",
+ lv_initValue_3_0,
+ "AssignmentCompletion");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleAssignmentCompletion
+entryRuleAssignmentCompletion returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getAssignmentCompletionRule()); }
+ iv_ruleAssignmentCompletion=ruleAssignmentCompletion
+ { $current=$iv_ruleAssignmentCompletion.current; }
+ EOF
+;
+
+// Rule AssignmentCompletion
+ruleAssignmentCompletion returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getAssignmentCompletionAccess().getOpAssignmentOperatorEnumRuleCall_0_0());
+ }
+ lv_op_0_0=ruleAssignmentOperator {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAssignmentCompletionRule());
+ }
+ set(
+ $current,
+ "op",
+ lv_op_0_0,
+ "AssignmentOperator");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getAssignmentCompletionAccess().getRightHandSideSequenceElementParserRuleCall_1_0());
+ }
+ lv_rightHandSide_1_0=ruleSequenceElement {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAssignmentCompletionRule());
+ }
+ set(
+ $current,
+ "rightHandSide",
+ lv_rightHandSide_1_0,
+ "SequenceElement");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Rule BooleanValue
+ruleBooleanValue returns [Enumerator current=null]
+ @init { enterRule(); }
+ @after { leaveRule(); }:
+(( enumLiteral_0='true'
+ {
+ $current = grammarAccess.getBooleanValueAccess().getTRUEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getBooleanValueAccess().getTRUEEnumLiteralDeclaration_0());
+ }
+)
+ |( enumLiteral_1='false'
+ {
+ $current = grammarAccess.getBooleanValueAccess().getFALSEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getBooleanValueAccess().getFALSEEnumLiteralDeclaration_1());
+ }
+));
+
+
+
+// Rule LinkOperationKind
+ruleLinkOperationKind returns [Enumerator current=null]
+ @init { enterRule(); }
+ @after { leaveRule(); }:
+(( enumLiteral_0='createLink'
+ {
+ $current = grammarAccess.getLinkOperationKindAccess().getCREATEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getLinkOperationKindAccess().getCREATEEnumLiteralDeclaration_0());
+ }
+)
+ |( enumLiteral_1='destroyLink'
+ {
+ $current = grammarAccess.getLinkOperationKindAccess().getDESTROYEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getLinkOperationKindAccess().getDESTROYEnumLiteralDeclaration_1());
+ }
+)
+ |( enumLiteral_2='clearAssoc'
+ {
+ $current = grammarAccess.getLinkOperationKindAccess().getCLEAREnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_2, grammarAccess.getLinkOperationKindAccess().getCLEAREnumLiteralDeclaration_2());
+ }
+));
+
+
+
+// Rule SelectOrRejectOperator
+ruleSelectOrRejectOperator returns [Enumerator current=null]
+ @init { enterRule(); }
+ @after { leaveRule(); }:
+(( enumLiteral_0='select'
+ {
+ $current = grammarAccess.getSelectOrRejectOperatorAccess().getSELECTEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getSelectOrRejectOperatorAccess().getSELECTEnumLiteralDeclaration_0());
+ }
+)
+ |( enumLiteral_1='reject'
+ {
+ $current = grammarAccess.getSelectOrRejectOperatorAccess().getREJECTEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getSelectOrRejectOperatorAccess().getREJECTEnumLiteralDeclaration_1());
+ }
+));
+
+
+
+// Rule CollectOrIterateOperator
+ruleCollectOrIterateOperator returns [Enumerator current=null]
+ @init { enterRule(); }
+ @after { leaveRule(); }:
+(( enumLiteral_0='collect'
+ {
+ $current = grammarAccess.getCollectOrIterateOperatorAccess().getCOLLECTEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getCollectOrIterateOperatorAccess().getCOLLECTEnumLiteralDeclaration_0());
+ }
+)
+ |( enumLiteral_1='iterate'
+ {
+ $current = grammarAccess.getCollectOrIterateOperatorAccess().getITERATEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getCollectOrIterateOperatorAccess().getITERATEEnumLiteralDeclaration_1());
+ }
+));
+
+
+
+// Rule ForAllOrExistsOrOneOperator
+ruleForAllOrExistsOrOneOperator returns [Enumerator current=null]
+ @init { enterRule(); }
+ @after { leaveRule(); }:
+(( enumLiteral_0='forAll'
+ {
+ $current = grammarAccess.getForAllOrExistsOrOneOperatorAccess().getFORALLEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getForAllOrExistsOrOneOperatorAccess().getFORALLEnumLiteralDeclaration_0());
+ }
+)
+ |( enumLiteral_1='exists'
+ {
+ $current = grammarAccess.getForAllOrExistsOrOneOperatorAccess().getEXISTSEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getForAllOrExistsOrOneOperatorAccess().getEXISTSEnumLiteralDeclaration_1());
+ }
+)
+ |( enumLiteral_2='one'
+ {
+ $current = grammarAccess.getForAllOrExistsOrOneOperatorAccess().getONEEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_2, grammarAccess.getForAllOrExistsOrOneOperatorAccess().getONEEnumLiteralDeclaration_2());
+ }
+));
+
+
+
+// Rule AnnotationKind
+ruleAnnotationKind returns [Enumerator current=null]
+ @init { enterRule(); }
+ @after { leaveRule(); }:
+(( enumLiteral_0='isolated'
+ {
+ $current = grammarAccess.getAnnotationKindAccess().getISOLATEDEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getAnnotationKindAccess().getISOLATEDEnumLiteralDeclaration_0());
+ }
+)
+ |( enumLiteral_1='determined'
+ {
+ $current = grammarAccess.getAnnotationKindAccess().getDETERMINEDEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getAnnotationKindAccess().getDETERMINEDEnumLiteralDeclaration_1());
+ }
+)
+ |( enumLiteral_2='assured'
+ {
+ $current = grammarAccess.getAnnotationKindAccess().getASSUREDEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_2, grammarAccess.getAnnotationKindAccess().getASSUREDEnumLiteralDeclaration_2());
+ }
+)
+ |( enumLiteral_3='parallel'
+ {
+ $current = grammarAccess.getAnnotationKindAccess().getPARALLELEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_3, grammarAccess.getAnnotationKindAccess().getPARALLELEnumLiteralDeclaration_3());
+ }
+));
+
+
+
+// Rule AssignmentOperator
+ruleAssignmentOperator returns [Enumerator current=null]
+ @init { enterRule(); }
+ @after { leaveRule(); }:
+(( enumLiteral_0='='
+ {
+ $current = grammarAccess.getAssignmentOperatorAccess().getASSIGNEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getAssignmentOperatorAccess().getASSIGNEnumLiteralDeclaration_0());
+ }
+)
+ |( enumLiteral_1='+='
+ {
+ $current = grammarAccess.getAssignmentOperatorAccess().getPLUSASSIGNEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getAssignmentOperatorAccess().getPLUSASSIGNEnumLiteralDeclaration_1());
+ }
+)
+ |( enumLiteral_2='-='
+ {
+ $current = grammarAccess.getAssignmentOperatorAccess().getMINUSASSIGNEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_2, grammarAccess.getAssignmentOperatorAccess().getMINUSASSIGNEnumLiteralDeclaration_2());
+ }
+)
+ |( enumLiteral_3='*='
+ {
+ $current = grammarAccess.getAssignmentOperatorAccess().getMULTASSIGNEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_3, grammarAccess.getAssignmentOperatorAccess().getMULTASSIGNEnumLiteralDeclaration_3());
+ }
+)
+ |( enumLiteral_4='%='
+ {
+ $current = grammarAccess.getAssignmentOperatorAccess().getMODASSIGNEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_4, grammarAccess.getAssignmentOperatorAccess().getMODASSIGNEnumLiteralDeclaration_4());
+ }
+)
+ |( enumLiteral_5='/='
+ {
+ $current = grammarAccess.getAssignmentOperatorAccess().getDIVASSIGNEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_5, grammarAccess.getAssignmentOperatorAccess().getDIVASSIGNEnumLiteralDeclaration_5());
+ }
+)
+ |( enumLiteral_6='&='
+ {
+ $current = grammarAccess.getAssignmentOperatorAccess().getANDASSIGNEnumLiteralDeclaration_6().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_6, grammarAccess.getAssignmentOperatorAccess().getANDASSIGNEnumLiteralDeclaration_6());
+ }
+)
+ |( enumLiteral_7='|='
+ {
+ $current = grammarAccess.getAssignmentOperatorAccess().getORASSIGNEnumLiteralDeclaration_7().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_7, grammarAccess.getAssignmentOperatorAccess().getORASSIGNEnumLiteralDeclaration_7());
+ }
+)
+ |( enumLiteral_8='^='
+ {
+ $current = grammarAccess.getAssignmentOperatorAccess().getXORASSIGNEnumLiteralDeclaration_8().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_8, grammarAccess.getAssignmentOperatorAccess().getXORASSIGNEnumLiteralDeclaration_8());
+ }
+)
+ |( enumLiteral_9='<<='
+ {
+ $current = grammarAccess.getAssignmentOperatorAccess().getLSHIFTASSIGNEnumLiteralDeclaration_9().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_9, grammarAccess.getAssignmentOperatorAccess().getLSHIFTASSIGNEnumLiteralDeclaration_9());
+ }
+)
+ |( enumLiteral_10='>>='
+ {
+ $current = grammarAccess.getAssignmentOperatorAccess().getRSHIFTASSIGNEnumLiteralDeclaration_10().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_10, grammarAccess.getAssignmentOperatorAccess().getRSHIFTASSIGNEnumLiteralDeclaration_10());
+ }
+)
+ |( enumLiteral_11='>>>='
+ {
+ $current = grammarAccess.getAssignmentOperatorAccess().getURSHIFTASSIGNEnumLiteralDeclaration_11().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_11, grammarAccess.getAssignmentOperatorAccess().getURSHIFTASSIGNEnumLiteralDeclaration_11());
+ }
+));
+
+
+
+RULE_INTEGERVALUE : (('0'|'1'..'9' ('_'? '0'..'9')*)|('0b'|'0B') '0'..'1' ('_'? '0'..'1')*|('0x'|'0X') ('0'..'9'|'a'..'f'|'A'..'F') ('_'? ('0'..'9'|'a'..'f'|'A'..'F'))*|'0' '_'? '0'..'7' ('_'? '0'..'7')*);
+
+RULE_ID : (('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*|'\'' ( options {greedy=false;} : . )*'\'');
+
+RULE_STRING : '"' ('\\' ('b'|'t'|'n'|'f'|'r'|'"'|'\''|'\\')|~(('\\'|'"')))* '"';
+
+RULE_ML_COMMENT : '/*' ~('@') ( options {greedy=false;} : . )*'*/';
+
+RULE_SL_COMMENT : '//' ~(('\n'|'\r'|'@'))* ('\r'? '\n')?;
+
+RULE_INT : ('0'..'9')+;
+
+RULE_WS : (' '|'\t'|'\r'|'\n')+;
+
+RULE_ANY_OTHER : .;
+
+
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.tokens b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.tokens
new file mode 100644
index 00000000000..9fba57bb622
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.tokens
@@ -0,0 +1,212 @@
+RULE_ID=6
+T__29=29
+T__28=28
+T__27=27
+T__26=26
+T__25=25
+T__24=24
+T__23=23
+T__22=22
+RULE_ANY_OTHER=11
+T__21=21
+T__20=20
+T__93=93
+T__19=19
+T__94=94
+T__91=91
+T__92=92
+T__16=16
+T__15=15
+T__90=90
+T__18=18
+T__17=17
+T__12=12
+T__14=14
+T__13=13
+T__99=99
+RULE_INTEGERVALUE=4
+T__98=98
+T__97=97
+T__96=96
+T__95=95
+T__80=80
+T__81=81
+T__82=82
+T__83=83
+T__85=85
+T__84=84
+T__87=87
+T__86=86
+T__89=89
+T__88=88
+RULE_ML_COMMENT=7
+RULE_STRING=5
+T__71=71
+T__72=72
+T__70=70
+T__76=76
+T__75=75
+T__74=74
+T__73=73
+T__79=79
+T__78=78
+T__77=77
+T__68=68
+T__69=69
+T__66=66
+T__67=67
+T__64=64
+T__65=65
+T__62=62
+T__63=63
+T__61=61
+T__60=60
+T__55=55
+T__56=56
+T__57=57
+T__58=58
+T__51=51
+T__52=52
+T__53=53
+T__54=54
+T__107=107
+T__108=108
+T__109=109
+T__103=103
+T__59=59
+T__104=104
+T__105=105
+T__106=106
+T__111=111
+T__110=110
+RULE_INT=9
+T__113=113
+T__112=112
+T__50=50
+T__42=42
+T__43=43
+T__40=40
+T__41=41
+T__46=46
+T__47=47
+T__44=44
+T__45=45
+T__48=48
+T__49=49
+T__102=102
+T__101=101
+T__100=100
+RULE_SL_COMMENT=8
+T__30=30
+T__31=31
+T__32=32
+T__33=33
+T__34=34
+T__35=35
+T__36=36
+T__37=37
+T__38=38
+T__39=39
+RULE_WS=10
+'>='=38
+'=='=33
+'iterate'=95
+'this'=57
+';'=68
+'return'=82
+'for'=79
+'/*@'=64
+'=>'=23
+'^'=31
+'>>'=40
+'parallel'=102
+'testExpression'=12
+'isolated'=99
+'{'=60
+'&='=108
+'('=24
+':'=27
+'default'=76
+'<<='=111
+']'=51
+'>>>'=41
+'testBlock'=15
+'ordered'=54
+'new'=59
+'|='=109
+'forAll'=96
+'='=70
+'destroyLink'=90
+'testStatement'=14
+'reduce'=53
+'collect'=94
+'isUnique'=55
+'->'=52
+'%'=45
+'super'=58
+'case'=75
+'reject'=93
+'<<'=39
+'<='=37
+'!='=34
+'<'=20
+'--'=18
+'createLink'=89
+'['=50
+'or'=73
+'//@'=67
+'&'=32
+'instanceof'=35
+'determined'=100
+'accept'=83
+'clearAssoc'=91
+'assured'=101
+'~'=48
+'/'=44
+'switch'=74
+'/='=107
+'%='=106
+'>'=22
+'exists'=97
+'||'=28
+'&&'=29
+'+'=42
+'.'=49
+'$'=47
+'++'=17
+'true'=87
+'else'=72
+'^='=110
+'let'=69
+'+='=103
+'break'=81
+'*/'=66
+'allInstances'=63
+'>>='=112
+'>>>='=113
+'?'=26
+'testAssignmentExpression'=13
+'if'=71
+'-'=43
+'while'=77
+','=21
+'in'=80
+'select'=92
+'-='=104
+'..'=61
+'!'=46
+'|'=30
+'null'=56
+'classify'=84
+'one'=98
+'::'=19
+'inline'=65
+')'=25
+'hastype'=36
+'*='=105
+'do'=78
+'}'=62
+'to'=86
+'false'=88
+'*'=16
+'from'=85
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlfLexer.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlfLexer.java
new file mode 100644
index 00000000000..d9188c962c1
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlfLexer.java
@@ -0,0 +1,4659 @@
+package org.eclipse.papyrus.alf.parser.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import.
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.parser.antlr.Lexer;
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalAlfLexer extends Lexer {
+ public static final int RULE_ID=6;
+ public static final int T__29=29;
+ public static final int T__28=28;
+ public static final int T__27=27;
+ public static final int T__26=26;
+ public static final int T__25=25;
+ public static final int T__24=24;
+ public static final int T__23=23;
+ public static final int T__22=22;
+ public static final int RULE_ANY_OTHER=11;
+ public static final int T__21=21;
+ public static final int T__20=20;
+ public static final int EOF=-1;
+ public static final int T__93=93;
+ public static final int T__19=19;
+ public static final int T__94=94;
+ public static final int T__91=91;
+ public static final int T__92=92;
+ public static final int T__16=16;
+ public static final int T__90=90;
+ public static final int T__15=15;
+ public static final int T__18=18;
+ public static final int T__17=17;
+ public static final int T__12=12;
+ public static final int T__14=14;
+ public static final int T__13=13;
+ public static final int T__99=99;
+ public static final int T__98=98;
+ public static final int RULE_INTEGERVALUE=4;
+ public static final int T__97=97;
+ public static final int T__96=96;
+ public static final int T__95=95;
+ public static final int T__80=80;
+ public static final int T__81=81;
+ public static final int T__82=82;
+ public static final int T__83=83;
+ public static final int T__85=85;
+ public static final int T__84=84;
+ public static final int T__87=87;
+ public static final int T__86=86;
+ public static final int T__89=89;
+ public static final int T__88=88;
+ public static final int RULE_ML_COMMENT=7;
+ public static final int RULE_STRING=5;
+ public static final int T__71=71;
+ public static final int T__72=72;
+ public static final int T__70=70;
+ public static final int T__76=76;
+ public static final int T__75=75;
+ public static final int T__74=74;
+ public static final int T__73=73;
+ public static final int T__79=79;
+ public static final int T__78=78;
+ public static final int T__77=77;
+ public static final int T__68=68;
+ public static final int T__69=69;
+ public static final int T__66=66;
+ public static final int T__67=67;
+ public static final int T__64=64;
+ public static final int T__65=65;
+ public static final int T__62=62;
+ public static final int T__63=63;
+ public static final int T__61=61;
+ public static final int T__60=60;
+ public static final int T__55=55;
+ public static final int T__56=56;
+ public static final int T__57=57;
+ public static final int T__58=58;
+ public static final int T__51=51;
+ public static final int T__52=52;
+ public static final int T__53=53;
+ public static final int T__54=54;
+ public static final int T__107=107;
+ public static final int T__108=108;
+ public static final int T__109=109;
+ public static final int T__103=103;
+ public static final int T__59=59;
+ public static final int T__104=104;
+ public static final int T__105=105;
+ public static final int T__106=106;
+ public static final int T__111=111;
+ public static final int T__110=110;
+ public static final int RULE_INT=9;
+ public static final int T__113=113;
+ public static final int T__112=112;
+ public static final int T__50=50;
+ public static final int T__42=42;
+ public static final int T__43=43;
+ public static final int T__40=40;
+ public static final int T__41=41;
+ public static final int T__46=46;
+ public static final int T__47=47;
+ public static final int T__44=44;
+ public static final int T__45=45;
+ public static final int T__48=48;
+ public static final int T__49=49;
+ public static final int T__102=102;
+ public static final int T__101=101;
+ public static final int T__100=100;
+ public static final int RULE_SL_COMMENT=8;
+ public static final int T__30=30;
+ public static final int T__31=31;
+ public static final int T__32=32;
+ public static final int T__33=33;
+ public static final int T__34=34;
+ public static final int T__35=35;
+ public static final int T__36=36;
+ public static final int T__37=37;
+ public static final int T__38=38;
+ public static final int T__39=39;
+ public static final int RULE_WS=10;
+
+ // delegates
+ // delegators
+
+ public InternalAlfLexer() {;}
+ public InternalAlfLexer(CharStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalAlfLexer(CharStream input, RecognizerSharedState state) {
+ super(input,state);
+
+ }
+ public String getGrammarFileName() { return "../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g"; }
+
+ // $ANTLR start "T__12"
+ public final void mT__12() throws RecognitionException {
+ try {
+ int _type = T__12;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:11:7: ( 'testExpression' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:11:9: 'testExpression'
+ {
+ match("testExpression");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__12"
+
+ // $ANTLR start "T__13"
+ public final void mT__13() throws RecognitionException {
+ try {
+ int _type = T__13;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:12:7: ( 'testAssignmentExpression' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:12:9: 'testAssignmentExpression'
+ {
+ match("testAssignmentExpression");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__13"
+
+ // $ANTLR start "T__14"
+ public final void mT__14() throws RecognitionException {
+ try {
+ int _type = T__14;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:13:7: ( 'testStatement' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:13:9: 'testStatement'
+ {
+ match("testStatement");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__14"
+
+ // $ANTLR start "T__15"
+ public final void mT__15() throws RecognitionException {
+ try {
+ int _type = T__15;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:14:7: ( 'testBlock' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:14:9: 'testBlock'
+ {
+ match("testBlock");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__15"
+
+ // $ANTLR start "T__16"
+ public final void mT__16() throws RecognitionException {
+ try {
+ int _type = T__16;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:15:7: ( '*' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:15:9: '*'
+ {
+ match('*');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__16"
+
+ // $ANTLR start "T__17"
+ public final void mT__17() throws RecognitionException {
+ try {
+ int _type = T__17;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:16:7: ( '++' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:16:9: '++'
+ {
+ match("++");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__17"
+
+ // $ANTLR start "T__18"
+ public final void mT__18() throws RecognitionException {
+ try {
+ int _type = T__18;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:17:7: ( '--' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:17:9: '--'
+ {
+ match("--");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__18"
+
+ // $ANTLR start "T__19"
+ public final void mT__19() throws RecognitionException {
+ try {
+ int _type = T__19;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:18:7: ( '::' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:18:9: '::'
+ {
+ match("::");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__19"
+
+ // $ANTLR start "T__20"
+ public final void mT__20() throws RecognitionException {
+ try {
+ int _type = T__20;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:19:7: ( '<' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:19:9: '<'
+ {
+ match('<');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__20"
+
+ // $ANTLR start "T__21"
+ public final void mT__21() throws RecognitionException {
+ try {
+ int _type = T__21;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:20:7: ( ',' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:20:9: ','
+ {
+ match(',');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__21"
+
+ // $ANTLR start "T__22"
+ public final void mT__22() throws RecognitionException {
+ try {
+ int _type = T__22;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:21:7: ( '>' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:21:9: '>'
+ {
+ match('>');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__22"
+
+ // $ANTLR start "T__23"
+ public final void mT__23() throws RecognitionException {
+ try {
+ int _type = T__23;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:22:7: ( '=>' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:22:9: '=>'
+ {
+ match("=>");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__23"
+
+ // $ANTLR start "T__24"
+ public final void mT__24() throws RecognitionException {
+ try {
+ int _type = T__24;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:23:7: ( '(' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:23:9: '('
+ {
+ match('(');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__24"
+
+ // $ANTLR start "T__25"
+ public final void mT__25() throws RecognitionException {
+ try {
+ int _type = T__25;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:24:7: ( ')' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:24:9: ')'
+ {
+ match(')');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__25"
+
+ // $ANTLR start "T__26"
+ public final void mT__26() throws RecognitionException {
+ try {
+ int _type = T__26;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:25:7: ( '?' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:25:9: '?'
+ {
+ match('?');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__26"
+
+ // $ANTLR start "T__27"
+ public final void mT__27() throws RecognitionException {
+ try {
+ int _type = T__27;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:26:7: ( ':' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:26:9: ':'
+ {
+ match(':');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__27"
+
+ // $ANTLR start "T__28"
+ public final void mT__28() throws RecognitionException {
+ try {
+ int _type = T__28;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:27:7: ( '||' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:27:9: '||'
+ {
+ match("||");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__28"
+
+ // $ANTLR start "T__29"
+ public final void mT__29() throws RecognitionException {
+ try {
+ int _type = T__29;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:28:7: ( '&&' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:28:9: '&&'
+ {
+ match("&&");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__29"
+
+ // $ANTLR start "T__30"
+ public final void mT__30() throws RecognitionException {
+ try {
+ int _type = T__30;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:29:7: ( '|' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:29:9: '|'
+ {
+ match('|');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__30"
+
+ // $ANTLR start "T__31"
+ public final void mT__31() throws RecognitionException {
+ try {
+ int _type = T__31;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:30:7: ( '^' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:30:9: '^'
+ {
+ match('^');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__31"
+
+ // $ANTLR start "T__32"
+ public final void mT__32() throws RecognitionException {
+ try {
+ int _type = T__32;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:31:7: ( '&' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:31:9: '&'
+ {
+ match('&');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__32"
+
+ // $ANTLR start "T__33"
+ public final void mT__33() throws RecognitionException {
+ try {
+ int _type = T__33;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:32:7: ( '==' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:32:9: '=='
+ {
+ match("==");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__33"
+
+ // $ANTLR start "T__34"
+ public final void mT__34() throws RecognitionException {
+ try {
+ int _type = T__34;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:33:7: ( '!=' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:33:9: '!='
+ {
+ match("!=");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__34"
+
+ // $ANTLR start "T__35"
+ public final void mT__35() throws RecognitionException {
+ try {
+ int _type = T__35;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:34:7: ( 'instanceof' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:34:9: 'instanceof'
+ {
+ match("instanceof");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__35"
+
+ // $ANTLR start "T__36"
+ public final void mT__36() throws RecognitionException {
+ try {
+ int _type = T__36;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:35:7: ( 'hastype' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:35:9: 'hastype'
+ {
+ match("hastype");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__36"
+
+ // $ANTLR start "T__37"
+ public final void mT__37() throws RecognitionException {
+ try {
+ int _type = T__37;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:36:7: ( '<=' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:36:9: '<='
+ {
+ match("<=");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__37"
+
+ // $ANTLR start "T__38"
+ public final void mT__38() throws RecognitionException {
+ try {
+ int _type = T__38;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:37:7: ( '>=' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:37:9: '>='
+ {
+ match(">=");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__38"
+
+ // $ANTLR start "T__39"
+ public final void mT__39() throws RecognitionException {
+ try {
+ int _type = T__39;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:38:7: ( '<<' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:38:9: '<<'
+ {
+ match("<<");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__39"
+
+ // $ANTLR start "T__40"
+ public final void mT__40() throws RecognitionException {
+ try {
+ int _type = T__40;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:39:7: ( '>>' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:39:9: '>>'
+ {
+ match(">>");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__40"
+
+ // $ANTLR start "T__41"
+ public final void mT__41() throws RecognitionException {
+ try {
+ int _type = T__41;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:40:7: ( '>>>' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:40:9: '>>>'
+ {
+ match(">>>");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__41"
+
+ // $ANTLR start "T__42"
+ public final void mT__42() throws RecognitionException {
+ try {
+ int _type = T__42;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:41:7: ( '+' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:41:9: '+'
+ {
+ match('+');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__42"
+
+ // $ANTLR start "T__43"
+ public final void mT__43() throws RecognitionException {
+ try {
+ int _type = T__43;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:42:7: ( '-' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:42:9: '-'
+ {
+ match('-');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__43"
+
+ // $ANTLR start "T__44"
+ public final void mT__44() throws RecognitionException {
+ try {
+ int _type = T__44;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:43:7: ( '/' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:43:9: '/'
+ {
+ match('/');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__44"
+
+ // $ANTLR start "T__45"
+ public final void mT__45() throws RecognitionException {
+ try {
+ int _type = T__45;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:44:7: ( '%' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:44:9: '%'
+ {
+ match('%');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__45"
+
+ // $ANTLR start "T__46"
+ public final void mT__46() throws RecognitionException {
+ try {
+ int _type = T__46;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:45:7: ( '!' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:45:9: '!'
+ {
+ match('!');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__46"
+
+ // $ANTLR start "T__47"
+ public final void mT__47() throws RecognitionException {
+ try {
+ int _type = T__47;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:46:7: ( '$' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:46:9: '$'
+ {
+ match('$');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__47"
+
+ // $ANTLR start "T__48"
+ public final void mT__48() throws RecognitionException {
+ try {
+ int _type = T__48;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:47:7: ( '~' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:47:9: '~'
+ {
+ match('~');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__48"
+
+ // $ANTLR start "T__49"
+ public final void mT__49() throws RecognitionException {
+ try {
+ int _type = T__49;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:48:7: ( '.' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:48:9: '.'
+ {
+ match('.');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__49"
+
+ // $ANTLR start "T__50"
+ public final void mT__50() throws RecognitionException {
+ try {
+ int _type = T__50;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:49:7: ( '[' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:49:9: '['
+ {
+ match('[');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__50"
+
+ // $ANTLR start "T__51"
+ public final void mT__51() throws RecognitionException {
+ try {
+ int _type = T__51;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:50:7: ( ']' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:50:9: ']'
+ {
+ match(']');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__51"
+
+ // $ANTLR start "T__52"
+ public final void mT__52() throws RecognitionException {
+ try {
+ int _type = T__52;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:51:7: ( '->' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:51:9: '->'
+ {
+ match("->");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__52"
+
+ // $ANTLR start "T__53"
+ public final void mT__53() throws RecognitionException {
+ try {
+ int _type = T__53;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:52:7: ( 'reduce' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:52:9: 'reduce'
+ {
+ match("reduce");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__53"
+
+ // $ANTLR start "T__54"
+ public final void mT__54() throws RecognitionException {
+ try {
+ int _type = T__54;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:53:7: ( 'ordered' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:53:9: 'ordered'
+ {
+ match("ordered");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__54"
+
+ // $ANTLR start "T__55"
+ public final void mT__55() throws RecognitionException {
+ try {
+ int _type = T__55;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:54:7: ( 'isUnique' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:54:9: 'isUnique'
+ {
+ match("isUnique");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__55"
+
+ // $ANTLR start "T__56"
+ public final void mT__56() throws RecognitionException {
+ try {
+ int _type = T__56;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:55:7: ( 'null' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:55:9: 'null'
+ {
+ match("null");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__56"
+
+ // $ANTLR start "T__57"
+ public final void mT__57() throws RecognitionException {
+ try {
+ int _type = T__57;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:56:7: ( 'this' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:56:9: 'this'
+ {
+ match("this");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__57"
+
+ // $ANTLR start "T__58"
+ public final void mT__58() throws RecognitionException {
+ try {
+ int _type = T__58;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:57:7: ( 'super' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:57:9: 'super'
+ {
+ match("super");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__58"
+
+ // $ANTLR start "T__59"
+ public final void mT__59() throws RecognitionException {
+ try {
+ int _type = T__59;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:58:7: ( 'new' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:58:9: 'new'
+ {
+ match("new");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__59"
+
+ // $ANTLR start "T__60"
+ public final void mT__60() throws RecognitionException {
+ try {
+ int _type = T__60;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:59:7: ( '{' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:59:9: '{'
+ {
+ match('{');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__60"
+
+ // $ANTLR start "T__61"
+ public final void mT__61() throws RecognitionException {
+ try {
+ int _type = T__61;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:60:7: ( '..' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:60:9: '..'
+ {
+ match("..");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__61"
+
+ // $ANTLR start "T__62"
+ public final void mT__62() throws RecognitionException {
+ try {
+ int _type = T__62;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:61:7: ( '}' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:61:9: '}'
+ {
+ match('}');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__62"
+
+ // $ANTLR start "T__63"
+ public final void mT__63() throws RecognitionException {
+ try {
+ int _type = T__63;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:62:7: ( 'allInstances' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:62:9: 'allInstances'
+ {
+ match("allInstances");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__63"
+
+ // $ANTLR start "T__64"
+ public final void mT__64() throws RecognitionException {
+ try {
+ int _type = T__64;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:63:7: ( '/*@' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:63:9: '/*@'
+ {
+ match("/*@");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__64"
+
+ // $ANTLR start "T__65"
+ public final void mT__65() throws RecognitionException {
+ try {
+ int _type = T__65;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:64:7: ( 'inline' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:64:9: 'inline'
+ {
+ match("inline");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__65"
+
+ // $ANTLR start "T__66"
+ public final void mT__66() throws RecognitionException {
+ try {
+ int _type = T__66;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:65:7: ( '*/' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:65:9: '*/'
+ {
+ match("*/");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__66"
+
+ // $ANTLR start "T__67"
+ public final void mT__67() throws RecognitionException {
+ try {
+ int _type = T__67;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:66:7: ( '//@' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:66:9: '//@'
+ {
+ match("//@");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__67"
+
+ // $ANTLR start "T__68"
+ public final void mT__68() throws RecognitionException {
+ try {
+ int _type = T__68;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:67:7: ( ';' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:67:9: ';'
+ {
+ match(';');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__68"
+
+ // $ANTLR start "T__69"
+ public final void mT__69() throws RecognitionException {
+ try {
+ int _type = T__69;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:68:7: ( 'let' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:68:9: 'let'
+ {
+ match("let");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__69"
+
+ // $ANTLR start "T__70"
+ public final void mT__70() throws RecognitionException {
+ try {
+ int _type = T__70;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:69:7: ( '=' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:69:9: '='
+ {
+ match('=');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__70"
+
+ // $ANTLR start "T__71"
+ public final void mT__71() throws RecognitionException {
+ try {
+ int _type = T__71;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:70:7: ( 'if' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:70:9: 'if'
+ {
+ match("if");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__71"
+
+ // $ANTLR start "T__72"
+ public final void mT__72() throws RecognitionException {
+ try {
+ int _type = T__72;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:71:7: ( 'else' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:71:9: 'else'
+ {
+ match("else");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__72"
+
+ // $ANTLR start "T__73"
+ public final void mT__73() throws RecognitionException {
+ try {
+ int _type = T__73;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:72:7: ( 'or' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:72:9: 'or'
+ {
+ match("or");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__73"
+
+ // $ANTLR start "T__74"
+ public final void mT__74() throws RecognitionException {
+ try {
+ int _type = T__74;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:73:7: ( 'switch' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:73:9: 'switch'
+ {
+ match("switch");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__74"
+
+ // $ANTLR start "T__75"
+ public final void mT__75() throws RecognitionException {
+ try {
+ int _type = T__75;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:74:7: ( 'case' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:74:9: 'case'
+ {
+ match("case");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__75"
+
+ // $ANTLR start "T__76"
+ public final void mT__76() throws RecognitionException {
+ try {
+ int _type = T__76;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:75:7: ( 'default' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:75:9: 'default'
+ {
+ match("default");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__76"
+
+ // $ANTLR start "T__77"
+ public final void mT__77() throws RecognitionException {
+ try {
+ int _type = T__77;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:76:7: ( 'while' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:76:9: 'while'
+ {
+ match("while");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__77"
+
+ // $ANTLR start "T__78"
+ public final void mT__78() throws RecognitionException {
+ try {
+ int _type = T__78;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:77:7: ( 'do' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:77:9: 'do'
+ {
+ match("do");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__78"
+
+ // $ANTLR start "T__79"
+ public final void mT__79() throws RecognitionException {
+ try {
+ int _type = T__79;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:78:7: ( 'for' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:78:9: 'for'
+ {
+ match("for");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__79"
+
+ // $ANTLR start "T__80"
+ public final void mT__80() throws RecognitionException {
+ try {
+ int _type = T__80;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:79:7: ( 'in' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:79:9: 'in'
+ {
+ match("in");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__80"
+
+ // $ANTLR start "T__81"
+ public final void mT__81() throws RecognitionException {
+ try {
+ int _type = T__81;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:80:7: ( 'break' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:80:9: 'break'
+ {
+ match("break");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__81"
+
+ // $ANTLR start "T__82"
+ public final void mT__82() throws RecognitionException {
+ try {
+ int _type = T__82;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:81:7: ( 'return' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:81:9: 'return'
+ {
+ match("return");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__82"
+
+ // $ANTLR start "T__83"
+ public final void mT__83() throws RecognitionException {
+ try {
+ int _type = T__83;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:82:7: ( 'accept' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:82:9: 'accept'
+ {
+ match("accept");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__83"
+
+ // $ANTLR start "T__84"
+ public final void mT__84() throws RecognitionException {
+ try {
+ int _type = T__84;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:83:7: ( 'classify' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:83:9: 'classify'
+ {
+ match("classify");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__84"
+
+ // $ANTLR start "T__85"
+ public final void mT__85() throws RecognitionException {
+ try {
+ int _type = T__85;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:84:7: ( 'from' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:84:9: 'from'
+ {
+ match("from");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__85"
+
+ // $ANTLR start "T__86"
+ public final void mT__86() throws RecognitionException {
+ try {
+ int _type = T__86;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:85:7: ( 'to' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:85:9: 'to'
+ {
+ match("to");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__86"
+
+ // $ANTLR start "T__87"
+ public final void mT__87() throws RecognitionException {
+ try {
+ int _type = T__87;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:86:7: ( 'true' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:86:9: 'true'
+ {
+ match("true");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__87"
+
+ // $ANTLR start "T__88"
+ public final void mT__88() throws RecognitionException {
+ try {
+ int _type = T__88;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:87:7: ( 'false' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:87:9: 'false'
+ {
+ match("false");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__88"
+
+ // $ANTLR start "T__89"
+ public final void mT__89() throws RecognitionException {
+ try {
+ int _type = T__89;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:88:7: ( 'createLink' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:88:9: 'createLink'
+ {
+ match("createLink");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__89"
+
+ // $ANTLR start "T__90"
+ public final void mT__90() throws RecognitionException {
+ try {
+ int _type = T__90;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:89:7: ( 'destroyLink' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:89:9: 'destroyLink'
+ {
+ match("destroyLink");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__90"
+
+ // $ANTLR start "T__91"
+ public final void mT__91() throws RecognitionException {
+ try {
+ int _type = T__91;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:90:7: ( 'clearAssoc' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:90:9: 'clearAssoc'
+ {
+ match("clearAssoc");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__91"
+
+ // $ANTLR start "T__92"
+ public final void mT__92() throws RecognitionException {
+ try {
+ int _type = T__92;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:91:7: ( 'select' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:91:9: 'select'
+ {
+ match("select");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__92"
+
+ // $ANTLR start "T__93"
+ public final void mT__93() throws RecognitionException {
+ try {
+ int _type = T__93;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:92:7: ( 'reject' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:92:9: 'reject'
+ {
+ match("reject");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__93"
+
+ // $ANTLR start "T__94"
+ public final void mT__94() throws RecognitionException {
+ try {
+ int _type = T__94;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:93:7: ( 'collect' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:93:9: 'collect'
+ {
+ match("collect");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__94"
+
+ // $ANTLR start "T__95"
+ public final void mT__95() throws RecognitionException {
+ try {
+ int _type = T__95;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:94:7: ( 'iterate' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:94:9: 'iterate'
+ {
+ match("iterate");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__95"
+
+ // $ANTLR start "T__96"
+ public final void mT__96() throws RecognitionException {
+ try {
+ int _type = T__96;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:95:7: ( 'forAll' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:95:9: 'forAll'
+ {
+ match("forAll");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__96"
+
+ // $ANTLR start "T__97"
+ public final void mT__97() throws RecognitionException {
+ try {
+ int _type = T__97;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:96:7: ( 'exists' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:96:9: 'exists'
+ {
+ match("exists");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__97"
+
+ // $ANTLR start "T__98"
+ public final void mT__98() throws RecognitionException {
+ try {
+ int _type = T__98;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:97:7: ( 'one' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:97:9: 'one'
+ {
+ match("one");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__98"
+
+ // $ANTLR start "T__99"
+ public final void mT__99() throws RecognitionException {
+ try {
+ int _type = T__99;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:98:7: ( 'isolated' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:98:9: 'isolated'
+ {
+ match("isolated");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__99"
+
+ // $ANTLR start "T__100"
+ public final void mT__100() throws RecognitionException {
+ try {
+ int _type = T__100;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:99:8: ( 'determined' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:99:10: 'determined'
+ {
+ match("determined");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__100"
+
+ // $ANTLR start "T__101"
+ public final void mT__101() throws RecognitionException {
+ try {
+ int _type = T__101;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:100:8: ( 'assured' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:100:10: 'assured'
+ {
+ match("assured");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__101"
+
+ // $ANTLR start "T__102"
+ public final void mT__102() throws RecognitionException {
+ try {
+ int _type = T__102;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:101:8: ( 'parallel' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:101:10: 'parallel'
+ {
+ match("parallel");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__102"
+
+ // $ANTLR start "T__103"
+ public final void mT__103() throws RecognitionException {
+ try {
+ int _type = T__103;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:102:8: ( '+=' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:102:10: '+='
+ {
+ match("+=");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__103"
+
+ // $ANTLR start "T__104"
+ public final void mT__104() throws RecognitionException {
+ try {
+ int _type = T__104;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:103:8: ( '-=' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:103:10: '-='
+ {
+ match("-=");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__104"
+
+ // $ANTLR start "T__105"
+ public final void mT__105() throws RecognitionException {
+ try {
+ int _type = T__105;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:104:8: ( '*=' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:104:10: '*='
+ {
+ match("*=");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__105"
+
+ // $ANTLR start "T__106"
+ public final void mT__106() throws RecognitionException {
+ try {
+ int _type = T__106;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:105:8: ( '%=' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:105:10: '%='
+ {
+ match("%=");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__106"
+
+ // $ANTLR start "T__107"
+ public final void mT__107() throws RecognitionException {
+ try {
+ int _type = T__107;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:106:8: ( '/=' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:106:10: '/='
+ {
+ match("/=");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__107"
+
+ // $ANTLR start "T__108"
+ public final void mT__108() throws RecognitionException {
+ try {
+ int _type = T__108;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:107:8: ( '&=' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:107:10: '&='
+ {
+ match("&=");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__108"
+
+ // $ANTLR start "T__109"
+ public final void mT__109() throws RecognitionException {
+ try {
+ int _type = T__109;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:108:8: ( '|=' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:108:10: '|='
+ {
+ match("|=");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__109"
+
+ // $ANTLR start "T__110"
+ public final void mT__110() throws RecognitionException {
+ try {
+ int _type = T__110;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:109:8: ( '^=' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:109:10: '^='
+ {
+ match("^=");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__110"
+
+ // $ANTLR start "T__111"
+ public final void mT__111() throws RecognitionException {
+ try {
+ int _type = T__111;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:110:8: ( '<<=' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:110:10: '<<='
+ {
+ match("<<=");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__111"
+
+ // $ANTLR start "T__112"
+ public final void mT__112() throws RecognitionException {
+ try {
+ int _type = T__112;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:111:8: ( '>>=' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:111:10: '>>='
+ {
+ match(">>=");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__112"
+
+ // $ANTLR start "T__113"
+ public final void mT__113() throws RecognitionException {
+ try {
+ int _type = T__113;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:112:8: ( '>>>=' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:112:10: '>>>='
+ {
+ match(">>>=");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__113"
+
+ // $ANTLR start "RULE_INTEGERVALUE"
+ public final void mRULE_INTEGERVALUE() throws RecognitionException {
+ try {
+ int _type = RULE_INTEGERVALUE;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:19: ( ( ( '0' | '1' .. '9' ( ( '_' )? '0' .. '9' )* ) | ( '0b' | '0B' ) '0' .. '1' ( ( '_' )? '0' .. '1' )* | ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) ( ( '_' )? ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )* | '0' ( '_' )? '0' .. '7' ( ( '_' )? '0' .. '7' )* ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:21: ( ( '0' | '1' .. '9' ( ( '_' )? '0' .. '9' )* ) | ( '0b' | '0B' ) '0' .. '1' ( ( '_' )? '0' .. '1' )* | ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) ( ( '_' )? ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )* | '0' ( '_' )? '0' .. '7' ( ( '_' )? '0' .. '7' )* )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:21: ( ( '0' | '1' .. '9' ( ( '_' )? '0' .. '9' )* ) | ( '0b' | '0B' ) '0' .. '1' ( ( '_' )? '0' .. '1' )* | ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) ( ( '_' )? ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )* | '0' ( '_' )? '0' .. '7' ( ( '_' )? '0' .. '7' )* )
+ int alt13=4;
+ int LA13_0 = input.LA(1);
+
+ if ( (LA13_0=='0') ) {
+ switch ( input.LA(2) ) {
+ case 'B':
+ case 'b':
+ {
+ alt13=2;
+ }
+ break;
+ case 'X':
+ case 'x':
+ {
+ alt13=3;
+ }
+ break;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '_':
+ {
+ alt13=4;
+ }
+ break;
+ default:
+ alt13=1;}
+
+ }
+ else if ( ((LA13_0>='1' && LA13_0<='9')) ) {
+ alt13=1;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 13, 0, input);
+
+ throw nvae;
+ }
+ switch (alt13) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:22: ( '0' | '1' .. '9' ( ( '_' )? '0' .. '9' )* )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:22: ( '0' | '1' .. '9' ( ( '_' )? '0' .. '9' )* )
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( (LA3_0=='0') ) {
+ alt3=1;
+ }
+ else if ( ((LA3_0>='1' && LA3_0<='9')) ) {
+ alt3=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 3, 0, input);
+
+ throw nvae;
+ }
+ switch (alt3) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:23: '0'
+ {
+ match('0');
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:27: '1' .. '9' ( ( '_' )? '0' .. '9' )*
+ {
+ matchRange('1','9');
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:36: ( ( '_' )? '0' .. '9' )*
+ loop2:
+ do {
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( ((LA2_0>='0' && LA2_0<='9')||LA2_0=='_') ) {
+ alt2=1;
+ }
+
+
+ switch (alt2) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:37: ( '_' )? '0' .. '9'
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:37: ( '_' )?
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0=='_') ) {
+ alt1=1;
+ }
+ switch (alt1) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:37: '_'
+ {
+ match('_');
+
+ }
+ break;
+
+ }
+
+ matchRange('0','9');
+
+ }
+ break;
+
+ default :
+ break loop2;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:54: ( '0b' | '0B' ) '0' .. '1' ( ( '_' )? '0' .. '1' )*
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:54: ( '0b' | '0B' )
+ int alt4=2;
+ int LA4_0 = input.LA(1);
+
+ if ( (LA4_0=='0') ) {
+ int LA4_1 = input.LA(2);
+
+ if ( (LA4_1=='b') ) {
+ alt4=1;
+ }
+ else if ( (LA4_1=='B') ) {
+ alt4=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 4, 1, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 4, 0, input);
+
+ throw nvae;
+ }
+ switch (alt4) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:55: '0b'
+ {
+ match("0b");
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:60: '0B'
+ {
+ match("0B");
+
+
+ }
+ break;
+
+ }
+
+ matchRange('0','1');
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:75: ( ( '_' )? '0' .. '1' )*
+ loop6:
+ do {
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( ((LA6_0>='0' && LA6_0<='1')||LA6_0=='_') ) {
+ alt6=1;
+ }
+
+
+ switch (alt6) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:76: ( '_' )? '0' .. '1'
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:76: ( '_' )?
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0=='_') ) {
+ alt5=1;
+ }
+ switch (alt5) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:76: '_'
+ {
+ match('_');
+
+ }
+ break;
+
+ }
+
+ matchRange('0','1');
+
+ }
+ break;
+
+ default :
+ break loop6;
+ }
+ } while (true);
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:92: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) ( ( '_' )? ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )*
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:92: ( '0x' | '0X' )
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( (LA7_0=='0') ) {
+ int LA7_1 = input.LA(2);
+
+ if ( (LA7_1=='x') ) {
+ alt7=1;
+ }
+ else if ( (LA7_1=='X') ) {
+ alt7=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 7, 1, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 7, 0, input);
+
+ throw nvae;
+ }
+ switch (alt7) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:93: '0x'
+ {
+ match("0x");
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:98: '0X'
+ {
+ match("0X");
+
+
+ }
+ break;
+
+ }
+
+ if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='F')||(input.LA(1)>='a' && input.LA(1)<='f') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:133: ( ( '_' )? ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )*
+ loop9:
+ do {
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( ((LA9_0>='0' && LA9_0<='9')||(LA9_0>='A' && LA9_0<='F')||LA9_0=='_'||(LA9_0>='a' && LA9_0<='f')) ) {
+ alt9=1;
+ }
+
+
+ switch (alt9) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:134: ( '_' )? ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:134: ( '_' )?
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( (LA8_0=='_') ) {
+ alt8=1;
+ }
+ switch (alt8) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:134: '_'
+ {
+ match('_');
+
+ }
+ break;
+
+ }
+
+ if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='F')||(input.LA(1)>='a' && input.LA(1)<='f') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop9;
+ }
+ } while (true);
+
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:170: '0' ( '_' )? '0' .. '7' ( ( '_' )? '0' .. '7' )*
+ {
+ match('0');
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:174: ( '_' )?
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0=='_') ) {
+ alt10=1;
+ }
+ switch (alt10) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:174: '_'
+ {
+ match('_');
+
+ }
+ break;
+
+ }
+
+ matchRange('0','7');
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:188: ( ( '_' )? '0' .. '7' )*
+ loop12:
+ do {
+ int alt12=2;
+ int LA12_0 = input.LA(1);
+
+ if ( ((LA12_0>='0' && LA12_0<='7')||LA12_0=='_') ) {
+ alt12=1;
+ }
+
+
+ switch (alt12) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:189: ( '_' )? '0' .. '7'
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:189: ( '_' )?
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+
+ if ( (LA11_0=='_') ) {
+ alt11=1;
+ }
+ switch (alt11) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7348:189: '_'
+ {
+ match('_');
+
+ }
+ break;
+
+ }
+
+ matchRange('0','7');
+
+ }
+ break;
+
+ default :
+ break loop12;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_INTEGERVALUE"
+
+ // $ANTLR start "RULE_ID"
+ public final void mRULE_ID() throws RecognitionException {
+ try {
+ int _type = RULE_ID;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7350:9: ( ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* | '\\'' ( options {greedy=false; } : . )* '\\'' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7350:11: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* | '\\'' ( options {greedy=false; } : . )* '\\'' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7350:11: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* | '\\'' ( options {greedy=false; } : . )* '\\'' )
+ int alt16=2;
+ int LA16_0 = input.LA(1);
+
+ if ( ((LA16_0>='A' && LA16_0<='Z')||LA16_0=='_'||(LA16_0>='a' && LA16_0<='z')) ) {
+ alt16=1;
+ }
+ else if ( (LA16_0=='\'') ) {
+ alt16=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 16, 0, input);
+
+ throw nvae;
+ }
+ switch (alt16) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7350:12: ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ {
+ if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7350:36: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ loop14:
+ do {
+ int alt14=2;
+ int LA14_0 = input.LA(1);
+
+ if ( ((LA14_0>='0' && LA14_0<='9')||(LA14_0>='A' && LA14_0<='Z')||LA14_0=='_'||(LA14_0>='a' && LA14_0<='z')) ) {
+ alt14=1;
+ }
+
+
+ switch (alt14) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:
+ {
+ if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop14;
+ }
+ } while (true);
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7350:70: '\\'' ( options {greedy=false; } : . )* '\\''
+ {
+ match('\'');
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7350:75: ( options {greedy=false; } : . )*
+ loop15:
+ do {
+ int alt15=2;
+ int LA15_0 = input.LA(1);
+
+ if ( (LA15_0=='\'') ) {
+ alt15=2;
+ }
+ else if ( ((LA15_0>='\u0000' && LA15_0<='&')||(LA15_0>='(' && LA15_0<='\uFFFF')) ) {
+ alt15=1;
+ }
+
+
+ switch (alt15) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7350:103: .
+ {
+ matchAny();
+
+ }
+ break;
+
+ default :
+ break loop15;
+ }
+ } while (true);
+
+ match('\'');
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ID"
+
+ // $ANTLR start "RULE_STRING"
+ public final void mRULE_STRING() throws RecognitionException {
+ try {
+ int _type = RULE_STRING;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7352:13: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7352:15: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+ {
+ match('\"');
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7352:19: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )*
+ loop17:
+ do {
+ int alt17=3;
+ int LA17_0 = input.LA(1);
+
+ if ( (LA17_0=='\\') ) {
+ alt17=1;
+ }
+ else if ( ((LA17_0>='\u0000' && LA17_0<='!')||(LA17_0>='#' && LA17_0<='[')||(LA17_0>=']' && LA17_0<='\uFFFF')) ) {
+ alt17=2;
+ }
+
+
+ switch (alt17) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7352:20: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' )
+ {
+ match('\\');
+ if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||input.LA(1)=='t' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7352:61: ~ ( ( '\\\\' | '\"' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop17;
+ }
+ } while (true);
+
+ match('\"');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_STRING"
+
+ // $ANTLR start "RULE_ML_COMMENT"
+ public final void mRULE_ML_COMMENT() throws RecognitionException {
+ try {
+ int _type = RULE_ML_COMMENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7354:17: ( '/*' ~ ( '@' ) ( options {greedy=false; } : . )* '*/' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7354:19: '/*' ~ ( '@' ) ( options {greedy=false; } : . )* '*/'
+ {
+ match("/*");
+
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='?')||(input.LA(1)>='A' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7354:31: ( options {greedy=false; } : . )*
+ loop18:
+ do {
+ int alt18=2;
+ int LA18_0 = input.LA(1);
+
+ if ( (LA18_0=='*') ) {
+ int LA18_1 = input.LA(2);
+
+ if ( (LA18_1=='/') ) {
+ alt18=2;
+ }
+ else if ( ((LA18_1>='\u0000' && LA18_1<='.')||(LA18_1>='0' && LA18_1<='\uFFFF')) ) {
+ alt18=1;
+ }
+
+
+ }
+ else if ( ((LA18_0>='\u0000' && LA18_0<=')')||(LA18_0>='+' && LA18_0<='\uFFFF')) ) {
+ alt18=1;
+ }
+
+
+ switch (alt18) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7354:59: .
+ {
+ matchAny();
+
+ }
+ break;
+
+ default :
+ break loop18;
+ }
+ } while (true);
+
+ match("*/");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ML_COMMENT"
+
+ // $ANTLR start "RULE_SL_COMMENT"
+ public final void mRULE_SL_COMMENT() throws RecognitionException {
+ try {
+ int _type = RULE_SL_COMMENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7356:17: ( '//' (~ ( ( '\\n' | '\\r' | '@' ) ) )* ( ( '\\r' )? '\\n' )? )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7356:19: '//' (~ ( ( '\\n' | '\\r' | '@' ) ) )* ( ( '\\r' )? '\\n' )?
+ {
+ match("//");
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7356:24: (~ ( ( '\\n' | '\\r' | '@' ) ) )*
+ loop19:
+ do {
+ int alt19=2;
+ int LA19_0 = input.LA(1);
+
+ if ( ((LA19_0>='\u0000' && LA19_0<='\t')||(LA19_0>='\u000B' && LA19_0<='\f')||(LA19_0>='\u000E' && LA19_0<='?')||(LA19_0>='A' && LA19_0<='\uFFFF')) ) {
+ alt19=1;
+ }
+
+
+ switch (alt19) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7356:24: ~ ( ( '\\n' | '\\r' | '@' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='?')||(input.LA(1)>='A' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop19;
+ }
+ } while (true);
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7356:44: ( ( '\\r' )? '\\n' )?
+ int alt21=2;
+ int LA21_0 = input.LA(1);
+
+ if ( (LA21_0=='\n'||LA21_0=='\r') ) {
+ alt21=1;
+ }
+ switch (alt21) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7356:45: ( '\\r' )? '\\n'
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7356:45: ( '\\r' )?
+ int alt20=2;
+ int LA20_0 = input.LA(1);
+
+ if ( (LA20_0=='\r') ) {
+ alt20=1;
+ }
+ switch (alt20) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7356:45: '\\r'
+ {
+ match('\r');
+
+ }
+ break;
+
+ }
+
+ match('\n');
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_SL_COMMENT"
+
+ // $ANTLR start "RULE_INT"
+ public final void mRULE_INT() throws RecognitionException {
+ try {
+ int _type = RULE_INT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7358:10: ( ( '0' .. '9' )+ )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7358:12: ( '0' .. '9' )+
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7358:12: ( '0' .. '9' )+
+ int cnt22=0;
+ loop22:
+ do {
+ int alt22=2;
+ int LA22_0 = input.LA(1);
+
+ if ( ((LA22_0>='0' && LA22_0<='9')) ) {
+ alt22=1;
+ }
+
+
+ switch (alt22) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7358:13: '0' .. '9'
+ {
+ matchRange('0','9');
+
+ }
+ break;
+
+ default :
+ if ( cnt22 >= 1 ) break loop22;
+ EarlyExitException eee =
+ new EarlyExitException(22, input);
+ throw eee;
+ }
+ cnt22++;
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_INT"
+
+ // $ANTLR start "RULE_WS"
+ public final void mRULE_WS() throws RecognitionException {
+ try {
+ int _type = RULE_WS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7360:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7360:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7360:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ int cnt23=0;
+ loop23:
+ do {
+ int alt23=2;
+ int LA23_0 = input.LA(1);
+
+ if ( ((LA23_0>='\t' && LA23_0<='\n')||LA23_0=='\r'||LA23_0==' ') ) {
+ alt23=1;
+ }
+
+
+ switch (alt23) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:
+ {
+ if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ if ( cnt23 >= 1 ) break loop23;
+ EarlyExitException eee =
+ new EarlyExitException(23, input);
+ throw eee;
+ }
+ cnt23++;
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_WS"
+
+ // $ANTLR start "RULE_ANY_OTHER"
+ public final void mRULE_ANY_OTHER() throws RecognitionException {
+ try {
+ int _type = RULE_ANY_OTHER;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7362:16: ( . )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7362:18: .
+ {
+ matchAny();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ANY_OTHER"
+
+ public void mTokens() throws RecognitionException {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:8: ( T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | RULE_INTEGERVALUE | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_INT | RULE_WS | RULE_ANY_OTHER )
+ int alt24=110;
+ alt24 = dfa24.predict(input);
+ switch (alt24) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:10: T__12
+ {
+ mT__12();
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:16: T__13
+ {
+ mT__13();
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:22: T__14
+ {
+ mT__14();
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:28: T__15
+ {
+ mT__15();
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:34: T__16
+ {
+ mT__16();
+
+ }
+ break;
+ case 6 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:40: T__17
+ {
+ mT__17();
+
+ }
+ break;
+ case 7 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:46: T__18
+ {
+ mT__18();
+
+ }
+ break;
+ case 8 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:52: T__19
+ {
+ mT__19();
+
+ }
+ break;
+ case 9 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:58: T__20
+ {
+ mT__20();
+
+ }
+ break;
+ case 10 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:64: T__21
+ {
+ mT__21();
+
+ }
+ break;
+ case 11 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:70: T__22
+ {
+ mT__22();
+
+ }
+ break;
+ case 12 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:76: T__23
+ {
+ mT__23();
+
+ }
+ break;
+ case 13 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:82: T__24
+ {
+ mT__24();
+
+ }
+ break;
+ case 14 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:88: T__25
+ {
+ mT__25();
+
+ }
+ break;
+ case 15 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:94: T__26
+ {
+ mT__26();
+
+ }
+ break;
+ case 16 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:100: T__27
+ {
+ mT__27();
+
+ }
+ break;
+ case 17 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:106: T__28
+ {
+ mT__28();
+
+ }
+ break;
+ case 18 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:112: T__29
+ {
+ mT__29();
+
+ }
+ break;
+ case 19 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:118: T__30
+ {
+ mT__30();
+
+ }
+ break;
+ case 20 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:124: T__31
+ {
+ mT__31();
+
+ }
+ break;
+ case 21 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:130: T__32
+ {
+ mT__32();
+
+ }
+ break;
+ case 22 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:136: T__33
+ {
+ mT__33();
+
+ }
+ break;
+ case 23 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:142: T__34
+ {
+ mT__34();
+
+ }
+ break;
+ case 24 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:148: T__35
+ {
+ mT__35();
+
+ }
+ break;
+ case 25 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:154: T__36
+ {
+ mT__36();
+
+ }
+ break;
+ case 26 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:160: T__37
+ {
+ mT__37();
+
+ }
+ break;
+ case 27 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:166: T__38
+ {
+ mT__38();
+
+ }
+ break;
+ case 28 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:172: T__39
+ {
+ mT__39();
+
+ }
+ break;
+ case 29 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:178: T__40
+ {
+ mT__40();
+
+ }
+ break;
+ case 30 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:184: T__41
+ {
+ mT__41();
+
+ }
+ break;
+ case 31 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:190: T__42
+ {
+ mT__42();
+
+ }
+ break;
+ case 32 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:196: T__43
+ {
+ mT__43();
+
+ }
+ break;
+ case 33 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:202: T__44
+ {
+ mT__44();
+
+ }
+ break;
+ case 34 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:208: T__45
+ {
+ mT__45();
+
+ }
+ break;
+ case 35 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:214: T__46
+ {
+ mT__46();
+
+ }
+ break;
+ case 36 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:220: T__47
+ {
+ mT__47();
+
+ }
+ break;
+ case 37 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:226: T__48
+ {
+ mT__48();
+
+ }
+ break;
+ case 38 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:232: T__49
+ {
+ mT__49();
+
+ }
+ break;
+ case 39 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:238: T__50
+ {
+ mT__50();
+
+ }
+ break;
+ case 40 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:244: T__51
+ {
+ mT__51();
+
+ }
+ break;
+ case 41 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:250: T__52
+ {
+ mT__52();
+
+ }
+ break;
+ case 42 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:256: T__53
+ {
+ mT__53();
+
+ }
+ break;
+ case 43 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:262: T__54
+ {
+ mT__54();
+
+ }
+ break;
+ case 44 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:268: T__55
+ {
+ mT__55();
+
+ }
+ break;
+ case 45 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:274: T__56
+ {
+ mT__56();
+
+ }
+ break;
+ case 46 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:280: T__57
+ {
+ mT__57();
+
+ }
+ break;
+ case 47 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:286: T__58
+ {
+ mT__58();
+
+ }
+ break;
+ case 48 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:292: T__59
+ {
+ mT__59();
+
+ }
+ break;
+ case 49 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:298: T__60
+ {
+ mT__60();
+
+ }
+ break;
+ case 50 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:304: T__61
+ {
+ mT__61();
+
+ }
+ break;
+ case 51 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:310: T__62
+ {
+ mT__62();
+
+ }
+ break;
+ case 52 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:316: T__63
+ {
+ mT__63();
+
+ }
+ break;
+ case 53 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:322: T__64
+ {
+ mT__64();
+
+ }
+ break;
+ case 54 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:328: T__65
+ {
+ mT__65();
+
+ }
+ break;
+ case 55 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:334: T__66
+ {
+ mT__66();
+
+ }
+ break;
+ case 56 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:340: T__67
+ {
+ mT__67();
+
+ }
+ break;
+ case 57 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:346: T__68
+ {
+ mT__68();
+
+ }
+ break;
+ case 58 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:352: T__69
+ {
+ mT__69();
+
+ }
+ break;
+ case 59 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:358: T__70
+ {
+ mT__70();
+
+ }
+ break;
+ case 60 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:364: T__71
+ {
+ mT__71();
+
+ }
+ break;
+ case 61 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:370: T__72
+ {
+ mT__72();
+
+ }
+ break;
+ case 62 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:376: T__73
+ {
+ mT__73();
+
+ }
+ break;
+ case 63 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:382: T__74
+ {
+ mT__74();
+
+ }
+ break;
+ case 64 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:388: T__75
+ {
+ mT__75();
+
+ }
+ break;
+ case 65 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:394: T__76
+ {
+ mT__76();
+
+ }
+ break;
+ case 66 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:400: T__77
+ {
+ mT__77();
+
+ }
+ break;
+ case 67 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:406: T__78
+ {
+ mT__78();
+
+ }
+ break;
+ case 68 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:412: T__79
+ {
+ mT__79();
+
+ }
+ break;
+ case 69 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:418: T__80
+ {
+ mT__80();
+
+ }
+ break;
+ case 70 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:424: T__81
+ {
+ mT__81();
+
+ }
+ break;
+ case 71 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:430: T__82
+ {
+ mT__82();
+
+ }
+ break;
+ case 72 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:436: T__83
+ {
+ mT__83();
+
+ }
+ break;
+ case 73 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:442: T__84
+ {
+ mT__84();
+
+ }
+ break;
+ case 74 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:448: T__85
+ {
+ mT__85();
+
+ }
+ break;
+ case 75 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:454: T__86
+ {
+ mT__86();
+
+ }
+ break;
+ case 76 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:460: T__87
+ {
+ mT__87();
+
+ }
+ break;
+ case 77 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:466: T__88
+ {
+ mT__88();
+
+ }
+ break;
+ case 78 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:472: T__89
+ {
+ mT__89();
+
+ }
+ break;
+ case 79 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:478: T__90
+ {
+ mT__90();
+
+ }
+ break;
+ case 80 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:484: T__91
+ {
+ mT__91();
+
+ }
+ break;
+ case 81 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:490: T__92
+ {
+ mT__92();
+
+ }
+ break;
+ case 82 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:496: T__93
+ {
+ mT__93();
+
+ }
+ break;
+ case 83 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:502: T__94
+ {
+ mT__94();
+
+ }
+ break;
+ case 84 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:508: T__95
+ {
+ mT__95();
+
+ }
+ break;
+ case 85 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:514: T__96
+ {
+ mT__96();
+
+ }
+ break;
+ case 86 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:520: T__97
+ {
+ mT__97();
+
+ }
+ break;
+ case 87 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:526: T__98
+ {
+ mT__98();
+
+ }
+ break;
+ case 88 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:532: T__99
+ {
+ mT__99();
+
+ }
+ break;
+ case 89 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:538: T__100
+ {
+ mT__100();
+
+ }
+ break;
+ case 90 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:545: T__101
+ {
+ mT__101();
+
+ }
+ break;
+ case 91 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:552: T__102
+ {
+ mT__102();
+
+ }
+ break;
+ case 92 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:559: T__103
+ {
+ mT__103();
+
+ }
+ break;
+ case 93 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:566: T__104
+ {
+ mT__104();
+
+ }
+ break;
+ case 94 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:573: T__105
+ {
+ mT__105();
+
+ }
+ break;
+ case 95 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:580: T__106
+ {
+ mT__106();
+
+ }
+ break;
+ case 96 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:587: T__107
+ {
+ mT__107();
+
+ }
+ break;
+ case 97 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:594: T__108
+ {
+ mT__108();
+
+ }
+ break;
+ case 98 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:601: T__109
+ {
+ mT__109();
+
+ }
+ break;
+ case 99 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:608: T__110
+ {
+ mT__110();
+
+ }
+ break;
+ case 100 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:615: T__111
+ {
+ mT__111();
+
+ }
+ break;
+ case 101 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:622: T__112
+ {
+ mT__112();
+
+ }
+ break;
+ case 102 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:629: T__113
+ {
+ mT__113();
+
+ }
+ break;
+ case 103 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:636: RULE_INTEGERVALUE
+ {
+ mRULE_INTEGERVALUE();
+
+ }
+ break;
+ case 104 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:654: RULE_ID
+ {
+ mRULE_ID();
+
+ }
+ break;
+ case 105 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:662: RULE_STRING
+ {
+ mRULE_STRING();
+
+ }
+ break;
+ case 106 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:674: RULE_ML_COMMENT
+ {
+ mRULE_ML_COMMENT();
+
+ }
+ break;
+ case 107 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:690: RULE_SL_COMMENT
+ {
+ mRULE_SL_COMMENT();
+
+ }
+ break;
+ case 108 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:706: RULE_INT
+ {
+ mRULE_INT();
+
+ }
+ break;
+ case 109 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:715: RULE_WS
+ {
+ mRULE_WS();
+
+ }
+ break;
+ case 110 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1:723: RULE_ANY_OTHER
+ {
+ mRULE_ANY_OTHER();
+
+ }
+ break;
+
+ }
+
+ }
+
+
+ protected DFA24 dfa24 = new DFA24(this);
+ static final String DFA24_eotS =
+ "\1\uffff\1\65\1\70\1\73\1\77\1\101\1\104\1\uffff\1\110\1\113\3"+
+ "\uffff\1\121\1\124\1\126\1\130\2\65\1\141\1\143\2\uffff\1\147\2"+
+ "\uffff\4\65\2\uffff\1\65\1\uffff\10\65\2\u0087\1\uffff\2\60\2\uffff"+
+ "\2\65\1\u008f\1\65\16\uffff\1\u0092\3\uffff\1\u0095\21\uffff\1\u0098"+
+ "\1\65\1\u009b\2\65\1\uffff\1\u00a1\12\uffff\1\65\1\u00a6\6\65\2"+
+ "\uffff\3\65\1\uffff\10\65\1\u00bb\6\65\1\uffff\1\u0087\1\uffff\1"+
+ "\u0087\2\uffff\2\65\1\uffff\1\65\2\uffff\1\u00c7\2\uffff\2\65\1"+
+ "\uffff\2\65\1\uffff\2\65\4\uffff\4\65\1\uffff\1\u00d2\1\65\1\u00d4"+
+ "\6\65\1\u00db\12\65\1\uffff\1\65\1\u00e8\4\65\1\u0087\1\65\1\u00f1"+
+ "\1\u00f2\2\uffff\12\65\1\uffff\1\u00fd\1\uffff\6\65\1\uffff\1\u0104"+
+ "\1\65\1\u0106\11\65\1\uffff\1\u0110\7\65\2\uffff\12\65\1\uffff\1"+
+ "\u0122\5\65\1\uffff\1\65\1\uffff\7\65\1\u0130\1\65\1\uffff\1\u0132"+
+ "\1\u0133\6\65\1\u013a\4\65\1\u013f\1\u0140\1\u0141\1\65\1\uffff"+
+ "\1\u0143\1\u0144\1\65\1\u0146\1\65\1\u0148\7\65\1\uffff\1\u0150"+
+ "\2\uffff\6\65\1\uffff\2\65\1\u0159\1\u015a\3\uffff\1\u015b\2\uffff"+
+ "\1\65\1\uffff\1\u015d\1\uffff\3\65\1\u0161\1\u0162\2\65\1\uffff"+
+ "\6\65\1\u016b\1\u016c\3\uffff\1\65\1\uffff\1\u016e\2\65\2\uffff"+
+ "\2\65\1\u0173\3\65\1\u0177\1\65\2\uffff\1\65\1\uffff\4\65\1\uffff"+
+ "\3\65\1\uffff\1\u0181\1\65\1\u0183\1\u0184\1\65\1\u0186\3\65\1\uffff"+
+ "\1\65\2\uffff\1\u018b\1\uffff\3\65\1\u018f\1\uffff\2\65\1\u0192"+
+ "\1\uffff\1\u0193\1\65\2\uffff\11\65\1\u019e\1\uffff";
+ static final String DFA24_eofS =
+ "\u019f\uffff";
+ static final String DFA24_minS =
+ "\1\0\1\145\1\57\1\53\1\55\1\72\1\74\1\uffff\2\75\3\uffff\1\75\1"+
+ "\46\2\75\1\146\1\141\1\52\1\75\2\uffff\1\56\2\uffff\1\145\1\156"+
+ "\2\145\2\uffff\1\143\1\uffff\1\145\1\154\1\141\1\145\1\150\1\141"+
+ "\1\162\1\141\2\60\1\uffff\2\0\2\uffff\1\163\1\151\1\60\1\165\16"+
+ "\uffff\1\75\3\uffff\1\75\21\uffff\1\60\1\125\1\60\1\145\1\163\1"+
+ "\0\1\100\12\uffff\1\144\1\60\1\145\1\154\1\167\1\160\1\151\1\154"+
+ "\2\uffff\1\154\1\143\1\163\1\uffff\1\164\1\163\1\151\1\163\1\141"+
+ "\1\145\1\154\1\146\1\60\1\151\1\162\1\157\1\154\1\145\1\162\1\uffff"+
+ "\1\60\1\uffff\1\60\2\uffff\1\164\1\163\1\uffff\1\145\2\uffff\1\75"+
+ "\2\uffff\1\164\1\151\1\uffff\1\156\1\154\1\uffff\1\162\1\164\4\uffff"+
+ "\2\165\2\145\1\uffff\1\60\1\154\1\60\1\145\1\164\1\145\1\111\1\145"+
+ "\1\165\1\60\1\145\1\163\1\145\1\163\2\141\1\154\1\141\1\164\1\145"+
+ "\1\uffff\1\154\1\60\1\155\1\163\2\141\1\60\1\101\2\60\2\uffff\1"+
+ "\141\1\156\1\151\2\141\1\171\1\143\1\162\1\143\1\162\1\uffff\1\60"+
+ "\1\uffff\1\162\2\143\1\156\1\160\1\162\1\uffff\1\60\1\164\1\60\1"+
+ "\163\1\162\1\164\1\145\1\165\2\162\1\145\1\154\1\uffff\1\60\1\145"+
+ "\1\153\1\154\1\170\1\163\1\164\1\154\2\uffff\1\156\1\145\1\161\2"+
+ "\164\1\160\1\145\1\156\1\164\1\145\1\uffff\1\60\1\150\1\164\1\163"+
+ "\1\164\1\145\1\uffff\1\163\1\uffff\1\151\1\101\1\145\1\143\1\154"+
+ "\1\157\1\155\1\60\1\154\1\uffff\2\60\1\154\1\160\1\163\1\141\1\157"+
+ "\1\143\1\60\1\165\3\145\3\60\1\144\1\uffff\2\60\1\164\1\60\1\144"+
+ "\1\60\1\146\1\163\1\114\2\164\1\171\1\151\1\uffff\1\60\2\uffff\1"+
+ "\145\1\162\1\151\1\164\1\143\1\145\1\uffff\1\145\1\144\2\60\3\uffff"+
+ "\1\60\2\uffff\1\141\1\uffff\1\60\1\uffff\1\171\1\163\1\151\2\60"+
+ "\1\114\1\156\1\uffff\1\154\1\145\1\147\1\145\1\153\1\157\2\60\3"+
+ "\uffff\1\156\1\uffff\1\60\1\157\1\156\2\uffff\1\151\1\145\1\60\1"+
+ "\163\1\156\1\155\1\60\1\146\2\uffff\1\143\1\uffff\1\143\1\153\1"+
+ "\156\1\144\1\uffff\1\163\1\155\1\145\1\uffff\1\60\1\145\2\60\1\153"+
+ "\1\60\1\151\1\145\1\156\1\uffff\1\163\2\uffff\1\60\1\uffff\1\157"+
+ "\1\156\1\164\1\60\1\uffff\1\156\1\164\1\60\1\uffff\1\60\1\105\2"+
+ "\uffff\1\170\1\160\1\162\1\145\2\163\1\151\1\157\1\156\1\60\1\uffff";
+ static final String DFA24_maxS =
+ "\1\uffff\1\162\2\75\1\76\1\72\1\75\1\uffff\2\76\3\uffff\1\174\3"+
+ "\75\1\164\1\141\2\75\2\uffff\1\56\2\uffff\1\145\1\162\1\165\1\167"+
+ "\2\uffff\1\163\1\uffff\1\145\1\170\1\162\1\157\1\150\2\162\1\141"+
+ "\2\71\1\uffff\2\uffff\2\uffff\1\163\1\151\1\172\1\165\16\uffff\1"+
+ "\75\3\uffff\1\76\21\uffff\1\172\1\157\1\172\1\145\1\163\1\uffff"+
+ "\1\100\12\uffff\1\164\1\172\1\145\1\154\1\167\1\160\1\151\1\154"+
+ "\2\uffff\1\154\1\143\1\163\1\uffff\1\164\1\163\1\151\1\163\2\145"+
+ "\1\154\1\164\1\172\1\151\1\162\1\157\1\154\1\145\1\162\1\uffff\1"+
+ "\71\1\uffff\1\71\2\uffff\1\164\1\163\1\uffff\1\145\2\uffff\1\75"+
+ "\2\uffff\1\164\1\151\1\uffff\1\156\1\154\1\uffff\1\162\1\164\4\uffff"+
+ "\2\165\2\145\1\uffff\1\172\1\154\1\172\1\145\1\164\1\145\1\111\1"+
+ "\145\1\165\1\172\1\145\1\163\1\145\1\163\2\141\1\154\1\141\1\164"+
+ "\1\145\1\uffff\1\154\1\172\1\155\1\163\2\141\1\71\1\123\2\172\2"+
+ "\uffff\1\141\1\156\1\151\2\141\1\171\1\143\1\162\1\143\1\162\1\uffff"+
+ "\1\172\1\uffff\1\162\2\143\1\156\1\160\1\162\1\uffff\1\172\1\164"+
+ "\1\172\1\163\1\162\1\164\1\145\1\165\2\162\1\145\1\154\1\uffff\1"+
+ "\172\1\145\1\153\1\154\1\170\1\163\1\164\1\154\2\uffff\1\156\1\145"+
+ "\1\161\2\164\1\160\1\145\1\156\1\164\1\145\1\uffff\1\172\1\150\1"+
+ "\164\1\163\1\164\1\145\1\uffff\1\163\1\uffff\1\151\1\101\1\145\1"+
+ "\143\1\154\1\157\1\155\1\172\1\154\1\uffff\2\172\1\154\1\160\1\163"+
+ "\1\141\1\157\1\143\1\172\1\165\3\145\3\172\1\144\1\uffff\2\172\1"+
+ "\164\1\172\1\144\1\172\1\146\1\163\1\114\2\164\1\171\1\151\1\uffff"+
+ "\1\172\2\uffff\1\145\1\162\1\151\1\164\1\143\1\145\1\uffff\1\145"+
+ "\1\144\2\172\3\uffff\1\172\2\uffff\1\141\1\uffff\1\172\1\uffff\1"+
+ "\171\1\163\1\151\2\172\1\114\1\156\1\uffff\1\154\1\145\1\147\1\145"+
+ "\1\153\1\157\2\172\3\uffff\1\156\1\uffff\1\172\1\157\1\156\2\uffff"+
+ "\1\151\1\145\1\172\1\163\1\156\1\155\1\172\1\146\2\uffff\1\143\1"+
+ "\uffff\1\143\1\153\1\156\1\144\1\uffff\1\163\1\155\1\145\1\uffff"+
+ "\1\172\1\145\2\172\1\153\1\172\1\151\1\145\1\156\1\uffff\1\163\2"+
+ "\uffff\1\172\1\uffff\1\157\1\156\1\164\1\172\1\uffff\1\156\1\164"+
+ "\1\172\1\uffff\1\172\1\105\2\uffff\1\170\1\160\1\162\1\145\2\163"+
+ "\1\151\1\157\1\156\1\172\1\uffff";
+ static final String DFA24_acceptS =
+ "\7\uffff\1\12\2\uffff\1\15\1\16\1\17\10\uffff\1\44\1\45\1\uffff"+
+ "\1\47\1\50\4\uffff\1\61\1\63\1\uffff\1\71\12\uffff\1\150\2\uffff"+
+ "\1\155\1\156\4\uffff\1\150\1\67\1\136\1\5\1\6\1\134\1\37\1\7\1\51"+
+ "\1\135\1\40\1\10\1\20\1\32\1\uffff\1\11\1\12\1\33\1\uffff\1\13\1"+
+ "\14\1\26\1\73\1\15\1\16\1\17\1\21\1\142\1\23\1\22\1\141\1\25\1\143"+
+ "\1\24\1\27\1\43\7\uffff\1\140\1\41\1\137\1\42\1\44\1\45\1\62\1\46"+
+ "\1\47\1\50\10\uffff\1\61\1\63\3\uffff\1\71\17\uffff\1\147\1\uffff"+
+ "\1\154\1\uffff\1\151\1\155\2\uffff\1\113\1\uffff\1\144\1\34\1\uffff"+
+ "\1\145\1\35\2\uffff\1\105\2\uffff\1\74\2\uffff\1\65\1\152\1\70\1"+
+ "\153\4\uffff\1\76\24\uffff\1\103\12\uffff\1\146\1\36\12\uffff\1"+
+ "\127\1\uffff\1\60\6\uffff\1\72\14\uffff\1\104\10\uffff\1\56\1\114"+
+ "\12\uffff\1\55\6\uffff\1\75\1\uffff\1\100\11\uffff\1\112\21\uffff"+
+ "\1\57\15\uffff\1\102\1\uffff\1\115\1\106\6\uffff\1\66\4\uffff\1"+
+ "\52\1\107\1\122\1\uffff\1\77\1\121\1\uffff\1\110\1\uffff\1\126\7"+
+ "\uffff\1\125\10\uffff\1\124\1\31\1\53\1\uffff\1\132\3\uffff\1\123"+
+ "\1\101\10\uffff\1\54\1\130\1\uffff\1\111\4\uffff\1\133\3\uffff\1"+
+ "\4\11\uffff\1\30\1\uffff\1\120\1\116\1\uffff\1\131\4\uffff\1\117"+
+ "\3\uffff\1\64\2\uffff\1\3\1\1\12\uffff\1\2";
+ static final String DFA24_specialS =
+ "\1\0\54\uffff\1\3\1\1\57\uffff\1\2\u0140\uffff}>";
+ static final String[] DFA24_transitionS = {
+ "\11\60\2\57\2\60\1\57\22\60\1\57\1\20\1\56\1\60\1\25\1\24\1"+
+ "\16\1\55\1\12\1\13\1\2\1\3\1\7\1\4\1\27\1\23\1\52\11\53\1\5"+
+ "\1\41\1\6\1\11\1\10\1\14\1\60\32\54\1\30\1\60\1\31\1\17\1\54"+
+ "\1\60\1\40\1\50\1\44\1\45\1\43\1\47\1\54\1\22\1\21\2\54\1\42"+
+ "\1\54\1\34\1\33\1\51\1\54\1\32\1\35\1\1\2\54\1\46\3\54\1\36"+
+ "\1\15\1\37\1\26\uff81\60",
+ "\1\61\2\uffff\1\62\6\uffff\1\63\2\uffff\1\64",
+ "\1\66\15\uffff\1\67",
+ "\1\71\21\uffff\1\72",
+ "\1\74\17\uffff\1\76\1\75",
+ "\1\100",
+ "\1\103\1\102",
+ "",
+ "\1\106\1\107",
+ "\1\112\1\111",
+ "",
+ "",
+ "",
+ "\1\120\76\uffff\1\117",
+ "\1\122\26\uffff\1\123",
+ "\1\125",
+ "\1\127",
+ "\1\133\7\uffff\1\131\4\uffff\1\132\1\134",
+ "\1\135",
+ "\1\136\4\uffff\1\137\15\uffff\1\140",
+ "\1\142",
+ "",
+ "",
+ "\1\146",
+ "",
+ "",
+ "\1\152",
+ "\1\154\3\uffff\1\153",
+ "\1\156\17\uffff\1\155",
+ "\1\161\17\uffff\1\157\1\uffff\1\160",
+ "",
+ "",
+ "\1\165\10\uffff\1\164\6\uffff\1\166",
+ "",
+ "\1\170",
+ "\1\171\13\uffff\1\172",
+ "\1\173\12\uffff\1\174\2\uffff\1\176\2\uffff\1\175",
+ "\1\177\11\uffff\1\u0080",
+ "\1\u0081",
+ "\1\u0084\15\uffff\1\u0082\2\uffff\1\u0083",
+ "\1\u0085",
+ "\1\u0086",
+ "\10\u0088\2\u0089",
+ "\12\u008a",
+ "",
+ "\0\65",
+ "\0\u008b",
+ "",
+ "",
+ "\1\u008d",
+ "\1\u008e",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\1\u0090",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\u0091",
+ "",
+ "",
+ "",
+ "\1\u0094\1\u0093",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\13\65\1\u0097\6"+
+ "\65\1\u0096\7\65",
+ "\1\u0099\31\uffff\1\u009a",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\1\u009c",
+ "\1\u009d",
+ "\100\u009f\1\u009e\uffbf\u009f",
+ "\1\u00a0",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\u00a2\5\uffff\1\u00a4\11\uffff\1\u00a3",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\3\65\1\u00a5\26"+
+ "\65",
+ "\1\u00a7",
+ "\1\u00a8",
+ "\1\u00a9",
+ "\1\u00aa",
+ "\1\u00ab",
+ "\1\u00ac",
+ "",
+ "",
+ "\1\u00ad",
+ "\1\u00ae",
+ "\1\u00af",
+ "",
+ "\1\u00b0",
+ "\1\u00b1",
+ "\1\u00b2",
+ "\1\u00b3",
+ "\1\u00b4\3\uffff\1\u00b5",
+ "\1\u00b6",
+ "\1\u00b7",
+ "\1\u00b8\14\uffff\1\u00b9\1\u00ba",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\1\u00bc",
+ "\1\u00bd",
+ "\1\u00be",
+ "\1\u00bf",
+ "\1\u00c0",
+ "\1\u00c1",
+ "",
+ "\10\u00c2\2\u0089",
+ "",
+ "\12\u008a",
+ "",
+ "",
+ "\1\u00c3",
+ "\1\u00c4",
+ "",
+ "\1\u00c5",
+ "",
+ "",
+ "\1\u00c6",
+ "",
+ "",
+ "\1\u00c8",
+ "\1\u00c9",
+ "",
+ "\1\u00ca",
+ "\1\u00cb",
+ "",
+ "\1\u00cc",
+ "\1\u00cd",
+ "",
+ "",
+ "",
+ "",
+ "\1\u00ce",
+ "\1\u00cf",
+ "\1\u00d0",
+ "\1\u00d1",
+ "",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\1\u00d3",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\1\u00d5",
+ "\1\u00d6",
+ "\1\u00d7",
+ "\1\u00d8",
+ "\1\u00d9",
+ "\1\u00da",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\1\u00dc",
+ "\1\u00dd",
+ "\1\u00de",
+ "\1\u00df",
+ "\1\u00e0",
+ "\1\u00e1",
+ "\1\u00e2",
+ "\1\u00e3",
+ "\1\u00e4",
+ "\1\u00e5",
+ "",
+ "\1\u00e6",
+ "\12\65\7\uffff\1\u00e7\31\65\4\uffff\1\65\1\uffff\32\65",
+ "\1\u00e9",
+ "\1\u00ea",
+ "\1\u00eb",
+ "\1\u00ec",
+ "\10\u00c2\2\u0089",
+ "\1\u00ee\1\u00f0\2\uffff\1\u00ed\15\uffff\1\u00ef",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "",
+ "",
+ "\1\u00f3",
+ "\1\u00f4",
+ "\1\u00f5",
+ "\1\u00f6",
+ "\1\u00f7",
+ "\1\u00f8",
+ "\1\u00f9",
+ "\1\u00fa",
+ "\1\u00fb",
+ "\1\u00fc",
+ "",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "",
+ "\1\u00fe",
+ "\1\u00ff",
+ "\1\u0100",
+ "\1\u0101",
+ "\1\u0102",
+ "\1\u0103",
+ "",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\1\u0105",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\1\u0107",
+ "\1\u0108",
+ "\1\u0109",
+ "\1\u010a",
+ "\1\u010b",
+ "\1\u010c",
+ "\1\u010d",
+ "\1\u010e",
+ "\1\u010f",
+ "",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\1\u0111",
+ "\1\u0112",
+ "\1\u0113",
+ "\1\u0114",
+ "\1\u0115",
+ "\1\u0116",
+ "\1\u0117",
+ "",
+ "",
+ "\1\u0118",
+ "\1\u0119",
+ "\1\u011a",
+ "\1\u011b",
+ "\1\u011c",
+ "\1\u011d",
+ "\1\u011e",
+ "\1\u011f",
+ "\1\u0120",
+ "\1\u0121",
+ "",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\1\u0123",
+ "\1\u0124",
+ "\1\u0125",
+ "\1\u0126",
+ "\1\u0127",
+ "",
+ "\1\u0128",
+ "",
+ "\1\u0129",
+ "\1\u012a",
+ "\1\u012b",
+ "\1\u012c",
+ "\1\u012d",
+ "\1\u012e",
+ "\1\u012f",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\1\u0131",
+ "",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\1\u0134",
+ "\1\u0135",
+ "\1\u0136",
+ "\1\u0137",
+ "\1\u0138",
+ "\1\u0139",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\1\u013b",
+ "\1\u013c",
+ "\1\u013d",
+ "\1\u013e",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\1\u0142",
+ "",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\1\u0145",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\1\u0147",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\1\u0149",
+ "\1\u014a",
+ "\1\u014b",
+ "\1\u014c",
+ "\1\u014d",
+ "\1\u014e",
+ "\1\u014f",
+ "",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "",
+ "",
+ "\1\u0151",
+ "\1\u0152",
+ "\1\u0153",
+ "\1\u0154",
+ "\1\u0155",
+ "\1\u0156",
+ "",
+ "\1\u0157",
+ "\1\u0158",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "",
+ "",
+ "",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "",
+ "",
+ "\1\u015c",
+ "",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "",
+ "\1\u015e",
+ "\1\u015f",
+ "\1\u0160",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\1\u0163",
+ "\1\u0164",
+ "",
+ "\1\u0165",
+ "\1\u0166",
+ "\1\u0167",
+ "\1\u0168",
+ "\1\u0169",
+ "\1\u016a",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "",
+ "",
+ "",
+ "\1\u016d",
+ "",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\1\u016f",
+ "\1\u0170",
+ "",
+ "",
+ "\1\u0171",
+ "\1\u0172",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\1\u0174",
+ "\1\u0175",
+ "\1\u0176",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\1\u0178",
+ "",
+ "",
+ "\1\u0179",
+ "",
+ "\1\u017a",
+ "\1\u017b",
+ "\1\u017c",
+ "\1\u017d",
+ "",
+ "\1\u017e",
+ "\1\u017f",
+ "\1\u0180",
+ "",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\1\u0182",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\1\u0185",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\1\u0187",
+ "\1\u0188",
+ "\1\u0189",
+ "",
+ "\1\u018a",
+ "",
+ "",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "",
+ "\1\u018c",
+ "\1\u018d",
+ "\1\u018e",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "",
+ "\1\u0190",
+ "\1\u0191",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ "\1\u0194",
+ "",
+ "",
+ "\1\u0195",
+ "\1\u0196",
+ "\1\u0197",
+ "\1\u0198",
+ "\1\u0199",
+ "\1\u019a",
+ "\1\u019b",
+ "\1\u019c",
+ "\1\u019d",
+ "\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32\65",
+ ""
+ };
+
+ static final short[] DFA24_eot = DFA.unpackEncodedString(DFA24_eotS);
+ static final short[] DFA24_eof = DFA.unpackEncodedString(DFA24_eofS);
+ static final char[] DFA24_min = DFA.unpackEncodedStringToUnsignedChars(DFA24_minS);
+ static final char[] DFA24_max = DFA.unpackEncodedStringToUnsignedChars(DFA24_maxS);
+ static final short[] DFA24_accept = DFA.unpackEncodedString(DFA24_acceptS);
+ static final short[] DFA24_special = DFA.unpackEncodedString(DFA24_specialS);
+ static final short[][] DFA24_transition;
+
+ static {
+ int numStates = DFA24_transitionS.length;
+ DFA24_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA24_transition[i] = DFA.unpackEncodedString(DFA24_transitionS[i]);
+ }
+ }
+
+ class DFA24 extends DFA {
+
+ public DFA24(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 24;
+ this.eot = DFA24_eot;
+ this.eof = DFA24_eof;
+ this.min = DFA24_min;
+ this.max = DFA24_max;
+ this.accept = DFA24_accept;
+ this.special = DFA24_special;
+ this.transition = DFA24_transition;
+ }
+ public String getDescription() {
+ return "1:1: Tokens : ( T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | RULE_INTEGERVALUE | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_INT | RULE_WS | RULE_ANY_OTHER );";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ IntStream input = _input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA24_0 = input.LA(1);
+
+ s = -1;
+ if ( (LA24_0=='t') ) {s = 1;}
+
+ else if ( (LA24_0=='*') ) {s = 2;}
+
+ else if ( (LA24_0=='+') ) {s = 3;}
+
+ else if ( (LA24_0=='-') ) {s = 4;}
+
+ else if ( (LA24_0==':') ) {s = 5;}
+
+ else if ( (LA24_0=='<') ) {s = 6;}
+
+ else if ( (LA24_0==',') ) {s = 7;}
+
+ else if ( (LA24_0=='>') ) {s = 8;}
+
+ else if ( (LA24_0=='=') ) {s = 9;}
+
+ else if ( (LA24_0=='(') ) {s = 10;}
+
+ else if ( (LA24_0==')') ) {s = 11;}
+
+ else if ( (LA24_0=='?') ) {s = 12;}
+
+ else if ( (LA24_0=='|') ) {s = 13;}
+
+ else if ( (LA24_0=='&') ) {s = 14;}
+
+ else if ( (LA24_0=='^') ) {s = 15;}
+
+ else if ( (LA24_0=='!') ) {s = 16;}
+
+ else if ( (LA24_0=='i') ) {s = 17;}
+
+ else if ( (LA24_0=='h') ) {s = 18;}
+
+ else if ( (LA24_0=='/') ) {s = 19;}
+
+ else if ( (LA24_0=='%') ) {s = 20;}
+
+ else if ( (LA24_0=='$') ) {s = 21;}
+
+ else if ( (LA24_0=='~') ) {s = 22;}
+
+ else if ( (LA24_0=='.') ) {s = 23;}
+
+ else if ( (LA24_0=='[') ) {s = 24;}
+
+ else if ( (LA24_0==']') ) {s = 25;}
+
+ else if ( (LA24_0=='r') ) {s = 26;}
+
+ else if ( (LA24_0=='o') ) {s = 27;}
+
+ else if ( (LA24_0=='n') ) {s = 28;}
+
+ else if ( (LA24_0=='s') ) {s = 29;}
+
+ else if ( (LA24_0=='{') ) {s = 30;}
+
+ else if ( (LA24_0=='}') ) {s = 31;}
+
+ else if ( (LA24_0=='a') ) {s = 32;}
+
+ else if ( (LA24_0==';') ) {s = 33;}
+
+ else if ( (LA24_0=='l') ) {s = 34;}
+
+ else if ( (LA24_0=='e') ) {s = 35;}
+
+ else if ( (LA24_0=='c') ) {s = 36;}
+
+ else if ( (LA24_0=='d') ) {s = 37;}
+
+ else if ( (LA24_0=='w') ) {s = 38;}
+
+ else if ( (LA24_0=='f') ) {s = 39;}
+
+ else if ( (LA24_0=='b') ) {s = 40;}
+
+ else if ( (LA24_0=='p') ) {s = 41;}
+
+ else if ( (LA24_0=='0') ) {s = 42;}
+
+ else if ( ((LA24_0>='1' && LA24_0<='9')) ) {s = 43;}
+
+ else if ( ((LA24_0>='A' && LA24_0<='Z')||LA24_0=='_'||LA24_0=='g'||(LA24_0>='j' && LA24_0<='k')||LA24_0=='m'||LA24_0=='q'||(LA24_0>='u' && LA24_0<='v')||(LA24_0>='x' && LA24_0<='z')) ) {s = 44;}
+
+ else if ( (LA24_0=='\'') ) {s = 45;}
+
+ else if ( (LA24_0=='\"') ) {s = 46;}
+
+ else if ( ((LA24_0>='\t' && LA24_0<='\n')||LA24_0=='\r'||LA24_0==' ') ) {s = 47;}
+
+ else if ( ((LA24_0>='\u0000' && LA24_0<='\b')||(LA24_0>='\u000B' && LA24_0<='\f')||(LA24_0>='\u000E' && LA24_0<='\u001F')||LA24_0=='#'||LA24_0=='@'||LA24_0=='\\'||LA24_0=='`'||(LA24_0>='\u007F' && LA24_0<='\uFFFF')) ) {s = 48;}
+
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA24_46 = input.LA(1);
+
+ s = -1;
+ if ( ((LA24_46>='\u0000' && LA24_46<='\uFFFF')) ) {s = 139;}
+
+ else s = 48;
+
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA24_94 = input.LA(1);
+
+ s = -1;
+ if ( (LA24_94=='@') ) {s = 158;}
+
+ else if ( ((LA24_94>='\u0000' && LA24_94<='?')||(LA24_94>='A' && LA24_94<='\uFFFF')) ) {s = 159;}
+
+ if ( s>=0 ) return s;
+ break;
+ case 3 :
+ int LA24_45 = input.LA(1);
+
+ s = -1;
+ if ( ((LA24_45>='\u0000' && LA24_45<='\uFFFF')) ) {s = 53;}
+
+ else s = 48;
+
+ if ( s>=0 ) return s;
+ break;
+ }
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 24, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+
+
+} \ No newline at end of file
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlfParser.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlfParser.java
new file mode 100644
index 00000000000..64f25477f8c
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlfParser.java
@@ -0,0 +1,19636 @@
+package org.eclipse.papyrus.alf.parser.antlr.internal;
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.common.util.Enumerator;
+import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
+import org.eclipse.papyrus.alf.services.AlfGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalAlfParser extends AbstractInternalAntlrParser {
+ public static final String[] tokenNames = new String[] {
+ "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_INTEGERVALUE", "RULE_STRING", "RULE_ID", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_INT", "RULE_WS", "RULE_ANY_OTHER", "'testExpression'", "'testAssignmentExpression'", "'testStatement'", "'testBlock'", "'*'", "'++'", "'--'", "'::'", "'<'", "','", "'>'", "'=>'", "'('", "')'", "'?'", "':'", "'||'", "'&&'", "'|'", "'^'", "'&'", "'=='", "'!='", "'instanceof'", "'hastype'", "'<='", "'>='", "'<<'", "'>>'", "'>>>'", "'+'", "'-'", "'/'", "'%'", "'!'", "'$'", "'~'", "'.'", "'['", "']'", "'->'", "'reduce'", "'ordered'", "'isUnique'", "'null'", "'this'", "'super'", "'new'", "'{'", "'..'", "'}'", "'allInstances'", "'/*@'", "'inline'", "'*/'", "'//@'", "';'", "'let'", "'='", "'if'", "'else'", "'or'", "'switch'", "'case'", "'default'", "'while'", "'do'", "'for'", "'in'", "'break'", "'return'", "'accept'", "'classify'", "'from'", "'to'", "'true'", "'false'", "'createLink'", "'destroyLink'", "'clearAssoc'", "'select'", "'reject'", "'collect'", "'iterate'", "'forAll'", "'exists'", "'one'", "'isolated'", "'determined'", "'assured'", "'parallel'", "'+='", "'-='", "'*='", "'%='", "'/='", "'&='", "'|='", "'^='", "'<<='", "'>>='", "'>>>='"
+ };
+ public static final int RULE_ID=6;
+ public static final int T__29=29;
+ public static final int T__28=28;
+ public static final int T__27=27;
+ public static final int T__26=26;
+ public static final int T__25=25;
+ public static final int T__24=24;
+ public static final int T__23=23;
+ public static final int T__22=22;
+ public static final int RULE_ANY_OTHER=11;
+ public static final int T__21=21;
+ public static final int T__20=20;
+ public static final int EOF=-1;
+ public static final int T__93=93;
+ public static final int T__19=19;
+ public static final int T__94=94;
+ public static final int T__91=91;
+ public static final int T__92=92;
+ public static final int T__16=16;
+ public static final int T__15=15;
+ public static final int T__90=90;
+ public static final int T__18=18;
+ public static final int T__17=17;
+ public static final int T__12=12;
+ public static final int T__14=14;
+ public static final int T__13=13;
+ public static final int T__99=99;
+ public static final int RULE_INTEGERVALUE=4;
+ public static final int T__98=98;
+ public static final int T__97=97;
+ public static final int T__96=96;
+ public static final int T__95=95;
+ public static final int T__80=80;
+ public static final int T__81=81;
+ public static final int T__82=82;
+ public static final int T__83=83;
+ public static final int T__85=85;
+ public static final int T__84=84;
+ public static final int T__87=87;
+ public static final int T__86=86;
+ public static final int T__89=89;
+ public static final int T__88=88;
+ public static final int RULE_ML_COMMENT=7;
+ public static final int RULE_STRING=5;
+ public static final int T__71=71;
+ public static final int T__72=72;
+ public static final int T__70=70;
+ public static final int T__76=76;
+ public static final int T__75=75;
+ public static final int T__74=74;
+ public static final int T__73=73;
+ public static final int T__79=79;
+ public static final int T__78=78;
+ public static final int T__77=77;
+ public static final int T__68=68;
+ public static final int T__69=69;
+ public static final int T__66=66;
+ public static final int T__67=67;
+ public static final int T__64=64;
+ public static final int T__65=65;
+ public static final int T__62=62;
+ public static final int T__63=63;
+ public static final int T__61=61;
+ public static final int T__60=60;
+ public static final int T__55=55;
+ public static final int T__56=56;
+ public static final int T__57=57;
+ public static final int T__58=58;
+ public static final int T__51=51;
+ public static final int T__52=52;
+ public static final int T__53=53;
+ public static final int T__54=54;
+ public static final int T__107=107;
+ public static final int T__108=108;
+ public static final int T__109=109;
+ public static final int T__103=103;
+ public static final int T__59=59;
+ public static final int T__104=104;
+ public static final int T__105=105;
+ public static final int T__106=106;
+ public static final int T__111=111;
+ public static final int T__110=110;
+ public static final int RULE_INT=9;
+ public static final int T__113=113;
+ public static final int T__112=112;
+ public static final int T__50=50;
+ public static final int T__42=42;
+ public static final int T__43=43;
+ public static final int T__40=40;
+ public static final int T__41=41;
+ public static final int T__46=46;
+ public static final int T__47=47;
+ public static final int T__44=44;
+ public static final int T__45=45;
+ public static final int T__48=48;
+ public static final int T__49=49;
+ public static final int T__102=102;
+ public static final int T__101=101;
+ public static final int T__100=100;
+ public static final int RULE_SL_COMMENT=8;
+ public static final int T__30=30;
+ public static final int T__31=31;
+ public static final int T__32=32;
+ public static final int T__33=33;
+ public static final int T__34=34;
+ public static final int T__35=35;
+ public static final int T__36=36;
+ public static final int T__37=37;
+ public static final int T__38=38;
+ public static final int T__39=39;
+ public static final int RULE_WS=10;
+
+ // delegates
+ // delegators
+
+
+ public InternalAlfParser(TokenStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalAlfParser(TokenStream input, RecognizerSharedState state) {
+ super(input, state);
+
+ }
+
+
+ public String[] getTokenNames() { return InternalAlfParser.tokenNames; }
+ public String getGrammarFileName() { return "../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g"; }
+
+
+
+ private AlfGrammarAccess grammarAccess;
+
+ public InternalAlfParser(TokenStream input, AlfGrammarAccess grammarAccess) {
+ this(input);
+ this.grammarAccess = grammarAccess;
+ registerRules(grammarAccess.getGrammar());
+ }
+
+ @Override
+ protected String getFirstRuleName() {
+ return "Test";
+ }
+
+ @Override
+ protected AlfGrammarAccess getGrammarAccess() {
+ return grammarAccess;
+ }
+
+
+
+ // $ANTLR start "entryRuleTest"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:68:1: entryRuleTest returns [EObject current=null] : iv_ruleTest= ruleTest EOF ;
+ public final EObject entryRuleTest() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleTest = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:69:2: (iv_ruleTest= ruleTest EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:70:2: iv_ruleTest= ruleTest EOF
+ {
+ newCompositeNode(grammarAccess.getTestRule());
+ pushFollow(FOLLOW_ruleTest_in_entryRuleTest75);
+ iv_ruleTest=ruleTest();
+
+ state._fsp--;
+
+ current =iv_ruleTest;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleTest85);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleTest"
+
+
+ // $ANTLR start "ruleTest"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:77:1: ruleTest returns [EObject current=null] : ( (otherlv_0= 'testExpression' ( (lv_expression_1_0= ruleExpression ) ) )* (otherlv_2= 'testAssignmentExpression' ( (lv_assignExpression_3_0= ruleAssignmentCompletion ) ) )* (otherlv_4= 'testStatement' ( (lv_statements_5_0= ruleStatement ) ) )* (otherlv_6= 'testBlock' ( (lv_block_7_0= ruleBlock ) ) ) ) ;
+ public final EObject ruleTest() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_2=null;
+ Token otherlv_4=null;
+ Token otherlv_6=null;
+ EObject lv_expression_1_0 = null;
+
+ EObject lv_assignExpression_3_0 = null;
+
+ EObject lv_statements_5_0 = null;
+
+ EObject lv_block_7_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:80:28: ( ( (otherlv_0= 'testExpression' ( (lv_expression_1_0= ruleExpression ) ) )* (otherlv_2= 'testAssignmentExpression' ( (lv_assignExpression_3_0= ruleAssignmentCompletion ) ) )* (otherlv_4= 'testStatement' ( (lv_statements_5_0= ruleStatement ) ) )* (otherlv_6= 'testBlock' ( (lv_block_7_0= ruleBlock ) ) ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:81:1: ( (otherlv_0= 'testExpression' ( (lv_expression_1_0= ruleExpression ) ) )* (otherlv_2= 'testAssignmentExpression' ( (lv_assignExpression_3_0= ruleAssignmentCompletion ) ) )* (otherlv_4= 'testStatement' ( (lv_statements_5_0= ruleStatement ) ) )* (otherlv_6= 'testBlock' ( (lv_block_7_0= ruleBlock ) ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:81:1: ( (otherlv_0= 'testExpression' ( (lv_expression_1_0= ruleExpression ) ) )* (otherlv_2= 'testAssignmentExpression' ( (lv_assignExpression_3_0= ruleAssignmentCompletion ) ) )* (otherlv_4= 'testStatement' ( (lv_statements_5_0= ruleStatement ) ) )* (otherlv_6= 'testBlock' ( (lv_block_7_0= ruleBlock ) ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:81:2: (otherlv_0= 'testExpression' ( (lv_expression_1_0= ruleExpression ) ) )* (otherlv_2= 'testAssignmentExpression' ( (lv_assignExpression_3_0= ruleAssignmentCompletion ) ) )* (otherlv_4= 'testStatement' ( (lv_statements_5_0= ruleStatement ) ) )* (otherlv_6= 'testBlock' ( (lv_block_7_0= ruleBlock ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:81:2: (otherlv_0= 'testExpression' ( (lv_expression_1_0= ruleExpression ) ) )*
+ loop1:
+ do {
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0==12) ) {
+ alt1=1;
+ }
+
+
+ switch (alt1) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:81:4: otherlv_0= 'testExpression' ( (lv_expression_1_0= ruleExpression ) )
+ {
+ otherlv_0=(Token)match(input,12,FOLLOW_12_in_ruleTest123);
+
+ newLeafNode(otherlv_0, grammarAccess.getTestAccess().getTestExpressionKeyword_0_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:85:1: ( (lv_expression_1_0= ruleExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:86:1: (lv_expression_1_0= ruleExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:86:1: (lv_expression_1_0= ruleExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:87:3: lv_expression_1_0= ruleExpression
+ {
+
+ newCompositeNode(grammarAccess.getTestAccess().getExpressionExpressionParserRuleCall_0_1_0());
+
+ pushFollow(FOLLOW_ruleExpression_in_ruleTest144);
+ lv_expression_1_0=ruleExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getTestRule());
+ }
+ add(
+ current,
+ "expression",
+ lv_expression_1_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop1;
+ }
+ } while (true);
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:103:4: (otherlv_2= 'testAssignmentExpression' ( (lv_assignExpression_3_0= ruleAssignmentCompletion ) ) )*
+ loop2:
+ do {
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( (LA2_0==13) ) {
+ alt2=1;
+ }
+
+
+ switch (alt2) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:103:6: otherlv_2= 'testAssignmentExpression' ( (lv_assignExpression_3_0= ruleAssignmentCompletion ) )
+ {
+ otherlv_2=(Token)match(input,13,FOLLOW_13_in_ruleTest159);
+
+ newLeafNode(otherlv_2, grammarAccess.getTestAccess().getTestAssignmentExpressionKeyword_1_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:107:1: ( (lv_assignExpression_3_0= ruleAssignmentCompletion ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:108:1: (lv_assignExpression_3_0= ruleAssignmentCompletion )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:108:1: (lv_assignExpression_3_0= ruleAssignmentCompletion )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:109:3: lv_assignExpression_3_0= ruleAssignmentCompletion
+ {
+
+ newCompositeNode(grammarAccess.getTestAccess().getAssignExpressionAssignmentCompletionParserRuleCall_1_1_0());
+
+ pushFollow(FOLLOW_ruleAssignmentCompletion_in_ruleTest180);
+ lv_assignExpression_3_0=ruleAssignmentCompletion();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getTestRule());
+ }
+ add(
+ current,
+ "assignExpression",
+ lv_assignExpression_3_0,
+ "AssignmentCompletion");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop2;
+ }
+ } while (true);
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:125:4: (otherlv_4= 'testStatement' ( (lv_statements_5_0= ruleStatement ) ) )*
+ loop3:
+ do {
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( (LA3_0==14) ) {
+ alt3=1;
+ }
+
+
+ switch (alt3) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:125:6: otherlv_4= 'testStatement' ( (lv_statements_5_0= ruleStatement ) )
+ {
+ otherlv_4=(Token)match(input,14,FOLLOW_14_in_ruleTest195);
+
+ newLeafNode(otherlv_4, grammarAccess.getTestAccess().getTestStatementKeyword_2_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:129:1: ( (lv_statements_5_0= ruleStatement ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:130:1: (lv_statements_5_0= ruleStatement )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:130:1: (lv_statements_5_0= ruleStatement )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:131:3: lv_statements_5_0= ruleStatement
+ {
+
+ newCompositeNode(grammarAccess.getTestAccess().getStatementsStatementParserRuleCall_2_1_0());
+
+ pushFollow(FOLLOW_ruleStatement_in_ruleTest216);
+ lv_statements_5_0=ruleStatement();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getTestRule());
+ }
+ add(
+ current,
+ "statements",
+ lv_statements_5_0,
+ "Statement");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop3;
+ }
+ } while (true);
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:147:4: (otherlv_6= 'testBlock' ( (lv_block_7_0= ruleBlock ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:147:6: otherlv_6= 'testBlock' ( (lv_block_7_0= ruleBlock ) )
+ {
+ otherlv_6=(Token)match(input,15,FOLLOW_15_in_ruleTest231);
+
+ newLeafNode(otherlv_6, grammarAccess.getTestAccess().getTestBlockKeyword_3_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:151:1: ( (lv_block_7_0= ruleBlock ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:152:1: (lv_block_7_0= ruleBlock )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:152:1: (lv_block_7_0= ruleBlock )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:153:3: lv_block_7_0= ruleBlock
+ {
+
+ newCompositeNode(grammarAccess.getTestAccess().getBlockBlockParserRuleCall_3_1_0());
+
+ pushFollow(FOLLOW_ruleBlock_in_ruleTest252);
+ lv_block_7_0=ruleBlock();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getTestRule());
+ }
+ set(
+ current,
+ "block",
+ lv_block_7_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleTest"
+
+
+ // $ANTLR start "entryRuleLITERAL"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:177:1: entryRuleLITERAL returns [EObject current=null] : iv_ruleLITERAL= ruleLITERAL EOF ;
+ public final EObject entryRuleLITERAL() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleLITERAL = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:178:2: (iv_ruleLITERAL= ruleLITERAL EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:179:2: iv_ruleLITERAL= ruleLITERAL EOF
+ {
+ newCompositeNode(grammarAccess.getLITERALRule());
+ pushFollow(FOLLOW_ruleLITERAL_in_entryRuleLITERAL289);
+ iv_ruleLITERAL=ruleLITERAL();
+
+ state._fsp--;
+
+ current =iv_ruleLITERAL;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleLITERAL299);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleLITERAL"
+
+
+ // $ANTLR start "ruleLITERAL"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:186:1: ruleLITERAL returns [EObject current=null] : (this_BOOLEAN_LITERAL_0= ruleBOOLEAN_LITERAL | this_NUMBER_LITERAL_1= ruleNUMBER_LITERAL | this_STRING_LITERAL_2= ruleSTRING_LITERAL ) ;
+ public final EObject ruleLITERAL() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_BOOLEAN_LITERAL_0 = null;
+
+ EObject this_NUMBER_LITERAL_1 = null;
+
+ EObject this_STRING_LITERAL_2 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:189:28: ( (this_BOOLEAN_LITERAL_0= ruleBOOLEAN_LITERAL | this_NUMBER_LITERAL_1= ruleNUMBER_LITERAL | this_STRING_LITERAL_2= ruleSTRING_LITERAL ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:190:1: (this_BOOLEAN_LITERAL_0= ruleBOOLEAN_LITERAL | this_NUMBER_LITERAL_1= ruleNUMBER_LITERAL | this_STRING_LITERAL_2= ruleSTRING_LITERAL )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:190:1: (this_BOOLEAN_LITERAL_0= ruleBOOLEAN_LITERAL | this_NUMBER_LITERAL_1= ruleNUMBER_LITERAL | this_STRING_LITERAL_2= ruleSTRING_LITERAL )
+ int alt4=3;
+ switch ( input.LA(1) ) {
+ case 87:
+ case 88:
+ {
+ alt4=1;
+ }
+ break;
+ case RULE_INTEGERVALUE:
+ case 16:
+ {
+ alt4=2;
+ }
+ break;
+ case RULE_STRING:
+ {
+ alt4=3;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 4, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt4) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:191:5: this_BOOLEAN_LITERAL_0= ruleBOOLEAN_LITERAL
+ {
+
+ newCompositeNode(grammarAccess.getLITERALAccess().getBOOLEAN_LITERALParserRuleCall_0());
+
+ pushFollow(FOLLOW_ruleBOOLEAN_LITERAL_in_ruleLITERAL346);
+ this_BOOLEAN_LITERAL_0=ruleBOOLEAN_LITERAL();
+
+ state._fsp--;
+
+
+ current = this_BOOLEAN_LITERAL_0;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:201:5: this_NUMBER_LITERAL_1= ruleNUMBER_LITERAL
+ {
+
+ newCompositeNode(grammarAccess.getLITERALAccess().getNUMBER_LITERALParserRuleCall_1());
+
+ pushFollow(FOLLOW_ruleNUMBER_LITERAL_in_ruleLITERAL373);
+ this_NUMBER_LITERAL_1=ruleNUMBER_LITERAL();
+
+ state._fsp--;
+
+
+ current = this_NUMBER_LITERAL_1;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:211:5: this_STRING_LITERAL_2= ruleSTRING_LITERAL
+ {
+
+ newCompositeNode(grammarAccess.getLITERALAccess().getSTRING_LITERALParserRuleCall_2());
+
+ pushFollow(FOLLOW_ruleSTRING_LITERAL_in_ruleLITERAL400);
+ this_STRING_LITERAL_2=ruleSTRING_LITERAL();
+
+ state._fsp--;
+
+
+ current = this_STRING_LITERAL_2;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleLITERAL"
+
+
+ // $ANTLR start "entryRuleBOOLEAN_LITERAL"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:227:1: entryRuleBOOLEAN_LITERAL returns [EObject current=null] : iv_ruleBOOLEAN_LITERAL= ruleBOOLEAN_LITERAL EOF ;
+ public final EObject entryRuleBOOLEAN_LITERAL() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleBOOLEAN_LITERAL = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:228:2: (iv_ruleBOOLEAN_LITERAL= ruleBOOLEAN_LITERAL EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:229:2: iv_ruleBOOLEAN_LITERAL= ruleBOOLEAN_LITERAL EOF
+ {
+ newCompositeNode(grammarAccess.getBOOLEAN_LITERALRule());
+ pushFollow(FOLLOW_ruleBOOLEAN_LITERAL_in_entryRuleBOOLEAN_LITERAL435);
+ iv_ruleBOOLEAN_LITERAL=ruleBOOLEAN_LITERAL();
+
+ state._fsp--;
+
+ current =iv_ruleBOOLEAN_LITERAL;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleBOOLEAN_LITERAL445);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleBOOLEAN_LITERAL"
+
+
+ // $ANTLR start "ruleBOOLEAN_LITERAL"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:236:1: ruleBOOLEAN_LITERAL returns [EObject current=null] : ( (lv_value_0_0= ruleBooleanValue ) ) ;
+ public final EObject ruleBOOLEAN_LITERAL() throws RecognitionException {
+ EObject current = null;
+
+ Enumerator lv_value_0_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:239:28: ( ( (lv_value_0_0= ruleBooleanValue ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:240:1: ( (lv_value_0_0= ruleBooleanValue ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:240:1: ( (lv_value_0_0= ruleBooleanValue ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:241:1: (lv_value_0_0= ruleBooleanValue )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:241:1: (lv_value_0_0= ruleBooleanValue )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:242:3: lv_value_0_0= ruleBooleanValue
+ {
+
+ newCompositeNode(grammarAccess.getBOOLEAN_LITERALAccess().getValueBooleanValueEnumRuleCall_0());
+
+ pushFollow(FOLLOW_ruleBooleanValue_in_ruleBOOLEAN_LITERAL490);
+ lv_value_0_0=ruleBooleanValue();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getBOOLEAN_LITERALRule());
+ }
+ set(
+ current,
+ "value",
+ lv_value_0_0,
+ "BooleanValue");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleBOOLEAN_LITERAL"
+
+
+ // $ANTLR start "entryRuleNUMBER_LITERAL"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:266:1: entryRuleNUMBER_LITERAL returns [EObject current=null] : iv_ruleNUMBER_LITERAL= ruleNUMBER_LITERAL EOF ;
+ public final EObject entryRuleNUMBER_LITERAL() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleNUMBER_LITERAL = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:267:2: (iv_ruleNUMBER_LITERAL= ruleNUMBER_LITERAL EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:268:2: iv_ruleNUMBER_LITERAL= ruleNUMBER_LITERAL EOF
+ {
+ newCompositeNode(grammarAccess.getNUMBER_LITERALRule());
+ pushFollow(FOLLOW_ruleNUMBER_LITERAL_in_entryRuleNUMBER_LITERAL525);
+ iv_ruleNUMBER_LITERAL=ruleNUMBER_LITERAL();
+
+ state._fsp--;
+
+ current =iv_ruleNUMBER_LITERAL;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleNUMBER_LITERAL535);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleNUMBER_LITERAL"
+
+
+ // $ANTLR start "ruleNUMBER_LITERAL"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:275:1: ruleNUMBER_LITERAL returns [EObject current=null] : (this_INTEGER_LITERAL_0= ruleINTEGER_LITERAL | this_UNLIMITED_LITERAL_1= ruleUNLIMITED_LITERAL ) ;
+ public final EObject ruleNUMBER_LITERAL() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_INTEGER_LITERAL_0 = null;
+
+ EObject this_UNLIMITED_LITERAL_1 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:278:28: ( (this_INTEGER_LITERAL_0= ruleINTEGER_LITERAL | this_UNLIMITED_LITERAL_1= ruleUNLIMITED_LITERAL ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:279:1: (this_INTEGER_LITERAL_0= ruleINTEGER_LITERAL | this_UNLIMITED_LITERAL_1= ruleUNLIMITED_LITERAL )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:279:1: (this_INTEGER_LITERAL_0= ruleINTEGER_LITERAL | this_UNLIMITED_LITERAL_1= ruleUNLIMITED_LITERAL )
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0==RULE_INTEGERVALUE) ) {
+ alt5=1;
+ }
+ else if ( (LA5_0==16) ) {
+ alt5=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 5, 0, input);
+
+ throw nvae;
+ }
+ switch (alt5) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:280:5: this_INTEGER_LITERAL_0= ruleINTEGER_LITERAL
+ {
+
+ newCompositeNode(grammarAccess.getNUMBER_LITERALAccess().getINTEGER_LITERALParserRuleCall_0());
+
+ pushFollow(FOLLOW_ruleINTEGER_LITERAL_in_ruleNUMBER_LITERAL582);
+ this_INTEGER_LITERAL_0=ruleINTEGER_LITERAL();
+
+ state._fsp--;
+
+
+ current = this_INTEGER_LITERAL_0;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:290:5: this_UNLIMITED_LITERAL_1= ruleUNLIMITED_LITERAL
+ {
+
+ newCompositeNode(grammarAccess.getNUMBER_LITERALAccess().getUNLIMITED_LITERALParserRuleCall_1());
+
+ pushFollow(FOLLOW_ruleUNLIMITED_LITERAL_in_ruleNUMBER_LITERAL609);
+ this_UNLIMITED_LITERAL_1=ruleUNLIMITED_LITERAL();
+
+ state._fsp--;
+
+
+ current = this_UNLIMITED_LITERAL_1;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleNUMBER_LITERAL"
+
+
+ // $ANTLR start "entryRuleINTEGER_LITERAL"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:306:1: entryRuleINTEGER_LITERAL returns [EObject current=null] : iv_ruleINTEGER_LITERAL= ruleINTEGER_LITERAL EOF ;
+ public final EObject entryRuleINTEGER_LITERAL() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleINTEGER_LITERAL = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:307:2: (iv_ruleINTEGER_LITERAL= ruleINTEGER_LITERAL EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:308:2: iv_ruleINTEGER_LITERAL= ruleINTEGER_LITERAL EOF
+ {
+ newCompositeNode(grammarAccess.getINTEGER_LITERALRule());
+ pushFollow(FOLLOW_ruleINTEGER_LITERAL_in_entryRuleINTEGER_LITERAL644);
+ iv_ruleINTEGER_LITERAL=ruleINTEGER_LITERAL();
+
+ state._fsp--;
+
+ current =iv_ruleINTEGER_LITERAL;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleINTEGER_LITERAL654);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleINTEGER_LITERAL"
+
+
+ // $ANTLR start "ruleINTEGER_LITERAL"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:315:1: ruleINTEGER_LITERAL returns [EObject current=null] : ( (lv_value_0_0= RULE_INTEGERVALUE ) ) ;
+ public final EObject ruleINTEGER_LITERAL() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_value_0_0=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:318:28: ( ( (lv_value_0_0= RULE_INTEGERVALUE ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:319:1: ( (lv_value_0_0= RULE_INTEGERVALUE ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:319:1: ( (lv_value_0_0= RULE_INTEGERVALUE ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:320:1: (lv_value_0_0= RULE_INTEGERVALUE )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:320:1: (lv_value_0_0= RULE_INTEGERVALUE )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:321:3: lv_value_0_0= RULE_INTEGERVALUE
+ {
+ lv_value_0_0=(Token)match(input,RULE_INTEGERVALUE,FOLLOW_RULE_INTEGERVALUE_in_ruleINTEGER_LITERAL695);
+
+ newLeafNode(lv_value_0_0, grammarAccess.getINTEGER_LITERALAccess().getValueIntegerValueTerminalRuleCall_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getINTEGER_LITERALRule());
+ }
+ setWithLastConsumed(
+ current,
+ "value",
+ lv_value_0_0,
+ "IntegerValue");
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleINTEGER_LITERAL"
+
+
+ // $ANTLR start "entryRuleUNLIMITED_LITERAL"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:345:1: entryRuleUNLIMITED_LITERAL returns [EObject current=null] : iv_ruleUNLIMITED_LITERAL= ruleUNLIMITED_LITERAL EOF ;
+ public final EObject entryRuleUNLIMITED_LITERAL() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleUNLIMITED_LITERAL = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:346:2: (iv_ruleUNLIMITED_LITERAL= ruleUNLIMITED_LITERAL EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:347:2: iv_ruleUNLIMITED_LITERAL= ruleUNLIMITED_LITERAL EOF
+ {
+ newCompositeNode(grammarAccess.getUNLIMITED_LITERALRule());
+ pushFollow(FOLLOW_ruleUNLIMITED_LITERAL_in_entryRuleUNLIMITED_LITERAL735);
+ iv_ruleUNLIMITED_LITERAL=ruleUNLIMITED_LITERAL();
+
+ state._fsp--;
+
+ current =iv_ruleUNLIMITED_LITERAL;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleUNLIMITED_LITERAL745);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleUNLIMITED_LITERAL"
+
+
+ // $ANTLR start "ruleUNLIMITED_LITERAL"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:354:1: ruleUNLIMITED_LITERAL returns [EObject current=null] : ( (lv_value_0_0= '*' ) ) ;
+ public final EObject ruleUNLIMITED_LITERAL() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_value_0_0=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:357:28: ( ( (lv_value_0_0= '*' ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:358:1: ( (lv_value_0_0= '*' ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:358:1: ( (lv_value_0_0= '*' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:359:1: (lv_value_0_0= '*' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:359:1: (lv_value_0_0= '*' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:360:3: lv_value_0_0= '*'
+ {
+ lv_value_0_0=(Token)match(input,16,FOLLOW_16_in_ruleUNLIMITED_LITERAL787);
+
+ newLeafNode(lv_value_0_0, grammarAccess.getUNLIMITED_LITERALAccess().getValueAsteriskKeyword_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getUNLIMITED_LITERALRule());
+ }
+ setWithLastConsumed(current, "value", lv_value_0_0, "*");
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleUNLIMITED_LITERAL"
+
+
+ // $ANTLR start "entryRuleSTRING_LITERAL"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:381:1: entryRuleSTRING_LITERAL returns [EObject current=null] : iv_ruleSTRING_LITERAL= ruleSTRING_LITERAL EOF ;
+ public final EObject entryRuleSTRING_LITERAL() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleSTRING_LITERAL = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:382:2: (iv_ruleSTRING_LITERAL= ruleSTRING_LITERAL EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:383:2: iv_ruleSTRING_LITERAL= ruleSTRING_LITERAL EOF
+ {
+ newCompositeNode(grammarAccess.getSTRING_LITERALRule());
+ pushFollow(FOLLOW_ruleSTRING_LITERAL_in_entryRuleSTRING_LITERAL835);
+ iv_ruleSTRING_LITERAL=ruleSTRING_LITERAL();
+
+ state._fsp--;
+
+ current =iv_ruleSTRING_LITERAL;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleSTRING_LITERAL845);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleSTRING_LITERAL"
+
+
+ // $ANTLR start "ruleSTRING_LITERAL"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:390:1: ruleSTRING_LITERAL returns [EObject current=null] : ( (lv_value_0_0= RULE_STRING ) ) ;
+ public final EObject ruleSTRING_LITERAL() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_value_0_0=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:393:28: ( ( (lv_value_0_0= RULE_STRING ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:394:1: ( (lv_value_0_0= RULE_STRING ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:394:1: ( (lv_value_0_0= RULE_STRING ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:395:1: (lv_value_0_0= RULE_STRING )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:395:1: (lv_value_0_0= RULE_STRING )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:396:3: lv_value_0_0= RULE_STRING
+ {
+ lv_value_0_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleSTRING_LITERAL886);
+
+ newLeafNode(lv_value_0_0, grammarAccess.getSTRING_LITERALAccess().getValueSTRINGTerminalRuleCall_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getSTRING_LITERALRule());
+ }
+ setWithLastConsumed(
+ current,
+ "value",
+ lv_value_0_0,
+ "STRING");
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleSTRING_LITERAL"
+
+
+ // $ANTLR start "entryRuleNameExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:420:1: entryRuleNameExpression returns [EObject current=null] : iv_ruleNameExpression= ruleNameExpression EOF ;
+ public final EObject entryRuleNameExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleNameExpression = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:421:2: (iv_ruleNameExpression= ruleNameExpression EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:422:2: iv_ruleNameExpression= ruleNameExpression EOF
+ {
+ newCompositeNode(grammarAccess.getNameExpressionRule());
+ pushFollow(FOLLOW_ruleNameExpression_in_entryRuleNameExpression926);
+ iv_ruleNameExpression=ruleNameExpression();
+
+ state._fsp--;
+
+ current =iv_ruleNameExpression;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleNameExpression936);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleNameExpression"
+
+
+ // $ANTLR start "ruleNameExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:429:1: ruleNameExpression returns [EObject current=null] : ( ( ( ( ( (lv_prefixOp_0_1= '++' | lv_prefixOp_0_2= '--' ) ) ) ( (lv_path_1_0= ruleQualifiedNamePath ) )? ( (lv_id_2_0= RULE_ID ) ) ) | ( ( (lv_path_3_0= ruleQualifiedNamePath ) )? ( (lv_id_4_0= RULE_ID ) ) ( ( (lv_invocationCompletion_5_0= ruleTuple ) ) | ( (lv_sequenceConstructionCompletion_6_0= ruleSequenceConstructionOrAccessCompletion ) ) | ( ( (lv_postfixOp_7_1= '++' | lv_postfixOp_7_2= '--' ) ) ) )? ) ) ( (lv_suffix_8_0= ruleSuffixExpression ) )? ) ;
+ public final EObject ruleNameExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_prefixOp_0_1=null;
+ Token lv_prefixOp_0_2=null;
+ Token lv_id_2_0=null;
+ Token lv_id_4_0=null;
+ Token lv_postfixOp_7_1=null;
+ Token lv_postfixOp_7_2=null;
+ EObject lv_path_1_0 = null;
+
+ EObject lv_path_3_0 = null;
+
+ EObject lv_invocationCompletion_5_0 = null;
+
+ EObject lv_sequenceConstructionCompletion_6_0 = null;
+
+ EObject lv_suffix_8_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:432:28: ( ( ( ( ( ( (lv_prefixOp_0_1= '++' | lv_prefixOp_0_2= '--' ) ) ) ( (lv_path_1_0= ruleQualifiedNamePath ) )? ( (lv_id_2_0= RULE_ID ) ) ) | ( ( (lv_path_3_0= ruleQualifiedNamePath ) )? ( (lv_id_4_0= RULE_ID ) ) ( ( (lv_invocationCompletion_5_0= ruleTuple ) ) | ( (lv_sequenceConstructionCompletion_6_0= ruleSequenceConstructionOrAccessCompletion ) ) | ( ( (lv_postfixOp_7_1= '++' | lv_postfixOp_7_2= '--' ) ) ) )? ) ) ( (lv_suffix_8_0= ruleSuffixExpression ) )? ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:433:1: ( ( ( ( ( (lv_prefixOp_0_1= '++' | lv_prefixOp_0_2= '--' ) ) ) ( (lv_path_1_0= ruleQualifiedNamePath ) )? ( (lv_id_2_0= RULE_ID ) ) ) | ( ( (lv_path_3_0= ruleQualifiedNamePath ) )? ( (lv_id_4_0= RULE_ID ) ) ( ( (lv_invocationCompletion_5_0= ruleTuple ) ) | ( (lv_sequenceConstructionCompletion_6_0= ruleSequenceConstructionOrAccessCompletion ) ) | ( ( (lv_postfixOp_7_1= '++' | lv_postfixOp_7_2= '--' ) ) ) )? ) ) ( (lv_suffix_8_0= ruleSuffixExpression ) )? )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:433:1: ( ( ( ( ( (lv_prefixOp_0_1= '++' | lv_prefixOp_0_2= '--' ) ) ) ( (lv_path_1_0= ruleQualifiedNamePath ) )? ( (lv_id_2_0= RULE_ID ) ) ) | ( ( (lv_path_3_0= ruleQualifiedNamePath ) )? ( (lv_id_4_0= RULE_ID ) ) ( ( (lv_invocationCompletion_5_0= ruleTuple ) ) | ( (lv_sequenceConstructionCompletion_6_0= ruleSequenceConstructionOrAccessCompletion ) ) | ( ( (lv_postfixOp_7_1= '++' | lv_postfixOp_7_2= '--' ) ) ) )? ) ) ( (lv_suffix_8_0= ruleSuffixExpression ) )? )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:433:2: ( ( ( ( (lv_prefixOp_0_1= '++' | lv_prefixOp_0_2= '--' ) ) ) ( (lv_path_1_0= ruleQualifiedNamePath ) )? ( (lv_id_2_0= RULE_ID ) ) ) | ( ( (lv_path_3_0= ruleQualifiedNamePath ) )? ( (lv_id_4_0= RULE_ID ) ) ( ( (lv_invocationCompletion_5_0= ruleTuple ) ) | ( (lv_sequenceConstructionCompletion_6_0= ruleSequenceConstructionOrAccessCompletion ) ) | ( ( (lv_postfixOp_7_1= '++' | lv_postfixOp_7_2= '--' ) ) ) )? ) ) ( (lv_suffix_8_0= ruleSuffixExpression ) )?
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:433:2: ( ( ( ( (lv_prefixOp_0_1= '++' | lv_prefixOp_0_2= '--' ) ) ) ( (lv_path_1_0= ruleQualifiedNamePath ) )? ( (lv_id_2_0= RULE_ID ) ) ) | ( ( (lv_path_3_0= ruleQualifiedNamePath ) )? ( (lv_id_4_0= RULE_ID ) ) ( ( (lv_invocationCompletion_5_0= ruleTuple ) ) | ( (lv_sequenceConstructionCompletion_6_0= ruleSequenceConstructionOrAccessCompletion ) ) | ( ( (lv_postfixOp_7_1= '++' | lv_postfixOp_7_2= '--' ) ) ) )? ) )
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+
+ if ( ((LA11_0>=17 && LA11_0<=18)) ) {
+ alt11=1;
+ }
+ else if ( (LA11_0==RULE_ID) ) {
+ alt11=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 11, 0, input);
+
+ throw nvae;
+ }
+ switch (alt11) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:433:3: ( ( ( (lv_prefixOp_0_1= '++' | lv_prefixOp_0_2= '--' ) ) ) ( (lv_path_1_0= ruleQualifiedNamePath ) )? ( (lv_id_2_0= RULE_ID ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:433:3: ( ( ( (lv_prefixOp_0_1= '++' | lv_prefixOp_0_2= '--' ) ) ) ( (lv_path_1_0= ruleQualifiedNamePath ) )? ( (lv_id_2_0= RULE_ID ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:433:4: ( ( (lv_prefixOp_0_1= '++' | lv_prefixOp_0_2= '--' ) ) ) ( (lv_path_1_0= ruleQualifiedNamePath ) )? ( (lv_id_2_0= RULE_ID ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:433:4: ( ( (lv_prefixOp_0_1= '++' | lv_prefixOp_0_2= '--' ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:434:1: ( (lv_prefixOp_0_1= '++' | lv_prefixOp_0_2= '--' ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:434:1: ( (lv_prefixOp_0_1= '++' | lv_prefixOp_0_2= '--' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:435:1: (lv_prefixOp_0_1= '++' | lv_prefixOp_0_2= '--' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:435:1: (lv_prefixOp_0_1= '++' | lv_prefixOp_0_2= '--' )
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0==17) ) {
+ alt6=1;
+ }
+ else if ( (LA6_0==18) ) {
+ alt6=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 6, 0, input);
+
+ throw nvae;
+ }
+ switch (alt6) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:436:3: lv_prefixOp_0_1= '++'
+ {
+ lv_prefixOp_0_1=(Token)match(input,17,FOLLOW_17_in_ruleNameExpression983);
+
+ newLeafNode(lv_prefixOp_0_1, grammarAccess.getNameExpressionAccess().getPrefixOpPlusSignPlusSignKeyword_0_0_0_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getNameExpressionRule());
+ }
+ setWithLastConsumed(current, "prefixOp", lv_prefixOp_0_1, null);
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:448:8: lv_prefixOp_0_2= '--'
+ {
+ lv_prefixOp_0_2=(Token)match(input,18,FOLLOW_18_in_ruleNameExpression1012);
+
+ newLeafNode(lv_prefixOp_0_2, grammarAccess.getNameExpressionAccess().getPrefixOpHyphenMinusHyphenMinusKeyword_0_0_0_0_1());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getNameExpressionRule());
+ }
+ setWithLastConsumed(current, "prefixOp", lv_prefixOp_0_2, null);
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:463:2: ( (lv_path_1_0= ruleQualifiedNamePath ) )?
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( (LA7_0==RULE_ID) ) {
+ int LA7_1 = input.LA(2);
+
+ if ( (LA7_1==20) ) {
+ int LA7_3 = input.LA(3);
+
+ if ( (LA7_3==RULE_ID) ) {
+ int LA7_5 = input.LA(4);
+
+ if ( (LA7_5==23) ) {
+ alt7=1;
+ }
+ }
+ }
+ else if ( (LA7_1==19) ) {
+ alt7=1;
+ }
+ }
+ switch (alt7) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:464:1: (lv_path_1_0= ruleQualifiedNamePath )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:464:1: (lv_path_1_0= ruleQualifiedNamePath )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:465:3: lv_path_1_0= ruleQualifiedNamePath
+ {
+
+ newCompositeNode(grammarAccess.getNameExpressionAccess().getPathQualifiedNamePathParserRuleCall_0_0_1_0());
+
+ pushFollow(FOLLOW_ruleQualifiedNamePath_in_ruleNameExpression1049);
+ lv_path_1_0=ruleQualifiedNamePath();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getNameExpressionRule());
+ }
+ set(
+ current,
+ "path",
+ lv_path_1_0,
+ "QualifiedNamePath");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:481:3: ( (lv_id_2_0= RULE_ID ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:482:1: (lv_id_2_0= RULE_ID )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:482:1: (lv_id_2_0= RULE_ID )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:483:3: lv_id_2_0= RULE_ID
+ {
+ lv_id_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleNameExpression1067);
+
+ newLeafNode(lv_id_2_0, grammarAccess.getNameExpressionAccess().getIdIDTerminalRuleCall_0_0_2_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getNameExpressionRule());
+ }
+ setWithLastConsumed(
+ current,
+ "id",
+ lv_id_2_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:500:6: ( ( (lv_path_3_0= ruleQualifiedNamePath ) )? ( (lv_id_4_0= RULE_ID ) ) ( ( (lv_invocationCompletion_5_0= ruleTuple ) ) | ( (lv_sequenceConstructionCompletion_6_0= ruleSequenceConstructionOrAccessCompletion ) ) | ( ( (lv_postfixOp_7_1= '++' | lv_postfixOp_7_2= '--' ) ) ) )? )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:500:6: ( ( (lv_path_3_0= ruleQualifiedNamePath ) )? ( (lv_id_4_0= RULE_ID ) ) ( ( (lv_invocationCompletion_5_0= ruleTuple ) ) | ( (lv_sequenceConstructionCompletion_6_0= ruleSequenceConstructionOrAccessCompletion ) ) | ( ( (lv_postfixOp_7_1= '++' | lv_postfixOp_7_2= '--' ) ) ) )? )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:500:7: ( (lv_path_3_0= ruleQualifiedNamePath ) )? ( (lv_id_4_0= RULE_ID ) ) ( ( (lv_invocationCompletion_5_0= ruleTuple ) ) | ( (lv_sequenceConstructionCompletion_6_0= ruleSequenceConstructionOrAccessCompletion ) ) | ( ( (lv_postfixOp_7_1= '++' | lv_postfixOp_7_2= '--' ) ) ) )?
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:500:7: ( (lv_path_3_0= ruleQualifiedNamePath ) )?
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( (LA8_0==RULE_ID) ) {
+ int LA8_1 = input.LA(2);
+
+ if ( (LA8_1==20) ) {
+ int LA8_3 = input.LA(3);
+
+ if ( (LA8_3==RULE_ID) ) {
+ int LA8_5 = input.LA(4);
+
+ if ( (LA8_5==23) ) {
+ alt8=1;
+ }
+ }
+ }
+ else if ( (LA8_1==19) ) {
+ alt8=1;
+ }
+ }
+ switch (alt8) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:501:1: (lv_path_3_0= ruleQualifiedNamePath )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:501:1: (lv_path_3_0= ruleQualifiedNamePath )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:502:3: lv_path_3_0= ruleQualifiedNamePath
+ {
+
+ newCompositeNode(grammarAccess.getNameExpressionAccess().getPathQualifiedNamePathParserRuleCall_0_1_0_0());
+
+ pushFollow(FOLLOW_ruleQualifiedNamePath_in_ruleNameExpression1101);
+ lv_path_3_0=ruleQualifiedNamePath();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getNameExpressionRule());
+ }
+ set(
+ current,
+ "path",
+ lv_path_3_0,
+ "QualifiedNamePath");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:518:3: ( (lv_id_4_0= RULE_ID ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:519:1: (lv_id_4_0= RULE_ID )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:519:1: (lv_id_4_0= RULE_ID )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:520:3: lv_id_4_0= RULE_ID
+ {
+ lv_id_4_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleNameExpression1119);
+
+ newLeafNode(lv_id_4_0, grammarAccess.getNameExpressionAccess().getIdIDTerminalRuleCall_0_1_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getNameExpressionRule());
+ }
+ setWithLastConsumed(
+ current,
+ "id",
+ lv_id_4_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:536:2: ( ( (lv_invocationCompletion_5_0= ruleTuple ) ) | ( (lv_sequenceConstructionCompletion_6_0= ruleSequenceConstructionOrAccessCompletion ) ) | ( ( (lv_postfixOp_7_1= '++' | lv_postfixOp_7_2= '--' ) ) ) )?
+ int alt10=4;
+ switch ( input.LA(1) ) {
+ case 24:
+ {
+ alt10=1;
+ }
+ break;
+ case 50:
+ {
+ int LA10_2 = input.LA(2);
+
+ if ( ((LA10_2>=RULE_INTEGERVALUE && LA10_2<=RULE_ID)||(LA10_2>=16 && LA10_2<=18)||LA10_2==24||(LA10_2>=42 && LA10_2<=43)||(LA10_2>=46 && LA10_2<=48)||(LA10_2>=56 && LA10_2<=59)||(LA10_2>=87 && LA10_2<=88)) ) {
+ alt10=2;
+ }
+ else if ( (LA10_2==51) ) {
+ int LA10_6 = input.LA(3);
+
+ if ( (LA10_6==60) ) {
+ alt10=2;
+ }
+ }
+ }
+ break;
+ case 60:
+ {
+ alt10=2;
+ }
+ break;
+ case 17:
+ case 18:
+ {
+ alt10=3;
+ }
+ break;
+ }
+
+ switch (alt10) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:536:3: ( (lv_invocationCompletion_5_0= ruleTuple ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:536:3: ( (lv_invocationCompletion_5_0= ruleTuple ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:537:1: (lv_invocationCompletion_5_0= ruleTuple )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:537:1: (lv_invocationCompletion_5_0= ruleTuple )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:538:3: lv_invocationCompletion_5_0= ruleTuple
+ {
+
+ newCompositeNode(grammarAccess.getNameExpressionAccess().getInvocationCompletionTupleParserRuleCall_0_1_2_0_0());
+
+ pushFollow(FOLLOW_ruleTuple_in_ruleNameExpression1146);
+ lv_invocationCompletion_5_0=ruleTuple();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getNameExpressionRule());
+ }
+ set(
+ current,
+ "invocationCompletion",
+ lv_invocationCompletion_5_0,
+ "Tuple");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:555:6: ( (lv_sequenceConstructionCompletion_6_0= ruleSequenceConstructionOrAccessCompletion ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:555:6: ( (lv_sequenceConstructionCompletion_6_0= ruleSequenceConstructionOrAccessCompletion ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:556:1: (lv_sequenceConstructionCompletion_6_0= ruleSequenceConstructionOrAccessCompletion )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:556:1: (lv_sequenceConstructionCompletion_6_0= ruleSequenceConstructionOrAccessCompletion )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:557:3: lv_sequenceConstructionCompletion_6_0= ruleSequenceConstructionOrAccessCompletion
+ {
+
+ newCompositeNode(grammarAccess.getNameExpressionAccess().getSequenceConstructionCompletionSequenceConstructionOrAccessCompletionParserRuleCall_0_1_2_1_0());
+
+ pushFollow(FOLLOW_ruleSequenceConstructionOrAccessCompletion_in_ruleNameExpression1173);
+ lv_sequenceConstructionCompletion_6_0=ruleSequenceConstructionOrAccessCompletion();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getNameExpressionRule());
+ }
+ set(
+ current,
+ "sequenceConstructionCompletion",
+ lv_sequenceConstructionCompletion_6_0,
+ "SequenceConstructionOrAccessCompletion");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:574:6: ( ( (lv_postfixOp_7_1= '++' | lv_postfixOp_7_2= '--' ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:574:6: ( ( (lv_postfixOp_7_1= '++' | lv_postfixOp_7_2= '--' ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:575:1: ( (lv_postfixOp_7_1= '++' | lv_postfixOp_7_2= '--' ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:575:1: ( (lv_postfixOp_7_1= '++' | lv_postfixOp_7_2= '--' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:576:1: (lv_postfixOp_7_1= '++' | lv_postfixOp_7_2= '--' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:576:1: (lv_postfixOp_7_1= '++' | lv_postfixOp_7_2= '--' )
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0==17) ) {
+ alt9=1;
+ }
+ else if ( (LA9_0==18) ) {
+ alt9=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 9, 0, input);
+
+ throw nvae;
+ }
+ switch (alt9) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:577:3: lv_postfixOp_7_1= '++'
+ {
+ lv_postfixOp_7_1=(Token)match(input,17,FOLLOW_17_in_ruleNameExpression1199);
+
+ newLeafNode(lv_postfixOp_7_1, grammarAccess.getNameExpressionAccess().getPostfixOpPlusSignPlusSignKeyword_0_1_2_2_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getNameExpressionRule());
+ }
+ setWithLastConsumed(current, "postfixOp", lv_postfixOp_7_1, null);
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:589:8: lv_postfixOp_7_2= '--'
+ {
+ lv_postfixOp_7_2=(Token)match(input,18,FOLLOW_18_in_ruleNameExpression1228);
+
+ newLeafNode(lv_postfixOp_7_2, grammarAccess.getNameExpressionAccess().getPostfixOpHyphenMinusHyphenMinusKeyword_0_1_2_2_0_1());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getNameExpressionRule());
+ }
+ setWithLastConsumed(current, "postfixOp", lv_postfixOp_7_2, null);
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:604:6: ( (lv_suffix_8_0= ruleSuffixExpression ) )?
+ int alt12=2;
+ int LA12_0 = input.LA(1);
+
+ if ( (LA12_0==49||LA12_0==52) ) {
+ alt12=1;
+ }
+ switch (alt12) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:605:1: (lv_suffix_8_0= ruleSuffixExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:605:1: (lv_suffix_8_0= ruleSuffixExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:606:3: lv_suffix_8_0= ruleSuffixExpression
+ {
+
+ newCompositeNode(grammarAccess.getNameExpressionAccess().getSuffixSuffixExpressionParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_ruleSuffixExpression_in_ruleNameExpression1269);
+ lv_suffix_8_0=ruleSuffixExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getNameExpressionRule());
+ }
+ set(
+ current,
+ "suffix",
+ lv_suffix_8_0,
+ "SuffixExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleNameExpression"
+
+
+ // $ANTLR start "entryRuleQualifiedNamePath"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:630:1: entryRuleQualifiedNamePath returns [EObject current=null] : iv_ruleQualifiedNamePath= ruleQualifiedNamePath EOF ;
+ public final EObject entryRuleQualifiedNamePath() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleQualifiedNamePath = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:631:2: (iv_ruleQualifiedNamePath= ruleQualifiedNamePath EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:632:2: iv_ruleQualifiedNamePath= ruleQualifiedNamePath EOF
+ {
+ newCompositeNode(grammarAccess.getQualifiedNamePathRule());
+ pushFollow(FOLLOW_ruleQualifiedNamePath_in_entryRuleQualifiedNamePath1306);
+ iv_ruleQualifiedNamePath=ruleQualifiedNamePath();
+
+ state._fsp--;
+
+ current =iv_ruleQualifiedNamePath;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleQualifiedNamePath1316);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleQualifiedNamePath"
+
+
+ // $ANTLR start "ruleQualifiedNamePath"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:639:1: ruleQualifiedNamePath returns [EObject current=null] : ( ( (lv_namespace_0_0= ruleUnqualifiedName ) ) otherlv_1= '::' )+ ;
+ public final EObject ruleQualifiedNamePath() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ EObject lv_namespace_0_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:642:28: ( ( ( (lv_namespace_0_0= ruleUnqualifiedName ) ) otherlv_1= '::' )+ )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:643:1: ( ( (lv_namespace_0_0= ruleUnqualifiedName ) ) otherlv_1= '::' )+
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:643:1: ( ( (lv_namespace_0_0= ruleUnqualifiedName ) ) otherlv_1= '::' )+
+ int cnt13=0;
+ loop13:
+ do {
+ int alt13=2;
+ int LA13_0 = input.LA(1);
+
+ if ( (LA13_0==RULE_ID) ) {
+ int LA13_1 = input.LA(2);
+
+ if ( (LA13_1==20) ) {
+ int LA13_3 = input.LA(3);
+
+ if ( (LA13_3==RULE_ID) ) {
+ int LA13_5 = input.LA(4);
+
+ if ( (LA13_5==23) ) {
+ alt13=1;
+ }
+
+
+ }
+
+
+ }
+ else if ( (LA13_1==19) ) {
+ alt13=1;
+ }
+
+
+ }
+
+
+ switch (alt13) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:643:2: ( (lv_namespace_0_0= ruleUnqualifiedName ) ) otherlv_1= '::'
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:643:2: ( (lv_namespace_0_0= ruleUnqualifiedName ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:644:1: (lv_namespace_0_0= ruleUnqualifiedName )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:644:1: (lv_namespace_0_0= ruleUnqualifiedName )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:645:3: lv_namespace_0_0= ruleUnqualifiedName
+ {
+
+ newCompositeNode(grammarAccess.getQualifiedNamePathAccess().getNamespaceUnqualifiedNameParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_ruleUnqualifiedName_in_ruleQualifiedNamePath1362);
+ lv_namespace_0_0=ruleUnqualifiedName();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getQualifiedNamePathRule());
+ }
+ add(
+ current,
+ "namespace",
+ lv_namespace_0_0,
+ "UnqualifiedName");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_1=(Token)match(input,19,FOLLOW_19_in_ruleQualifiedNamePath1374);
+
+ newLeafNode(otherlv_1, grammarAccess.getQualifiedNamePathAccess().getColonColonKeyword_1());
+
+
+ }
+ break;
+
+ default :
+ if ( cnt13 >= 1 ) break loop13;
+ EarlyExitException eee =
+ new EarlyExitException(13, input);
+ throw eee;
+ }
+ cnt13++;
+ } while (true);
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleQualifiedNamePath"
+
+
+ // $ANTLR start "entryRuleUnqualifiedName"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:673:1: entryRuleUnqualifiedName returns [EObject current=null] : iv_ruleUnqualifiedName= ruleUnqualifiedName EOF ;
+ public final EObject entryRuleUnqualifiedName() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleUnqualifiedName = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:674:2: (iv_ruleUnqualifiedName= ruleUnqualifiedName EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:675:2: iv_ruleUnqualifiedName= ruleUnqualifiedName EOF
+ {
+ newCompositeNode(grammarAccess.getUnqualifiedNameRule());
+ pushFollow(FOLLOW_ruleUnqualifiedName_in_entryRuleUnqualifiedName1411);
+ iv_ruleUnqualifiedName=ruleUnqualifiedName();
+
+ state._fsp--;
+
+ current =iv_ruleUnqualifiedName;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleUnqualifiedName1421);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleUnqualifiedName"
+
+
+ // $ANTLR start "ruleUnqualifiedName"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:682:1: ruleUnqualifiedName returns [EObject current=null] : ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_templateBinding_1_0= ruleTemplateBinding ) )? ) ;
+ public final EObject ruleUnqualifiedName() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_name_0_0=null;
+ EObject lv_templateBinding_1_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:685:28: ( ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_templateBinding_1_0= ruleTemplateBinding ) )? ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:686:1: ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_templateBinding_1_0= ruleTemplateBinding ) )? )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:686:1: ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_templateBinding_1_0= ruleTemplateBinding ) )? )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:686:2: ( (lv_name_0_0= RULE_ID ) ) ( (lv_templateBinding_1_0= ruleTemplateBinding ) )?
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:686:2: ( (lv_name_0_0= RULE_ID ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:687:1: (lv_name_0_0= RULE_ID )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:687:1: (lv_name_0_0= RULE_ID )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:688:3: lv_name_0_0= RULE_ID
+ {
+ lv_name_0_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleUnqualifiedName1463);
+
+ newLeafNode(lv_name_0_0, grammarAccess.getUnqualifiedNameAccess().getNameIDTerminalRuleCall_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getUnqualifiedNameRule());
+ }
+ setWithLastConsumed(
+ current,
+ "name",
+ lv_name_0_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:704:2: ( (lv_templateBinding_1_0= ruleTemplateBinding ) )?
+ int alt14=2;
+ int LA14_0 = input.LA(1);
+
+ if ( (LA14_0==20) ) {
+ alt14=1;
+ }
+ switch (alt14) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:705:1: (lv_templateBinding_1_0= ruleTemplateBinding )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:705:1: (lv_templateBinding_1_0= ruleTemplateBinding )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:706:3: lv_templateBinding_1_0= ruleTemplateBinding
+ {
+
+ newCompositeNode(grammarAccess.getUnqualifiedNameAccess().getTemplateBindingTemplateBindingParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_ruleTemplateBinding_in_ruleUnqualifiedName1489);
+ lv_templateBinding_1_0=ruleTemplateBinding();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getUnqualifiedNameRule());
+ }
+ set(
+ current,
+ "templateBinding",
+ lv_templateBinding_1_0,
+ "TemplateBinding");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleUnqualifiedName"
+
+
+ // $ANTLR start "entryRuleTemplateBinding"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:730:1: entryRuleTemplateBinding returns [EObject current=null] : iv_ruleTemplateBinding= ruleTemplateBinding EOF ;
+ public final EObject entryRuleTemplateBinding() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleTemplateBinding = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:731:2: (iv_ruleTemplateBinding= ruleTemplateBinding EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:732:2: iv_ruleTemplateBinding= ruleTemplateBinding EOF
+ {
+ newCompositeNode(grammarAccess.getTemplateBindingRule());
+ pushFollow(FOLLOW_ruleTemplateBinding_in_entryRuleTemplateBinding1526);
+ iv_ruleTemplateBinding=ruleTemplateBinding();
+
+ state._fsp--;
+
+ current =iv_ruleTemplateBinding;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleTemplateBinding1536);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleTemplateBinding"
+
+
+ // $ANTLR start "ruleTemplateBinding"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:739:1: ruleTemplateBinding returns [EObject current=null] : (otherlv_0= '<' ( (lv_bindings_1_0= ruleNamedTemplateBinding ) ) (otherlv_2= ',' ( (lv_bindings_3_0= ruleNamedTemplateBinding ) ) )* otherlv_4= '>' ) ;
+ public final EObject ruleTemplateBinding() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_2=null;
+ Token otherlv_4=null;
+ EObject lv_bindings_1_0 = null;
+
+ EObject lv_bindings_3_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:742:28: ( (otherlv_0= '<' ( (lv_bindings_1_0= ruleNamedTemplateBinding ) ) (otherlv_2= ',' ( (lv_bindings_3_0= ruleNamedTemplateBinding ) ) )* otherlv_4= '>' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:743:1: (otherlv_0= '<' ( (lv_bindings_1_0= ruleNamedTemplateBinding ) ) (otherlv_2= ',' ( (lv_bindings_3_0= ruleNamedTemplateBinding ) ) )* otherlv_4= '>' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:743:1: (otherlv_0= '<' ( (lv_bindings_1_0= ruleNamedTemplateBinding ) ) (otherlv_2= ',' ( (lv_bindings_3_0= ruleNamedTemplateBinding ) ) )* otherlv_4= '>' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:743:3: otherlv_0= '<' ( (lv_bindings_1_0= ruleNamedTemplateBinding ) ) (otherlv_2= ',' ( (lv_bindings_3_0= ruleNamedTemplateBinding ) ) )* otherlv_4= '>'
+ {
+ otherlv_0=(Token)match(input,20,FOLLOW_20_in_ruleTemplateBinding1573);
+
+ newLeafNode(otherlv_0, grammarAccess.getTemplateBindingAccess().getLessThanSignKeyword_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:747:1: ( (lv_bindings_1_0= ruleNamedTemplateBinding ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:748:1: (lv_bindings_1_0= ruleNamedTemplateBinding )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:748:1: (lv_bindings_1_0= ruleNamedTemplateBinding )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:749:3: lv_bindings_1_0= ruleNamedTemplateBinding
+ {
+
+ newCompositeNode(grammarAccess.getTemplateBindingAccess().getBindingsNamedTemplateBindingParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_ruleNamedTemplateBinding_in_ruleTemplateBinding1594);
+ lv_bindings_1_0=ruleNamedTemplateBinding();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getTemplateBindingRule());
+ }
+ add(
+ current,
+ "bindings",
+ lv_bindings_1_0,
+ "NamedTemplateBinding");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:765:2: (otherlv_2= ',' ( (lv_bindings_3_0= ruleNamedTemplateBinding ) ) )*
+ loop15:
+ do {
+ int alt15=2;
+ int LA15_0 = input.LA(1);
+
+ if ( (LA15_0==21) ) {
+ alt15=1;
+ }
+
+
+ switch (alt15) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:765:4: otherlv_2= ',' ( (lv_bindings_3_0= ruleNamedTemplateBinding ) )
+ {
+ otherlv_2=(Token)match(input,21,FOLLOW_21_in_ruleTemplateBinding1607);
+
+ newLeafNode(otherlv_2, grammarAccess.getTemplateBindingAccess().getCommaKeyword_2_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:769:1: ( (lv_bindings_3_0= ruleNamedTemplateBinding ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:770:1: (lv_bindings_3_0= ruleNamedTemplateBinding )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:770:1: (lv_bindings_3_0= ruleNamedTemplateBinding )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:771:3: lv_bindings_3_0= ruleNamedTemplateBinding
+ {
+
+ newCompositeNode(grammarAccess.getTemplateBindingAccess().getBindingsNamedTemplateBindingParserRuleCall_2_1_0());
+
+ pushFollow(FOLLOW_ruleNamedTemplateBinding_in_ruleTemplateBinding1628);
+ lv_bindings_3_0=ruleNamedTemplateBinding();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getTemplateBindingRule());
+ }
+ add(
+ current,
+ "bindings",
+ lv_bindings_3_0,
+ "NamedTemplateBinding");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop15;
+ }
+ } while (true);
+
+ otherlv_4=(Token)match(input,22,FOLLOW_22_in_ruleTemplateBinding1642);
+
+ newLeafNode(otherlv_4, grammarAccess.getTemplateBindingAccess().getGreaterThanSignKeyword_3());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleTemplateBinding"
+
+
+ // $ANTLR start "entryRuleNamedTemplateBinding"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:799:1: entryRuleNamedTemplateBinding returns [EObject current=null] : iv_ruleNamedTemplateBinding= ruleNamedTemplateBinding EOF ;
+ public final EObject entryRuleNamedTemplateBinding() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleNamedTemplateBinding = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:800:2: (iv_ruleNamedTemplateBinding= ruleNamedTemplateBinding EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:801:2: iv_ruleNamedTemplateBinding= ruleNamedTemplateBinding EOF
+ {
+ newCompositeNode(grammarAccess.getNamedTemplateBindingRule());
+ pushFollow(FOLLOW_ruleNamedTemplateBinding_in_entryRuleNamedTemplateBinding1678);
+ iv_ruleNamedTemplateBinding=ruleNamedTemplateBinding();
+
+ state._fsp--;
+
+ current =iv_ruleNamedTemplateBinding;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleNamedTemplateBinding1688);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleNamedTemplateBinding"
+
+
+ // $ANTLR start "ruleNamedTemplateBinding"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:808:1: ruleNamedTemplateBinding returns [EObject current=null] : ( ( (lv_formal_0_0= RULE_ID ) ) otherlv_1= '=>' ( (lv_actual_2_0= ruleQualifiedNameWithBinding ) ) ) ;
+ public final EObject ruleNamedTemplateBinding() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_formal_0_0=null;
+ Token otherlv_1=null;
+ EObject lv_actual_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:811:28: ( ( ( (lv_formal_0_0= RULE_ID ) ) otherlv_1= '=>' ( (lv_actual_2_0= ruleQualifiedNameWithBinding ) ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:812:1: ( ( (lv_formal_0_0= RULE_ID ) ) otherlv_1= '=>' ( (lv_actual_2_0= ruleQualifiedNameWithBinding ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:812:1: ( ( (lv_formal_0_0= RULE_ID ) ) otherlv_1= '=>' ( (lv_actual_2_0= ruleQualifiedNameWithBinding ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:812:2: ( (lv_formal_0_0= RULE_ID ) ) otherlv_1= '=>' ( (lv_actual_2_0= ruleQualifiedNameWithBinding ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:812:2: ( (lv_formal_0_0= RULE_ID ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:813:1: (lv_formal_0_0= RULE_ID )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:813:1: (lv_formal_0_0= RULE_ID )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:814:3: lv_formal_0_0= RULE_ID
+ {
+ lv_formal_0_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleNamedTemplateBinding1730);
+
+ newLeafNode(lv_formal_0_0, grammarAccess.getNamedTemplateBindingAccess().getFormalIDTerminalRuleCall_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getNamedTemplateBindingRule());
+ }
+ setWithLastConsumed(
+ current,
+ "formal",
+ lv_formal_0_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+ otherlv_1=(Token)match(input,23,FOLLOW_23_in_ruleNamedTemplateBinding1747);
+
+ newLeafNode(otherlv_1, grammarAccess.getNamedTemplateBindingAccess().getEqualsSignGreaterThanSignKeyword_1());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:834:1: ( (lv_actual_2_0= ruleQualifiedNameWithBinding ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:835:1: (lv_actual_2_0= ruleQualifiedNameWithBinding )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:835:1: (lv_actual_2_0= ruleQualifiedNameWithBinding )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:836:3: lv_actual_2_0= ruleQualifiedNameWithBinding
+ {
+
+ newCompositeNode(grammarAccess.getNamedTemplateBindingAccess().getActualQualifiedNameWithBindingParserRuleCall_2_0());
+
+ pushFollow(FOLLOW_ruleQualifiedNameWithBinding_in_ruleNamedTemplateBinding1768);
+ lv_actual_2_0=ruleQualifiedNameWithBinding();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getNamedTemplateBindingRule());
+ }
+ set(
+ current,
+ "actual",
+ lv_actual_2_0,
+ "QualifiedNameWithBinding");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleNamedTemplateBinding"
+
+
+ // $ANTLR start "entryRuleQualifiedNameWithBinding"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:860:1: entryRuleQualifiedNameWithBinding returns [EObject current=null] : iv_ruleQualifiedNameWithBinding= ruleQualifiedNameWithBinding EOF ;
+ public final EObject entryRuleQualifiedNameWithBinding() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleQualifiedNameWithBinding = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:861:2: (iv_ruleQualifiedNameWithBinding= ruleQualifiedNameWithBinding EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:862:2: iv_ruleQualifiedNameWithBinding= ruleQualifiedNameWithBinding EOF
+ {
+ newCompositeNode(grammarAccess.getQualifiedNameWithBindingRule());
+ pushFollow(FOLLOW_ruleQualifiedNameWithBinding_in_entryRuleQualifiedNameWithBinding1804);
+ iv_ruleQualifiedNameWithBinding=ruleQualifiedNameWithBinding();
+
+ state._fsp--;
+
+ current =iv_ruleQualifiedNameWithBinding;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleQualifiedNameWithBinding1814);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleQualifiedNameWithBinding"
+
+
+ // $ANTLR start "ruleQualifiedNameWithBinding"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:869:1: ruleQualifiedNameWithBinding returns [EObject current=null] : ( ( (lv_id_0_0= RULE_ID ) ) ( (lv_binding_1_0= ruleTemplateBinding ) )? (otherlv_2= '::' ( (lv_remaining_3_0= ruleQualifiedNameWithBinding ) ) )? ) ;
+ public final EObject ruleQualifiedNameWithBinding() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_id_0_0=null;
+ Token otherlv_2=null;
+ EObject lv_binding_1_0 = null;
+
+ EObject lv_remaining_3_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:872:28: ( ( ( (lv_id_0_0= RULE_ID ) ) ( (lv_binding_1_0= ruleTemplateBinding ) )? (otherlv_2= '::' ( (lv_remaining_3_0= ruleQualifiedNameWithBinding ) ) )? ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:873:1: ( ( (lv_id_0_0= RULE_ID ) ) ( (lv_binding_1_0= ruleTemplateBinding ) )? (otherlv_2= '::' ( (lv_remaining_3_0= ruleQualifiedNameWithBinding ) ) )? )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:873:1: ( ( (lv_id_0_0= RULE_ID ) ) ( (lv_binding_1_0= ruleTemplateBinding ) )? (otherlv_2= '::' ( (lv_remaining_3_0= ruleQualifiedNameWithBinding ) ) )? )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:873:2: ( (lv_id_0_0= RULE_ID ) ) ( (lv_binding_1_0= ruleTemplateBinding ) )? (otherlv_2= '::' ( (lv_remaining_3_0= ruleQualifiedNameWithBinding ) ) )?
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:873:2: ( (lv_id_0_0= RULE_ID ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:874:1: (lv_id_0_0= RULE_ID )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:874:1: (lv_id_0_0= RULE_ID )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:875:3: lv_id_0_0= RULE_ID
+ {
+ lv_id_0_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleQualifiedNameWithBinding1856);
+
+ newLeafNode(lv_id_0_0, grammarAccess.getQualifiedNameWithBindingAccess().getIdIDTerminalRuleCall_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getQualifiedNameWithBindingRule());
+ }
+ setWithLastConsumed(
+ current,
+ "id",
+ lv_id_0_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:891:2: ( (lv_binding_1_0= ruleTemplateBinding ) )?
+ int alt16=2;
+ int LA16_0 = input.LA(1);
+
+ if ( (LA16_0==20) ) {
+ int LA16_1 = input.LA(2);
+
+ if ( (LA16_1==RULE_ID) ) {
+ int LA16_3 = input.LA(3);
+
+ if ( (LA16_3==23) ) {
+ alt16=1;
+ }
+ }
+ }
+ switch (alt16) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:892:1: (lv_binding_1_0= ruleTemplateBinding )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:892:1: (lv_binding_1_0= ruleTemplateBinding )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:893:3: lv_binding_1_0= ruleTemplateBinding
+ {
+
+ newCompositeNode(grammarAccess.getQualifiedNameWithBindingAccess().getBindingTemplateBindingParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_ruleTemplateBinding_in_ruleQualifiedNameWithBinding1882);
+ lv_binding_1_0=ruleTemplateBinding();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getQualifiedNameWithBindingRule());
+ }
+ set(
+ current,
+ "binding",
+ lv_binding_1_0,
+ "TemplateBinding");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:909:3: (otherlv_2= '::' ( (lv_remaining_3_0= ruleQualifiedNameWithBinding ) ) )?
+ int alt17=2;
+ int LA17_0 = input.LA(1);
+
+ if ( (LA17_0==19) ) {
+ alt17=1;
+ }
+ switch (alt17) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:909:5: otherlv_2= '::' ( (lv_remaining_3_0= ruleQualifiedNameWithBinding ) )
+ {
+ otherlv_2=(Token)match(input,19,FOLLOW_19_in_ruleQualifiedNameWithBinding1896);
+
+ newLeafNode(otherlv_2, grammarAccess.getQualifiedNameWithBindingAccess().getColonColonKeyword_2_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:913:1: ( (lv_remaining_3_0= ruleQualifiedNameWithBinding ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:914:1: (lv_remaining_3_0= ruleQualifiedNameWithBinding )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:914:1: (lv_remaining_3_0= ruleQualifiedNameWithBinding )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:915:3: lv_remaining_3_0= ruleQualifiedNameWithBinding
+ {
+
+ newCompositeNode(grammarAccess.getQualifiedNameWithBindingAccess().getRemainingQualifiedNameWithBindingParserRuleCall_2_1_0());
+
+ pushFollow(FOLLOW_ruleQualifiedNameWithBinding_in_ruleQualifiedNameWithBinding1917);
+ lv_remaining_3_0=ruleQualifiedNameWithBinding();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getQualifiedNameWithBindingRule());
+ }
+ set(
+ current,
+ "remaining",
+ lv_remaining_3_0,
+ "QualifiedNameWithBinding");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleQualifiedNameWithBinding"
+
+
+ // $ANTLR start "entryRuleTuple"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:939:1: entryRuleTuple returns [EObject current=null] : iv_ruleTuple= ruleTuple EOF ;
+ public final EObject entryRuleTuple() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleTuple = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:940:2: (iv_ruleTuple= ruleTuple EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:941:2: iv_ruleTuple= ruleTuple EOF
+ {
+ newCompositeNode(grammarAccess.getTupleRule());
+ pushFollow(FOLLOW_ruleTuple_in_entryRuleTuple1955);
+ iv_ruleTuple=ruleTuple();
+
+ state._fsp--;
+
+ current =iv_ruleTuple;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleTuple1965);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleTuple"
+
+
+ // $ANTLR start "ruleTuple"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:948:1: ruleTuple returns [EObject current=null] : ( () otherlv_1= '(' ( ( (lv_tupleElements_2_0= ruleTupleElement ) ) (otherlv_3= ',' ( (lv_tupleElements_4_0= ruleTupleElement ) ) )* )? otherlv_5= ')' ) ;
+ public final EObject ruleTuple() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ EObject lv_tupleElements_2_0 = null;
+
+ EObject lv_tupleElements_4_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:951:28: ( ( () otherlv_1= '(' ( ( (lv_tupleElements_2_0= ruleTupleElement ) ) (otherlv_3= ',' ( (lv_tupleElements_4_0= ruleTupleElement ) ) )* )? otherlv_5= ')' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:952:1: ( () otherlv_1= '(' ( ( (lv_tupleElements_2_0= ruleTupleElement ) ) (otherlv_3= ',' ( (lv_tupleElements_4_0= ruleTupleElement ) ) )* )? otherlv_5= ')' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:952:1: ( () otherlv_1= '(' ( ( (lv_tupleElements_2_0= ruleTupleElement ) ) (otherlv_3= ',' ( (lv_tupleElements_4_0= ruleTupleElement ) ) )* )? otherlv_5= ')' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:952:2: () otherlv_1= '(' ( ( (lv_tupleElements_2_0= ruleTupleElement ) ) (otherlv_3= ',' ( (lv_tupleElements_4_0= ruleTupleElement ) ) )* )? otherlv_5= ')'
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:952:2: ()
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:953:5:
+ {
+
+ current = forceCreateModelElement(
+ grammarAccess.getTupleAccess().getTupleAction_0(),
+ current);
+
+
+ }
+
+ otherlv_1=(Token)match(input,24,FOLLOW_24_in_ruleTuple2011);
+
+ newLeafNode(otherlv_1, grammarAccess.getTupleAccess().getLeftParenthesisKeyword_1());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:962:1: ( ( (lv_tupleElements_2_0= ruleTupleElement ) ) (otherlv_3= ',' ( (lv_tupleElements_4_0= ruleTupleElement ) ) )* )?
+ int alt19=2;
+ int LA19_0 = input.LA(1);
+
+ if ( ((LA19_0>=RULE_INTEGERVALUE && LA19_0<=RULE_ID)||(LA19_0>=16 && LA19_0<=18)||LA19_0==24||(LA19_0>=42 && LA19_0<=43)||(LA19_0>=46 && LA19_0<=48)||(LA19_0>=56 && LA19_0<=59)||(LA19_0>=87 && LA19_0<=88)) ) {
+ alt19=1;
+ }
+ switch (alt19) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:962:2: ( (lv_tupleElements_2_0= ruleTupleElement ) ) (otherlv_3= ',' ( (lv_tupleElements_4_0= ruleTupleElement ) ) )*
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:962:2: ( (lv_tupleElements_2_0= ruleTupleElement ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:963:1: (lv_tupleElements_2_0= ruleTupleElement )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:963:1: (lv_tupleElements_2_0= ruleTupleElement )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:964:3: lv_tupleElements_2_0= ruleTupleElement
+ {
+
+ newCompositeNode(grammarAccess.getTupleAccess().getTupleElementsTupleElementParserRuleCall_2_0_0());
+
+ pushFollow(FOLLOW_ruleTupleElement_in_ruleTuple2033);
+ lv_tupleElements_2_0=ruleTupleElement();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getTupleRule());
+ }
+ add(
+ current,
+ "tupleElements",
+ lv_tupleElements_2_0,
+ "TupleElement");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:980:2: (otherlv_3= ',' ( (lv_tupleElements_4_0= ruleTupleElement ) ) )*
+ loop18:
+ do {
+ int alt18=2;
+ int LA18_0 = input.LA(1);
+
+ if ( (LA18_0==21) ) {
+ alt18=1;
+ }
+
+
+ switch (alt18) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:980:4: otherlv_3= ',' ( (lv_tupleElements_4_0= ruleTupleElement ) )
+ {
+ otherlv_3=(Token)match(input,21,FOLLOW_21_in_ruleTuple2046);
+
+ newLeafNode(otherlv_3, grammarAccess.getTupleAccess().getCommaKeyword_2_1_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:984:1: ( (lv_tupleElements_4_0= ruleTupleElement ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:985:1: (lv_tupleElements_4_0= ruleTupleElement )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:985:1: (lv_tupleElements_4_0= ruleTupleElement )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:986:3: lv_tupleElements_4_0= ruleTupleElement
+ {
+
+ newCompositeNode(grammarAccess.getTupleAccess().getTupleElementsTupleElementParserRuleCall_2_1_1_0());
+
+ pushFollow(FOLLOW_ruleTupleElement_in_ruleTuple2067);
+ lv_tupleElements_4_0=ruleTupleElement();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getTupleRule());
+ }
+ add(
+ current,
+ "tupleElements",
+ lv_tupleElements_4_0,
+ "TupleElement");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop18;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+ otherlv_5=(Token)match(input,25,FOLLOW_25_in_ruleTuple2083);
+
+ newLeafNode(otherlv_5, grammarAccess.getTupleAccess().getRightParenthesisKeyword_3());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleTuple"
+
+
+ // $ANTLR start "entryRuleTupleElement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1014:1: entryRuleTupleElement returns [EObject current=null] : iv_ruleTupleElement= ruleTupleElement EOF ;
+ public final EObject entryRuleTupleElement() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleTupleElement = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1015:2: (iv_ruleTupleElement= ruleTupleElement EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1016:2: iv_ruleTupleElement= ruleTupleElement EOF
+ {
+ newCompositeNode(grammarAccess.getTupleElementRule());
+ pushFollow(FOLLOW_ruleTupleElement_in_entryRuleTupleElement2119);
+ iv_ruleTupleElement=ruleTupleElement();
+
+ state._fsp--;
+
+ current =iv_ruleTupleElement;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleTupleElement2129);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleTupleElement"
+
+
+ // $ANTLR start "ruleTupleElement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1023:1: ruleTupleElement returns [EObject current=null] : ( (lv_argument_0_0= ruleExpression ) ) ;
+ public final EObject ruleTupleElement() throws RecognitionException {
+ EObject current = null;
+
+ EObject lv_argument_0_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1026:28: ( ( (lv_argument_0_0= ruleExpression ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1027:1: ( (lv_argument_0_0= ruleExpression ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1027:1: ( (lv_argument_0_0= ruleExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1028:1: (lv_argument_0_0= ruleExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1028:1: (lv_argument_0_0= ruleExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1029:3: lv_argument_0_0= ruleExpression
+ {
+
+ newCompositeNode(grammarAccess.getTupleElementAccess().getArgumentExpressionParserRuleCall_0());
+
+ pushFollow(FOLLOW_ruleExpression_in_ruleTupleElement2174);
+ lv_argument_0_0=ruleExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getTupleElementRule());
+ }
+ set(
+ current,
+ "argument",
+ lv_argument_0_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleTupleElement"
+
+
+ // $ANTLR start "entryRuleExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1053:1: entryRuleExpression returns [EObject current=null] : iv_ruleExpression= ruleExpression EOF ;
+ public final EObject entryRuleExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleExpression = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1054:2: (iv_ruleExpression= ruleExpression EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1055:2: iv_ruleExpression= ruleExpression EOF
+ {
+ newCompositeNode(grammarAccess.getExpressionRule());
+ pushFollow(FOLLOW_ruleExpression_in_entryRuleExpression2209);
+ iv_ruleExpression=ruleExpression();
+
+ state._fsp--;
+
+ current =iv_ruleExpression;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleExpression2219);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleExpression"
+
+
+ // $ANTLR start "ruleExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1062:1: ruleExpression returns [EObject current=null] : this_ConditionalTestExpression_0= ruleConditionalTestExpression ;
+ public final EObject ruleExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_ConditionalTestExpression_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1065:28: (this_ConditionalTestExpression_0= ruleConditionalTestExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1067:5: this_ConditionalTestExpression_0= ruleConditionalTestExpression
+ {
+
+ newCompositeNode(grammarAccess.getExpressionAccess().getConditionalTestExpressionParserRuleCall());
+
+ pushFollow(FOLLOW_ruleConditionalTestExpression_in_ruleExpression2265);
+ this_ConditionalTestExpression_0=ruleConditionalTestExpression();
+
+ state._fsp--;
+
+
+ current = this_ConditionalTestExpression_0;
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleExpression"
+
+
+ // $ANTLR start "entryRuleConditionalTestExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1083:1: entryRuleConditionalTestExpression returns [EObject current=null] : iv_ruleConditionalTestExpression= ruleConditionalTestExpression EOF ;
+ public final EObject entryRuleConditionalTestExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleConditionalTestExpression = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1084:2: (iv_ruleConditionalTestExpression= ruleConditionalTestExpression EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1085:2: iv_ruleConditionalTestExpression= ruleConditionalTestExpression EOF
+ {
+ newCompositeNode(grammarAccess.getConditionalTestExpressionRule());
+ pushFollow(FOLLOW_ruleConditionalTestExpression_in_entryRuleConditionalTestExpression2299);
+ iv_ruleConditionalTestExpression=ruleConditionalTestExpression();
+
+ state._fsp--;
+
+ current =iv_ruleConditionalTestExpression;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleConditionalTestExpression2309);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleConditionalTestExpression"
+
+
+ // $ANTLR start "ruleConditionalTestExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1092:1: ruleConditionalTestExpression returns [EObject current=null] : ( ( (lv_exp_0_0= ruleConditionalOrExpression ) ) (otherlv_1= '?' ( (lv_whenTrue_2_0= ruleConditionalTestExpression ) ) otherlv_3= ':' ( (lv_whenFalse_4_0= ruleConditionalTestExpression ) ) )? ) ;
+ public final EObject ruleConditionalTestExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ EObject lv_exp_0_0 = null;
+
+ EObject lv_whenTrue_2_0 = null;
+
+ EObject lv_whenFalse_4_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1095:28: ( ( ( (lv_exp_0_0= ruleConditionalOrExpression ) ) (otherlv_1= '?' ( (lv_whenTrue_2_0= ruleConditionalTestExpression ) ) otherlv_3= ':' ( (lv_whenFalse_4_0= ruleConditionalTestExpression ) ) )? ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1096:1: ( ( (lv_exp_0_0= ruleConditionalOrExpression ) ) (otherlv_1= '?' ( (lv_whenTrue_2_0= ruleConditionalTestExpression ) ) otherlv_3= ':' ( (lv_whenFalse_4_0= ruleConditionalTestExpression ) ) )? )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1096:1: ( ( (lv_exp_0_0= ruleConditionalOrExpression ) ) (otherlv_1= '?' ( (lv_whenTrue_2_0= ruleConditionalTestExpression ) ) otherlv_3= ':' ( (lv_whenFalse_4_0= ruleConditionalTestExpression ) ) )? )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1096:2: ( (lv_exp_0_0= ruleConditionalOrExpression ) ) (otherlv_1= '?' ( (lv_whenTrue_2_0= ruleConditionalTestExpression ) ) otherlv_3= ':' ( (lv_whenFalse_4_0= ruleConditionalTestExpression ) ) )?
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1096:2: ( (lv_exp_0_0= ruleConditionalOrExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1097:1: (lv_exp_0_0= ruleConditionalOrExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1097:1: (lv_exp_0_0= ruleConditionalOrExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1098:3: lv_exp_0_0= ruleConditionalOrExpression
+ {
+
+ newCompositeNode(grammarAccess.getConditionalTestExpressionAccess().getExpConditionalOrExpressionParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_ruleConditionalOrExpression_in_ruleConditionalTestExpression2355);
+ lv_exp_0_0=ruleConditionalOrExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getConditionalTestExpressionRule());
+ }
+ set(
+ current,
+ "exp",
+ lv_exp_0_0,
+ "ConditionalOrExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1114:2: (otherlv_1= '?' ( (lv_whenTrue_2_0= ruleConditionalTestExpression ) ) otherlv_3= ':' ( (lv_whenFalse_4_0= ruleConditionalTestExpression ) ) )?
+ int alt20=2;
+ int LA20_0 = input.LA(1);
+
+ if ( (LA20_0==26) ) {
+ alt20=1;
+ }
+ switch (alt20) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1114:4: otherlv_1= '?' ( (lv_whenTrue_2_0= ruleConditionalTestExpression ) ) otherlv_3= ':' ( (lv_whenFalse_4_0= ruleConditionalTestExpression ) )
+ {
+ otherlv_1=(Token)match(input,26,FOLLOW_26_in_ruleConditionalTestExpression2368);
+
+ newLeafNode(otherlv_1, grammarAccess.getConditionalTestExpressionAccess().getQuestionMarkKeyword_1_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1118:1: ( (lv_whenTrue_2_0= ruleConditionalTestExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1119:1: (lv_whenTrue_2_0= ruleConditionalTestExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1119:1: (lv_whenTrue_2_0= ruleConditionalTestExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1120:3: lv_whenTrue_2_0= ruleConditionalTestExpression
+ {
+
+ newCompositeNode(grammarAccess.getConditionalTestExpressionAccess().getWhenTrueConditionalTestExpressionParserRuleCall_1_1_0());
+
+ pushFollow(FOLLOW_ruleConditionalTestExpression_in_ruleConditionalTestExpression2389);
+ lv_whenTrue_2_0=ruleConditionalTestExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getConditionalTestExpressionRule());
+ }
+ set(
+ current,
+ "whenTrue",
+ lv_whenTrue_2_0,
+ "ConditionalTestExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,27,FOLLOW_27_in_ruleConditionalTestExpression2401);
+
+ newLeafNode(otherlv_3, grammarAccess.getConditionalTestExpressionAccess().getColonKeyword_1_2());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1140:1: ( (lv_whenFalse_4_0= ruleConditionalTestExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1141:1: (lv_whenFalse_4_0= ruleConditionalTestExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1141:1: (lv_whenFalse_4_0= ruleConditionalTestExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1142:3: lv_whenFalse_4_0= ruleConditionalTestExpression
+ {
+
+ newCompositeNode(grammarAccess.getConditionalTestExpressionAccess().getWhenFalseConditionalTestExpressionParserRuleCall_1_3_0());
+
+ pushFollow(FOLLOW_ruleConditionalTestExpression_in_ruleConditionalTestExpression2422);
+ lv_whenFalse_4_0=ruleConditionalTestExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getConditionalTestExpressionRule());
+ }
+ set(
+ current,
+ "whenFalse",
+ lv_whenFalse_4_0,
+ "ConditionalTestExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleConditionalTestExpression"
+
+
+ // $ANTLR start "entryRuleConditionalOrExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1166:1: entryRuleConditionalOrExpression returns [EObject current=null] : iv_ruleConditionalOrExpression= ruleConditionalOrExpression EOF ;
+ public final EObject entryRuleConditionalOrExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleConditionalOrExpression = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1167:2: (iv_ruleConditionalOrExpression= ruleConditionalOrExpression EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1168:2: iv_ruleConditionalOrExpression= ruleConditionalOrExpression EOF
+ {
+ newCompositeNode(grammarAccess.getConditionalOrExpressionRule());
+ pushFollow(FOLLOW_ruleConditionalOrExpression_in_entryRuleConditionalOrExpression2460);
+ iv_ruleConditionalOrExpression=ruleConditionalOrExpression();
+
+ state._fsp--;
+
+ current =iv_ruleConditionalOrExpression;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleConditionalOrExpression2470);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleConditionalOrExpression"
+
+
+ // $ANTLR start "ruleConditionalOrExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1175:1: ruleConditionalOrExpression returns [EObject current=null] : ( ( (lv_exp_0_0= ruleConditionalAndExpression ) ) (otherlv_1= '||' ( (lv_exp_2_0= ruleConditionalAndExpression ) ) )* ) ;
+ public final EObject ruleConditionalOrExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ EObject lv_exp_0_0 = null;
+
+ EObject lv_exp_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1178:28: ( ( ( (lv_exp_0_0= ruleConditionalAndExpression ) ) (otherlv_1= '||' ( (lv_exp_2_0= ruleConditionalAndExpression ) ) )* ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1179:1: ( ( (lv_exp_0_0= ruleConditionalAndExpression ) ) (otherlv_1= '||' ( (lv_exp_2_0= ruleConditionalAndExpression ) ) )* )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1179:1: ( ( (lv_exp_0_0= ruleConditionalAndExpression ) ) (otherlv_1= '||' ( (lv_exp_2_0= ruleConditionalAndExpression ) ) )* )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1179:2: ( (lv_exp_0_0= ruleConditionalAndExpression ) ) (otherlv_1= '||' ( (lv_exp_2_0= ruleConditionalAndExpression ) ) )*
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1179:2: ( (lv_exp_0_0= ruleConditionalAndExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1180:1: (lv_exp_0_0= ruleConditionalAndExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1180:1: (lv_exp_0_0= ruleConditionalAndExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1181:3: lv_exp_0_0= ruleConditionalAndExpression
+ {
+
+ newCompositeNode(grammarAccess.getConditionalOrExpressionAccess().getExpConditionalAndExpressionParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_ruleConditionalAndExpression_in_ruleConditionalOrExpression2516);
+ lv_exp_0_0=ruleConditionalAndExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getConditionalOrExpressionRule());
+ }
+ add(
+ current,
+ "exp",
+ lv_exp_0_0,
+ "ConditionalAndExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1197:2: (otherlv_1= '||' ( (lv_exp_2_0= ruleConditionalAndExpression ) ) )*
+ loop21:
+ do {
+ int alt21=2;
+ int LA21_0 = input.LA(1);
+
+ if ( (LA21_0==28) ) {
+ alt21=1;
+ }
+
+
+ switch (alt21) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1197:4: otherlv_1= '||' ( (lv_exp_2_0= ruleConditionalAndExpression ) )
+ {
+ otherlv_1=(Token)match(input,28,FOLLOW_28_in_ruleConditionalOrExpression2529);
+
+ newLeafNode(otherlv_1, grammarAccess.getConditionalOrExpressionAccess().getVerticalLineVerticalLineKeyword_1_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1201:1: ( (lv_exp_2_0= ruleConditionalAndExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1202:1: (lv_exp_2_0= ruleConditionalAndExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1202:1: (lv_exp_2_0= ruleConditionalAndExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1203:3: lv_exp_2_0= ruleConditionalAndExpression
+ {
+
+ newCompositeNode(grammarAccess.getConditionalOrExpressionAccess().getExpConditionalAndExpressionParserRuleCall_1_1_0());
+
+ pushFollow(FOLLOW_ruleConditionalAndExpression_in_ruleConditionalOrExpression2550);
+ lv_exp_2_0=ruleConditionalAndExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getConditionalOrExpressionRule());
+ }
+ add(
+ current,
+ "exp",
+ lv_exp_2_0,
+ "ConditionalAndExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop21;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleConditionalOrExpression"
+
+
+ // $ANTLR start "entryRuleConditionalAndExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1227:1: entryRuleConditionalAndExpression returns [EObject current=null] : iv_ruleConditionalAndExpression= ruleConditionalAndExpression EOF ;
+ public final EObject entryRuleConditionalAndExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleConditionalAndExpression = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1228:2: (iv_ruleConditionalAndExpression= ruleConditionalAndExpression EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1229:2: iv_ruleConditionalAndExpression= ruleConditionalAndExpression EOF
+ {
+ newCompositeNode(grammarAccess.getConditionalAndExpressionRule());
+ pushFollow(FOLLOW_ruleConditionalAndExpression_in_entryRuleConditionalAndExpression2588);
+ iv_ruleConditionalAndExpression=ruleConditionalAndExpression();
+
+ state._fsp--;
+
+ current =iv_ruleConditionalAndExpression;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleConditionalAndExpression2598);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleConditionalAndExpression"
+
+
+ // $ANTLR start "ruleConditionalAndExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1236:1: ruleConditionalAndExpression returns [EObject current=null] : ( ( (lv_exp_0_0= ruleInclusiveOrExpression ) ) (otherlv_1= '&&' ( (lv_exp_2_0= ruleInclusiveOrExpression ) ) )* ) ;
+ public final EObject ruleConditionalAndExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ EObject lv_exp_0_0 = null;
+
+ EObject lv_exp_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1239:28: ( ( ( (lv_exp_0_0= ruleInclusiveOrExpression ) ) (otherlv_1= '&&' ( (lv_exp_2_0= ruleInclusiveOrExpression ) ) )* ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1240:1: ( ( (lv_exp_0_0= ruleInclusiveOrExpression ) ) (otherlv_1= '&&' ( (lv_exp_2_0= ruleInclusiveOrExpression ) ) )* )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1240:1: ( ( (lv_exp_0_0= ruleInclusiveOrExpression ) ) (otherlv_1= '&&' ( (lv_exp_2_0= ruleInclusiveOrExpression ) ) )* )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1240:2: ( (lv_exp_0_0= ruleInclusiveOrExpression ) ) (otherlv_1= '&&' ( (lv_exp_2_0= ruleInclusiveOrExpression ) ) )*
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1240:2: ( (lv_exp_0_0= ruleInclusiveOrExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1241:1: (lv_exp_0_0= ruleInclusiveOrExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1241:1: (lv_exp_0_0= ruleInclusiveOrExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1242:3: lv_exp_0_0= ruleInclusiveOrExpression
+ {
+
+ newCompositeNode(grammarAccess.getConditionalAndExpressionAccess().getExpInclusiveOrExpressionParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_ruleInclusiveOrExpression_in_ruleConditionalAndExpression2644);
+ lv_exp_0_0=ruleInclusiveOrExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getConditionalAndExpressionRule());
+ }
+ add(
+ current,
+ "exp",
+ lv_exp_0_0,
+ "InclusiveOrExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1258:2: (otherlv_1= '&&' ( (lv_exp_2_0= ruleInclusiveOrExpression ) ) )*
+ loop22:
+ do {
+ int alt22=2;
+ int LA22_0 = input.LA(1);
+
+ if ( (LA22_0==29) ) {
+ alt22=1;
+ }
+
+
+ switch (alt22) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1258:4: otherlv_1= '&&' ( (lv_exp_2_0= ruleInclusiveOrExpression ) )
+ {
+ otherlv_1=(Token)match(input,29,FOLLOW_29_in_ruleConditionalAndExpression2657);
+
+ newLeafNode(otherlv_1, grammarAccess.getConditionalAndExpressionAccess().getAmpersandAmpersandKeyword_1_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1262:1: ( (lv_exp_2_0= ruleInclusiveOrExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1263:1: (lv_exp_2_0= ruleInclusiveOrExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1263:1: (lv_exp_2_0= ruleInclusiveOrExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1264:3: lv_exp_2_0= ruleInclusiveOrExpression
+ {
+
+ newCompositeNode(grammarAccess.getConditionalAndExpressionAccess().getExpInclusiveOrExpressionParserRuleCall_1_1_0());
+
+ pushFollow(FOLLOW_ruleInclusiveOrExpression_in_ruleConditionalAndExpression2678);
+ lv_exp_2_0=ruleInclusiveOrExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getConditionalAndExpressionRule());
+ }
+ add(
+ current,
+ "exp",
+ lv_exp_2_0,
+ "InclusiveOrExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop22;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleConditionalAndExpression"
+
+
+ // $ANTLR start "entryRuleInclusiveOrExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1288:1: entryRuleInclusiveOrExpression returns [EObject current=null] : iv_ruleInclusiveOrExpression= ruleInclusiveOrExpression EOF ;
+ public final EObject entryRuleInclusiveOrExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleInclusiveOrExpression = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1289:2: (iv_ruleInclusiveOrExpression= ruleInclusiveOrExpression EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1290:2: iv_ruleInclusiveOrExpression= ruleInclusiveOrExpression EOF
+ {
+ newCompositeNode(grammarAccess.getInclusiveOrExpressionRule());
+ pushFollow(FOLLOW_ruleInclusiveOrExpression_in_entryRuleInclusiveOrExpression2716);
+ iv_ruleInclusiveOrExpression=ruleInclusiveOrExpression();
+
+ state._fsp--;
+
+ current =iv_ruleInclusiveOrExpression;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleInclusiveOrExpression2726);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleInclusiveOrExpression"
+
+
+ // $ANTLR start "ruleInclusiveOrExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1297:1: ruleInclusiveOrExpression returns [EObject current=null] : ( ( (lv_exp_0_0= ruleExclusiveOrExpression ) ) (otherlv_1= '|' ( (lv_exp_2_0= ruleExclusiveOrExpression ) ) )* ) ;
+ public final EObject ruleInclusiveOrExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ EObject lv_exp_0_0 = null;
+
+ EObject lv_exp_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1300:28: ( ( ( (lv_exp_0_0= ruleExclusiveOrExpression ) ) (otherlv_1= '|' ( (lv_exp_2_0= ruleExclusiveOrExpression ) ) )* ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1301:1: ( ( (lv_exp_0_0= ruleExclusiveOrExpression ) ) (otherlv_1= '|' ( (lv_exp_2_0= ruleExclusiveOrExpression ) ) )* )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1301:1: ( ( (lv_exp_0_0= ruleExclusiveOrExpression ) ) (otherlv_1= '|' ( (lv_exp_2_0= ruleExclusiveOrExpression ) ) )* )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1301:2: ( (lv_exp_0_0= ruleExclusiveOrExpression ) ) (otherlv_1= '|' ( (lv_exp_2_0= ruleExclusiveOrExpression ) ) )*
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1301:2: ( (lv_exp_0_0= ruleExclusiveOrExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1302:1: (lv_exp_0_0= ruleExclusiveOrExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1302:1: (lv_exp_0_0= ruleExclusiveOrExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1303:3: lv_exp_0_0= ruleExclusiveOrExpression
+ {
+
+ newCompositeNode(grammarAccess.getInclusiveOrExpressionAccess().getExpExclusiveOrExpressionParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_ruleExclusiveOrExpression_in_ruleInclusiveOrExpression2772);
+ lv_exp_0_0=ruleExclusiveOrExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getInclusiveOrExpressionRule());
+ }
+ add(
+ current,
+ "exp",
+ lv_exp_0_0,
+ "ExclusiveOrExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1319:2: (otherlv_1= '|' ( (lv_exp_2_0= ruleExclusiveOrExpression ) ) )*
+ loop23:
+ do {
+ int alt23=2;
+ int LA23_0 = input.LA(1);
+
+ if ( (LA23_0==30) ) {
+ alt23=1;
+ }
+
+
+ switch (alt23) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1319:4: otherlv_1= '|' ( (lv_exp_2_0= ruleExclusiveOrExpression ) )
+ {
+ otherlv_1=(Token)match(input,30,FOLLOW_30_in_ruleInclusiveOrExpression2785);
+
+ newLeafNode(otherlv_1, grammarAccess.getInclusiveOrExpressionAccess().getVerticalLineKeyword_1_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1323:1: ( (lv_exp_2_0= ruleExclusiveOrExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1324:1: (lv_exp_2_0= ruleExclusiveOrExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1324:1: (lv_exp_2_0= ruleExclusiveOrExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1325:3: lv_exp_2_0= ruleExclusiveOrExpression
+ {
+
+ newCompositeNode(grammarAccess.getInclusiveOrExpressionAccess().getExpExclusiveOrExpressionParserRuleCall_1_1_0());
+
+ pushFollow(FOLLOW_ruleExclusiveOrExpression_in_ruleInclusiveOrExpression2806);
+ lv_exp_2_0=ruleExclusiveOrExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getInclusiveOrExpressionRule());
+ }
+ add(
+ current,
+ "exp",
+ lv_exp_2_0,
+ "ExclusiveOrExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop23;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleInclusiveOrExpression"
+
+
+ // $ANTLR start "entryRuleExclusiveOrExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1349:1: entryRuleExclusiveOrExpression returns [EObject current=null] : iv_ruleExclusiveOrExpression= ruleExclusiveOrExpression EOF ;
+ public final EObject entryRuleExclusiveOrExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleExclusiveOrExpression = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1350:2: (iv_ruleExclusiveOrExpression= ruleExclusiveOrExpression EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1351:2: iv_ruleExclusiveOrExpression= ruleExclusiveOrExpression EOF
+ {
+ newCompositeNode(grammarAccess.getExclusiveOrExpressionRule());
+ pushFollow(FOLLOW_ruleExclusiveOrExpression_in_entryRuleExclusiveOrExpression2844);
+ iv_ruleExclusiveOrExpression=ruleExclusiveOrExpression();
+
+ state._fsp--;
+
+ current =iv_ruleExclusiveOrExpression;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleExclusiveOrExpression2854);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleExclusiveOrExpression"
+
+
+ // $ANTLR start "ruleExclusiveOrExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1358:1: ruleExclusiveOrExpression returns [EObject current=null] : ( ( (lv_exp_0_0= ruleAndExpression ) ) (otherlv_1= '^' ( (lv_exp_2_0= ruleAndExpression ) ) )* ) ;
+ public final EObject ruleExclusiveOrExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ EObject lv_exp_0_0 = null;
+
+ EObject lv_exp_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1361:28: ( ( ( (lv_exp_0_0= ruleAndExpression ) ) (otherlv_1= '^' ( (lv_exp_2_0= ruleAndExpression ) ) )* ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1362:1: ( ( (lv_exp_0_0= ruleAndExpression ) ) (otherlv_1= '^' ( (lv_exp_2_0= ruleAndExpression ) ) )* )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1362:1: ( ( (lv_exp_0_0= ruleAndExpression ) ) (otherlv_1= '^' ( (lv_exp_2_0= ruleAndExpression ) ) )* )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1362:2: ( (lv_exp_0_0= ruleAndExpression ) ) (otherlv_1= '^' ( (lv_exp_2_0= ruleAndExpression ) ) )*
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1362:2: ( (lv_exp_0_0= ruleAndExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1363:1: (lv_exp_0_0= ruleAndExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1363:1: (lv_exp_0_0= ruleAndExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1364:3: lv_exp_0_0= ruleAndExpression
+ {
+
+ newCompositeNode(grammarAccess.getExclusiveOrExpressionAccess().getExpAndExpressionParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_ruleAndExpression_in_ruleExclusiveOrExpression2900);
+ lv_exp_0_0=ruleAndExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getExclusiveOrExpressionRule());
+ }
+ add(
+ current,
+ "exp",
+ lv_exp_0_0,
+ "AndExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1380:2: (otherlv_1= '^' ( (lv_exp_2_0= ruleAndExpression ) ) )*
+ loop24:
+ do {
+ int alt24=2;
+ int LA24_0 = input.LA(1);
+
+ if ( (LA24_0==31) ) {
+ alt24=1;
+ }
+
+
+ switch (alt24) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1380:4: otherlv_1= '^' ( (lv_exp_2_0= ruleAndExpression ) )
+ {
+ otherlv_1=(Token)match(input,31,FOLLOW_31_in_ruleExclusiveOrExpression2913);
+
+ newLeafNode(otherlv_1, grammarAccess.getExclusiveOrExpressionAccess().getCircumflexAccentKeyword_1_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1384:1: ( (lv_exp_2_0= ruleAndExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1385:1: (lv_exp_2_0= ruleAndExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1385:1: (lv_exp_2_0= ruleAndExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1386:3: lv_exp_2_0= ruleAndExpression
+ {
+
+ newCompositeNode(grammarAccess.getExclusiveOrExpressionAccess().getExpAndExpressionParserRuleCall_1_1_0());
+
+ pushFollow(FOLLOW_ruleAndExpression_in_ruleExclusiveOrExpression2934);
+ lv_exp_2_0=ruleAndExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getExclusiveOrExpressionRule());
+ }
+ add(
+ current,
+ "exp",
+ lv_exp_2_0,
+ "AndExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop24;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleExclusiveOrExpression"
+
+
+ // $ANTLR start "entryRuleAndExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1410:1: entryRuleAndExpression returns [EObject current=null] : iv_ruleAndExpression= ruleAndExpression EOF ;
+ public final EObject entryRuleAndExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleAndExpression = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1411:2: (iv_ruleAndExpression= ruleAndExpression EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1412:2: iv_ruleAndExpression= ruleAndExpression EOF
+ {
+ newCompositeNode(grammarAccess.getAndExpressionRule());
+ pushFollow(FOLLOW_ruleAndExpression_in_entryRuleAndExpression2972);
+ iv_ruleAndExpression=ruleAndExpression();
+
+ state._fsp--;
+
+ current =iv_ruleAndExpression;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleAndExpression2982);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleAndExpression"
+
+
+ // $ANTLR start "ruleAndExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1419:1: ruleAndExpression returns [EObject current=null] : ( ( (lv_exp_0_0= ruleEqualityExpression ) ) (otherlv_1= '&' ( (lv_exp_2_0= ruleEqualityExpression ) ) )* ) ;
+ public final EObject ruleAndExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ EObject lv_exp_0_0 = null;
+
+ EObject lv_exp_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1422:28: ( ( ( (lv_exp_0_0= ruleEqualityExpression ) ) (otherlv_1= '&' ( (lv_exp_2_0= ruleEqualityExpression ) ) )* ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1423:1: ( ( (lv_exp_0_0= ruleEqualityExpression ) ) (otherlv_1= '&' ( (lv_exp_2_0= ruleEqualityExpression ) ) )* )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1423:1: ( ( (lv_exp_0_0= ruleEqualityExpression ) ) (otherlv_1= '&' ( (lv_exp_2_0= ruleEqualityExpression ) ) )* )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1423:2: ( (lv_exp_0_0= ruleEqualityExpression ) ) (otherlv_1= '&' ( (lv_exp_2_0= ruleEqualityExpression ) ) )*
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1423:2: ( (lv_exp_0_0= ruleEqualityExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1424:1: (lv_exp_0_0= ruleEqualityExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1424:1: (lv_exp_0_0= ruleEqualityExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1425:3: lv_exp_0_0= ruleEqualityExpression
+ {
+
+ newCompositeNode(grammarAccess.getAndExpressionAccess().getExpEqualityExpressionParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_ruleEqualityExpression_in_ruleAndExpression3028);
+ lv_exp_0_0=ruleEqualityExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getAndExpressionRule());
+ }
+ add(
+ current,
+ "exp",
+ lv_exp_0_0,
+ "EqualityExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1441:2: (otherlv_1= '&' ( (lv_exp_2_0= ruleEqualityExpression ) ) )*
+ loop25:
+ do {
+ int alt25=2;
+ int LA25_0 = input.LA(1);
+
+ if ( (LA25_0==32) ) {
+ alt25=1;
+ }
+
+
+ switch (alt25) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1441:4: otherlv_1= '&' ( (lv_exp_2_0= ruleEqualityExpression ) )
+ {
+ otherlv_1=(Token)match(input,32,FOLLOW_32_in_ruleAndExpression3041);
+
+ newLeafNode(otherlv_1, grammarAccess.getAndExpressionAccess().getAmpersandKeyword_1_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1445:1: ( (lv_exp_2_0= ruleEqualityExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1446:1: (lv_exp_2_0= ruleEqualityExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1446:1: (lv_exp_2_0= ruleEqualityExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1447:3: lv_exp_2_0= ruleEqualityExpression
+ {
+
+ newCompositeNode(grammarAccess.getAndExpressionAccess().getExpEqualityExpressionParserRuleCall_1_1_0());
+
+ pushFollow(FOLLOW_ruleEqualityExpression_in_ruleAndExpression3062);
+ lv_exp_2_0=ruleEqualityExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getAndExpressionRule());
+ }
+ add(
+ current,
+ "exp",
+ lv_exp_2_0,
+ "EqualityExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop25;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleAndExpression"
+
+
+ // $ANTLR start "entryRuleEqualityExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1471:1: entryRuleEqualityExpression returns [EObject current=null] : iv_ruleEqualityExpression= ruleEqualityExpression EOF ;
+ public final EObject entryRuleEqualityExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleEqualityExpression = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1472:2: (iv_ruleEqualityExpression= ruleEqualityExpression EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1473:2: iv_ruleEqualityExpression= ruleEqualityExpression EOF
+ {
+ newCompositeNode(grammarAccess.getEqualityExpressionRule());
+ pushFollow(FOLLOW_ruleEqualityExpression_in_entryRuleEqualityExpression3100);
+ iv_ruleEqualityExpression=ruleEqualityExpression();
+
+ state._fsp--;
+
+ current =iv_ruleEqualityExpression;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleEqualityExpression3110);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleEqualityExpression"
+
+
+ // $ANTLR start "ruleEqualityExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1480:1: ruleEqualityExpression returns [EObject current=null] : ( ( (lv_exp_0_0= ruleClassificationExpression ) ) ( ( ( (lv_op_1_1= '==' | lv_op_1_2= '!=' ) ) ) ( (lv_exp_2_0= ruleClassificationExpression ) ) )* ) ;
+ public final EObject ruleEqualityExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_op_1_1=null;
+ Token lv_op_1_2=null;
+ EObject lv_exp_0_0 = null;
+
+ EObject lv_exp_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1483:28: ( ( ( (lv_exp_0_0= ruleClassificationExpression ) ) ( ( ( (lv_op_1_1= '==' | lv_op_1_2= '!=' ) ) ) ( (lv_exp_2_0= ruleClassificationExpression ) ) )* ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1484:1: ( ( (lv_exp_0_0= ruleClassificationExpression ) ) ( ( ( (lv_op_1_1= '==' | lv_op_1_2= '!=' ) ) ) ( (lv_exp_2_0= ruleClassificationExpression ) ) )* )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1484:1: ( ( (lv_exp_0_0= ruleClassificationExpression ) ) ( ( ( (lv_op_1_1= '==' | lv_op_1_2= '!=' ) ) ) ( (lv_exp_2_0= ruleClassificationExpression ) ) )* )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1484:2: ( (lv_exp_0_0= ruleClassificationExpression ) ) ( ( ( (lv_op_1_1= '==' | lv_op_1_2= '!=' ) ) ) ( (lv_exp_2_0= ruleClassificationExpression ) ) )*
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1484:2: ( (lv_exp_0_0= ruleClassificationExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1485:1: (lv_exp_0_0= ruleClassificationExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1485:1: (lv_exp_0_0= ruleClassificationExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1486:3: lv_exp_0_0= ruleClassificationExpression
+ {
+
+ newCompositeNode(grammarAccess.getEqualityExpressionAccess().getExpClassificationExpressionParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_ruleClassificationExpression_in_ruleEqualityExpression3156);
+ lv_exp_0_0=ruleClassificationExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getEqualityExpressionRule());
+ }
+ add(
+ current,
+ "exp",
+ lv_exp_0_0,
+ "ClassificationExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1502:2: ( ( ( (lv_op_1_1= '==' | lv_op_1_2= '!=' ) ) ) ( (lv_exp_2_0= ruleClassificationExpression ) ) )*
+ loop27:
+ do {
+ int alt27=2;
+ int LA27_0 = input.LA(1);
+
+ if ( ((LA27_0>=33 && LA27_0<=34)) ) {
+ alt27=1;
+ }
+
+
+ switch (alt27) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1502:3: ( ( (lv_op_1_1= '==' | lv_op_1_2= '!=' ) ) ) ( (lv_exp_2_0= ruleClassificationExpression ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1502:3: ( ( (lv_op_1_1= '==' | lv_op_1_2= '!=' ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1503:1: ( (lv_op_1_1= '==' | lv_op_1_2= '!=' ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1503:1: ( (lv_op_1_1= '==' | lv_op_1_2= '!=' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1504:1: (lv_op_1_1= '==' | lv_op_1_2= '!=' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1504:1: (lv_op_1_1= '==' | lv_op_1_2= '!=' )
+ int alt26=2;
+ int LA26_0 = input.LA(1);
+
+ if ( (LA26_0==33) ) {
+ alt26=1;
+ }
+ else if ( (LA26_0==34) ) {
+ alt26=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 26, 0, input);
+
+ throw nvae;
+ }
+ switch (alt26) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1505:3: lv_op_1_1= '=='
+ {
+ lv_op_1_1=(Token)match(input,33,FOLLOW_33_in_ruleEqualityExpression3177);
+
+ newLeafNode(lv_op_1_1, grammarAccess.getEqualityExpressionAccess().getOpEqualsSignEqualsSignKeyword_1_0_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getEqualityExpressionRule());
+ }
+ addWithLastConsumed(current, "op", lv_op_1_1, null);
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1517:8: lv_op_1_2= '!='
+ {
+ lv_op_1_2=(Token)match(input,34,FOLLOW_34_in_ruleEqualityExpression3206);
+
+ newLeafNode(lv_op_1_2, grammarAccess.getEqualityExpressionAccess().getOpExclamationMarkEqualsSignKeyword_1_0_0_1());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getEqualityExpressionRule());
+ }
+ addWithLastConsumed(current, "op", lv_op_1_2, null);
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1532:2: ( (lv_exp_2_0= ruleClassificationExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1533:1: (lv_exp_2_0= ruleClassificationExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1533:1: (lv_exp_2_0= ruleClassificationExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1534:3: lv_exp_2_0= ruleClassificationExpression
+ {
+
+ newCompositeNode(grammarAccess.getEqualityExpressionAccess().getExpClassificationExpressionParserRuleCall_1_1_0());
+
+ pushFollow(FOLLOW_ruleClassificationExpression_in_ruleEqualityExpression3243);
+ lv_exp_2_0=ruleClassificationExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getEqualityExpressionRule());
+ }
+ add(
+ current,
+ "exp",
+ lv_exp_2_0,
+ "ClassificationExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop27;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleEqualityExpression"
+
+
+ // $ANTLR start "entryRuleClassificationExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1558:1: entryRuleClassificationExpression returns [EObject current=null] : iv_ruleClassificationExpression= ruleClassificationExpression EOF ;
+ public final EObject entryRuleClassificationExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleClassificationExpression = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1559:2: (iv_ruleClassificationExpression= ruleClassificationExpression EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1560:2: iv_ruleClassificationExpression= ruleClassificationExpression EOF
+ {
+ newCompositeNode(grammarAccess.getClassificationExpressionRule());
+ pushFollow(FOLLOW_ruleClassificationExpression_in_entryRuleClassificationExpression3281);
+ iv_ruleClassificationExpression=ruleClassificationExpression();
+
+ state._fsp--;
+
+ current =iv_ruleClassificationExpression;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleClassificationExpression3291);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleClassificationExpression"
+
+
+ // $ANTLR start "ruleClassificationExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1567:1: ruleClassificationExpression returns [EObject current=null] : ( ( (lv_exp_0_0= ruleRelationalExpression ) ) ( ( ( (lv_op_1_1= 'instanceof' | lv_op_1_2= 'hastype' ) ) ) ( (lv_typeName_2_0= ruleNameExpression ) ) )? ) ;
+ public final EObject ruleClassificationExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_op_1_1=null;
+ Token lv_op_1_2=null;
+ EObject lv_exp_0_0 = null;
+
+ EObject lv_typeName_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1570:28: ( ( ( (lv_exp_0_0= ruleRelationalExpression ) ) ( ( ( (lv_op_1_1= 'instanceof' | lv_op_1_2= 'hastype' ) ) ) ( (lv_typeName_2_0= ruleNameExpression ) ) )? ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1571:1: ( ( (lv_exp_0_0= ruleRelationalExpression ) ) ( ( ( (lv_op_1_1= 'instanceof' | lv_op_1_2= 'hastype' ) ) ) ( (lv_typeName_2_0= ruleNameExpression ) ) )? )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1571:1: ( ( (lv_exp_0_0= ruleRelationalExpression ) ) ( ( ( (lv_op_1_1= 'instanceof' | lv_op_1_2= 'hastype' ) ) ) ( (lv_typeName_2_0= ruleNameExpression ) ) )? )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1571:2: ( (lv_exp_0_0= ruleRelationalExpression ) ) ( ( ( (lv_op_1_1= 'instanceof' | lv_op_1_2= 'hastype' ) ) ) ( (lv_typeName_2_0= ruleNameExpression ) ) )?
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1571:2: ( (lv_exp_0_0= ruleRelationalExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1572:1: (lv_exp_0_0= ruleRelationalExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1572:1: (lv_exp_0_0= ruleRelationalExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1573:3: lv_exp_0_0= ruleRelationalExpression
+ {
+
+ newCompositeNode(grammarAccess.getClassificationExpressionAccess().getExpRelationalExpressionParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_ruleRelationalExpression_in_ruleClassificationExpression3337);
+ lv_exp_0_0=ruleRelationalExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getClassificationExpressionRule());
+ }
+ set(
+ current,
+ "exp",
+ lv_exp_0_0,
+ "RelationalExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1589:2: ( ( ( (lv_op_1_1= 'instanceof' | lv_op_1_2= 'hastype' ) ) ) ( (lv_typeName_2_0= ruleNameExpression ) ) )?
+ int alt29=2;
+ int LA29_0 = input.LA(1);
+
+ if ( ((LA29_0>=35 && LA29_0<=36)) ) {
+ alt29=1;
+ }
+ switch (alt29) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1589:3: ( ( (lv_op_1_1= 'instanceof' | lv_op_1_2= 'hastype' ) ) ) ( (lv_typeName_2_0= ruleNameExpression ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1589:3: ( ( (lv_op_1_1= 'instanceof' | lv_op_1_2= 'hastype' ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1590:1: ( (lv_op_1_1= 'instanceof' | lv_op_1_2= 'hastype' ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1590:1: ( (lv_op_1_1= 'instanceof' | lv_op_1_2= 'hastype' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1591:1: (lv_op_1_1= 'instanceof' | lv_op_1_2= 'hastype' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1591:1: (lv_op_1_1= 'instanceof' | lv_op_1_2= 'hastype' )
+ int alt28=2;
+ int LA28_0 = input.LA(1);
+
+ if ( (LA28_0==35) ) {
+ alt28=1;
+ }
+ else if ( (LA28_0==36) ) {
+ alt28=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 28, 0, input);
+
+ throw nvae;
+ }
+ switch (alt28) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1592:3: lv_op_1_1= 'instanceof'
+ {
+ lv_op_1_1=(Token)match(input,35,FOLLOW_35_in_ruleClassificationExpression3358);
+
+ newLeafNode(lv_op_1_1, grammarAccess.getClassificationExpressionAccess().getOpInstanceofKeyword_1_0_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getClassificationExpressionRule());
+ }
+ setWithLastConsumed(current, "op", lv_op_1_1, null);
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1604:8: lv_op_1_2= 'hastype'
+ {
+ lv_op_1_2=(Token)match(input,36,FOLLOW_36_in_ruleClassificationExpression3387);
+
+ newLeafNode(lv_op_1_2, grammarAccess.getClassificationExpressionAccess().getOpHastypeKeyword_1_0_0_1());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getClassificationExpressionRule());
+ }
+ setWithLastConsumed(current, "op", lv_op_1_2, null);
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1619:2: ( (lv_typeName_2_0= ruleNameExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1620:1: (lv_typeName_2_0= ruleNameExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1620:1: (lv_typeName_2_0= ruleNameExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1621:3: lv_typeName_2_0= ruleNameExpression
+ {
+
+ newCompositeNode(grammarAccess.getClassificationExpressionAccess().getTypeNameNameExpressionParserRuleCall_1_1_0());
+
+ pushFollow(FOLLOW_ruleNameExpression_in_ruleClassificationExpression3424);
+ lv_typeName_2_0=ruleNameExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getClassificationExpressionRule());
+ }
+ set(
+ current,
+ "typeName",
+ lv_typeName_2_0,
+ "NameExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleClassificationExpression"
+
+
+ // $ANTLR start "entryRuleRelationalExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1645:1: entryRuleRelationalExpression returns [EObject current=null] : iv_ruleRelationalExpression= ruleRelationalExpression EOF ;
+ public final EObject entryRuleRelationalExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleRelationalExpression = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1646:2: (iv_ruleRelationalExpression= ruleRelationalExpression EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1647:2: iv_ruleRelationalExpression= ruleRelationalExpression EOF
+ {
+ newCompositeNode(grammarAccess.getRelationalExpressionRule());
+ pushFollow(FOLLOW_ruleRelationalExpression_in_entryRuleRelationalExpression3462);
+ iv_ruleRelationalExpression=ruleRelationalExpression();
+
+ state._fsp--;
+
+ current =iv_ruleRelationalExpression;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleRelationalExpression3472);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleRelationalExpression"
+
+
+ // $ANTLR start "ruleRelationalExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1654:1: ruleRelationalExpression returns [EObject current=null] : ( ( (lv_left_0_0= ruleShiftExpression ) ) ( ( ( (lv_op_1_1= '<' | lv_op_1_2= '>' | lv_op_1_3= '<=' | lv_op_1_4= '>=' ) ) ) ( (lv_right_2_0= ruleShiftExpression ) ) )? ) ;
+ public final EObject ruleRelationalExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_op_1_1=null;
+ Token lv_op_1_2=null;
+ Token lv_op_1_3=null;
+ Token lv_op_1_4=null;
+ EObject lv_left_0_0 = null;
+
+ EObject lv_right_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1657:28: ( ( ( (lv_left_0_0= ruleShiftExpression ) ) ( ( ( (lv_op_1_1= '<' | lv_op_1_2= '>' | lv_op_1_3= '<=' | lv_op_1_4= '>=' ) ) ) ( (lv_right_2_0= ruleShiftExpression ) ) )? ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1658:1: ( ( (lv_left_0_0= ruleShiftExpression ) ) ( ( ( (lv_op_1_1= '<' | lv_op_1_2= '>' | lv_op_1_3= '<=' | lv_op_1_4= '>=' ) ) ) ( (lv_right_2_0= ruleShiftExpression ) ) )? )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1658:1: ( ( (lv_left_0_0= ruleShiftExpression ) ) ( ( ( (lv_op_1_1= '<' | lv_op_1_2= '>' | lv_op_1_3= '<=' | lv_op_1_4= '>=' ) ) ) ( (lv_right_2_0= ruleShiftExpression ) ) )? )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1658:2: ( (lv_left_0_0= ruleShiftExpression ) ) ( ( ( (lv_op_1_1= '<' | lv_op_1_2= '>' | lv_op_1_3= '<=' | lv_op_1_4= '>=' ) ) ) ( (lv_right_2_0= ruleShiftExpression ) ) )?
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1658:2: ( (lv_left_0_0= ruleShiftExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1659:1: (lv_left_0_0= ruleShiftExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1659:1: (lv_left_0_0= ruleShiftExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1660:3: lv_left_0_0= ruleShiftExpression
+ {
+
+ newCompositeNode(grammarAccess.getRelationalExpressionAccess().getLeftShiftExpressionParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_ruleShiftExpression_in_ruleRelationalExpression3518);
+ lv_left_0_0=ruleShiftExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getRelationalExpressionRule());
+ }
+ set(
+ current,
+ "left",
+ lv_left_0_0,
+ "ShiftExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1676:2: ( ( ( (lv_op_1_1= '<' | lv_op_1_2= '>' | lv_op_1_3= '<=' | lv_op_1_4= '>=' ) ) ) ( (lv_right_2_0= ruleShiftExpression ) ) )?
+ int alt31=2;
+ int LA31_0 = input.LA(1);
+
+ if ( (LA31_0==20||LA31_0==22||(LA31_0>=37 && LA31_0<=38)) ) {
+ alt31=1;
+ }
+ switch (alt31) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1676:3: ( ( (lv_op_1_1= '<' | lv_op_1_2= '>' | lv_op_1_3= '<=' | lv_op_1_4= '>=' ) ) ) ( (lv_right_2_0= ruleShiftExpression ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1676:3: ( ( (lv_op_1_1= '<' | lv_op_1_2= '>' | lv_op_1_3= '<=' | lv_op_1_4= '>=' ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1677:1: ( (lv_op_1_1= '<' | lv_op_1_2= '>' | lv_op_1_3= '<=' | lv_op_1_4= '>=' ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1677:1: ( (lv_op_1_1= '<' | lv_op_1_2= '>' | lv_op_1_3= '<=' | lv_op_1_4= '>=' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1678:1: (lv_op_1_1= '<' | lv_op_1_2= '>' | lv_op_1_3= '<=' | lv_op_1_4= '>=' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1678:1: (lv_op_1_1= '<' | lv_op_1_2= '>' | lv_op_1_3= '<=' | lv_op_1_4= '>=' )
+ int alt30=4;
+ switch ( input.LA(1) ) {
+ case 20:
+ {
+ alt30=1;
+ }
+ break;
+ case 22:
+ {
+ alt30=2;
+ }
+ break;
+ case 37:
+ {
+ alt30=3;
+ }
+ break;
+ case 38:
+ {
+ alt30=4;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 30, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt30) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1679:3: lv_op_1_1= '<'
+ {
+ lv_op_1_1=(Token)match(input,20,FOLLOW_20_in_ruleRelationalExpression3539);
+
+ newLeafNode(lv_op_1_1, grammarAccess.getRelationalExpressionAccess().getOpLessThanSignKeyword_1_0_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getRelationalExpressionRule());
+ }
+ setWithLastConsumed(current, "op", lv_op_1_1, null);
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1691:8: lv_op_1_2= '>'
+ {
+ lv_op_1_2=(Token)match(input,22,FOLLOW_22_in_ruleRelationalExpression3568);
+
+ newLeafNode(lv_op_1_2, grammarAccess.getRelationalExpressionAccess().getOpGreaterThanSignKeyword_1_0_0_1());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getRelationalExpressionRule());
+ }
+ setWithLastConsumed(current, "op", lv_op_1_2, null);
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1703:8: lv_op_1_3= '<='
+ {
+ lv_op_1_3=(Token)match(input,37,FOLLOW_37_in_ruleRelationalExpression3597);
+
+ newLeafNode(lv_op_1_3, grammarAccess.getRelationalExpressionAccess().getOpLessThanSignEqualsSignKeyword_1_0_0_2());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getRelationalExpressionRule());
+ }
+ setWithLastConsumed(current, "op", lv_op_1_3, null);
+
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1715:8: lv_op_1_4= '>='
+ {
+ lv_op_1_4=(Token)match(input,38,FOLLOW_38_in_ruleRelationalExpression3626);
+
+ newLeafNode(lv_op_1_4, grammarAccess.getRelationalExpressionAccess().getOpGreaterThanSignEqualsSignKeyword_1_0_0_3());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getRelationalExpressionRule());
+ }
+ setWithLastConsumed(current, "op", lv_op_1_4, null);
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1730:2: ( (lv_right_2_0= ruleShiftExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1731:1: (lv_right_2_0= ruleShiftExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1731:1: (lv_right_2_0= ruleShiftExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1732:3: lv_right_2_0= ruleShiftExpression
+ {
+
+ newCompositeNode(grammarAccess.getRelationalExpressionAccess().getRightShiftExpressionParserRuleCall_1_1_0());
+
+ pushFollow(FOLLOW_ruleShiftExpression_in_ruleRelationalExpression3663);
+ lv_right_2_0=ruleShiftExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getRelationalExpressionRule());
+ }
+ set(
+ current,
+ "right",
+ lv_right_2_0,
+ "ShiftExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleRelationalExpression"
+
+
+ // $ANTLR start "entryRuleShiftExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1756:1: entryRuleShiftExpression returns [EObject current=null] : iv_ruleShiftExpression= ruleShiftExpression EOF ;
+ public final EObject entryRuleShiftExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleShiftExpression = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1757:2: (iv_ruleShiftExpression= ruleShiftExpression EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1758:2: iv_ruleShiftExpression= ruleShiftExpression EOF
+ {
+ newCompositeNode(grammarAccess.getShiftExpressionRule());
+ pushFollow(FOLLOW_ruleShiftExpression_in_entryRuleShiftExpression3701);
+ iv_ruleShiftExpression=ruleShiftExpression();
+
+ state._fsp--;
+
+ current =iv_ruleShiftExpression;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleShiftExpression3711);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleShiftExpression"
+
+
+ // $ANTLR start "ruleShiftExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1765:1: ruleShiftExpression returns [EObject current=null] : ( ( (lv_exp_0_0= ruleAdditiveExpression ) ) ( ( ( (lv_op_1_1= '<<' | lv_op_1_2= '>>' | lv_op_1_3= '>>>' ) ) ) ( (lv_exp_2_0= ruleAdditiveExpression ) ) )? ) ;
+ public final EObject ruleShiftExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_op_1_1=null;
+ Token lv_op_1_2=null;
+ Token lv_op_1_3=null;
+ EObject lv_exp_0_0 = null;
+
+ EObject lv_exp_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1768:28: ( ( ( (lv_exp_0_0= ruleAdditiveExpression ) ) ( ( ( (lv_op_1_1= '<<' | lv_op_1_2= '>>' | lv_op_1_3= '>>>' ) ) ) ( (lv_exp_2_0= ruleAdditiveExpression ) ) )? ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1769:1: ( ( (lv_exp_0_0= ruleAdditiveExpression ) ) ( ( ( (lv_op_1_1= '<<' | lv_op_1_2= '>>' | lv_op_1_3= '>>>' ) ) ) ( (lv_exp_2_0= ruleAdditiveExpression ) ) )? )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1769:1: ( ( (lv_exp_0_0= ruleAdditiveExpression ) ) ( ( ( (lv_op_1_1= '<<' | lv_op_1_2= '>>' | lv_op_1_3= '>>>' ) ) ) ( (lv_exp_2_0= ruleAdditiveExpression ) ) )? )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1769:2: ( (lv_exp_0_0= ruleAdditiveExpression ) ) ( ( ( (lv_op_1_1= '<<' | lv_op_1_2= '>>' | lv_op_1_3= '>>>' ) ) ) ( (lv_exp_2_0= ruleAdditiveExpression ) ) )?
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1769:2: ( (lv_exp_0_0= ruleAdditiveExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1770:1: (lv_exp_0_0= ruleAdditiveExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1770:1: (lv_exp_0_0= ruleAdditiveExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1771:3: lv_exp_0_0= ruleAdditiveExpression
+ {
+
+ newCompositeNode(grammarAccess.getShiftExpressionAccess().getExpAdditiveExpressionParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_ruleAdditiveExpression_in_ruleShiftExpression3757);
+ lv_exp_0_0=ruleAdditiveExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getShiftExpressionRule());
+ }
+ add(
+ current,
+ "exp",
+ lv_exp_0_0,
+ "AdditiveExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1787:2: ( ( ( (lv_op_1_1= '<<' | lv_op_1_2= '>>' | lv_op_1_3= '>>>' ) ) ) ( (lv_exp_2_0= ruleAdditiveExpression ) ) )?
+ int alt33=2;
+ int LA33_0 = input.LA(1);
+
+ if ( ((LA33_0>=39 && LA33_0<=41)) ) {
+ alt33=1;
+ }
+ switch (alt33) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1787:3: ( ( (lv_op_1_1= '<<' | lv_op_1_2= '>>' | lv_op_1_3= '>>>' ) ) ) ( (lv_exp_2_0= ruleAdditiveExpression ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1787:3: ( ( (lv_op_1_1= '<<' | lv_op_1_2= '>>' | lv_op_1_3= '>>>' ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1788:1: ( (lv_op_1_1= '<<' | lv_op_1_2= '>>' | lv_op_1_3= '>>>' ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1788:1: ( (lv_op_1_1= '<<' | lv_op_1_2= '>>' | lv_op_1_3= '>>>' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1789:1: (lv_op_1_1= '<<' | lv_op_1_2= '>>' | lv_op_1_3= '>>>' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1789:1: (lv_op_1_1= '<<' | lv_op_1_2= '>>' | lv_op_1_3= '>>>' )
+ int alt32=3;
+ switch ( input.LA(1) ) {
+ case 39:
+ {
+ alt32=1;
+ }
+ break;
+ case 40:
+ {
+ alt32=2;
+ }
+ break;
+ case 41:
+ {
+ alt32=3;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 32, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt32) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1790:3: lv_op_1_1= '<<'
+ {
+ lv_op_1_1=(Token)match(input,39,FOLLOW_39_in_ruleShiftExpression3778);
+
+ newLeafNode(lv_op_1_1, grammarAccess.getShiftExpressionAccess().getOpLessThanSignLessThanSignKeyword_1_0_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getShiftExpressionRule());
+ }
+ setWithLastConsumed(current, "op", lv_op_1_1, null);
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1802:8: lv_op_1_2= '>>'
+ {
+ lv_op_1_2=(Token)match(input,40,FOLLOW_40_in_ruleShiftExpression3807);
+
+ newLeafNode(lv_op_1_2, grammarAccess.getShiftExpressionAccess().getOpGreaterThanSignGreaterThanSignKeyword_1_0_0_1());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getShiftExpressionRule());
+ }
+ setWithLastConsumed(current, "op", lv_op_1_2, null);
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1814:8: lv_op_1_3= '>>>'
+ {
+ lv_op_1_3=(Token)match(input,41,FOLLOW_41_in_ruleShiftExpression3836);
+
+ newLeafNode(lv_op_1_3, grammarAccess.getShiftExpressionAccess().getOpGreaterThanSignGreaterThanSignGreaterThanSignKeyword_1_0_0_2());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getShiftExpressionRule());
+ }
+ setWithLastConsumed(current, "op", lv_op_1_3, null);
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1829:2: ( (lv_exp_2_0= ruleAdditiveExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1830:1: (lv_exp_2_0= ruleAdditiveExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1830:1: (lv_exp_2_0= ruleAdditiveExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1831:3: lv_exp_2_0= ruleAdditiveExpression
+ {
+
+ newCompositeNode(grammarAccess.getShiftExpressionAccess().getExpAdditiveExpressionParserRuleCall_1_1_0());
+
+ pushFollow(FOLLOW_ruleAdditiveExpression_in_ruleShiftExpression3873);
+ lv_exp_2_0=ruleAdditiveExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getShiftExpressionRule());
+ }
+ add(
+ current,
+ "exp",
+ lv_exp_2_0,
+ "AdditiveExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleShiftExpression"
+
+
+ // $ANTLR start "entryRuleAdditiveExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1855:1: entryRuleAdditiveExpression returns [EObject current=null] : iv_ruleAdditiveExpression= ruleAdditiveExpression EOF ;
+ public final EObject entryRuleAdditiveExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleAdditiveExpression = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1856:2: (iv_ruleAdditiveExpression= ruleAdditiveExpression EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1857:2: iv_ruleAdditiveExpression= ruleAdditiveExpression EOF
+ {
+ newCompositeNode(grammarAccess.getAdditiveExpressionRule());
+ pushFollow(FOLLOW_ruleAdditiveExpression_in_entryRuleAdditiveExpression3911);
+ iv_ruleAdditiveExpression=ruleAdditiveExpression();
+
+ state._fsp--;
+
+ current =iv_ruleAdditiveExpression;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleAdditiveExpression3921);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleAdditiveExpression"
+
+
+ // $ANTLR start "ruleAdditiveExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1864:1: ruleAdditiveExpression returns [EObject current=null] : ( ( (lv_exp_0_0= ruleMultiplicativeExpression ) ) ( ( ( (lv_op_1_1= '+' | lv_op_1_2= '-' ) ) ) ( (lv_exp_2_0= ruleMultiplicativeExpression ) ) )* ) ;
+ public final EObject ruleAdditiveExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_op_1_1=null;
+ Token lv_op_1_2=null;
+ EObject lv_exp_0_0 = null;
+
+ EObject lv_exp_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1867:28: ( ( ( (lv_exp_0_0= ruleMultiplicativeExpression ) ) ( ( ( (lv_op_1_1= '+' | lv_op_1_2= '-' ) ) ) ( (lv_exp_2_0= ruleMultiplicativeExpression ) ) )* ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1868:1: ( ( (lv_exp_0_0= ruleMultiplicativeExpression ) ) ( ( ( (lv_op_1_1= '+' | lv_op_1_2= '-' ) ) ) ( (lv_exp_2_0= ruleMultiplicativeExpression ) ) )* )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1868:1: ( ( (lv_exp_0_0= ruleMultiplicativeExpression ) ) ( ( ( (lv_op_1_1= '+' | lv_op_1_2= '-' ) ) ) ( (lv_exp_2_0= ruleMultiplicativeExpression ) ) )* )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1868:2: ( (lv_exp_0_0= ruleMultiplicativeExpression ) ) ( ( ( (lv_op_1_1= '+' | lv_op_1_2= '-' ) ) ) ( (lv_exp_2_0= ruleMultiplicativeExpression ) ) )*
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1868:2: ( (lv_exp_0_0= ruleMultiplicativeExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1869:1: (lv_exp_0_0= ruleMultiplicativeExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1869:1: (lv_exp_0_0= ruleMultiplicativeExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1870:3: lv_exp_0_0= ruleMultiplicativeExpression
+ {
+
+ newCompositeNode(grammarAccess.getAdditiveExpressionAccess().getExpMultiplicativeExpressionParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_ruleMultiplicativeExpression_in_ruleAdditiveExpression3967);
+ lv_exp_0_0=ruleMultiplicativeExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getAdditiveExpressionRule());
+ }
+ add(
+ current,
+ "exp",
+ lv_exp_0_0,
+ "MultiplicativeExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1886:2: ( ( ( (lv_op_1_1= '+' | lv_op_1_2= '-' ) ) ) ( (lv_exp_2_0= ruleMultiplicativeExpression ) ) )*
+ loop35:
+ do {
+ int alt35=2;
+ int LA35_0 = input.LA(1);
+
+ if ( ((LA35_0>=42 && LA35_0<=43)) ) {
+ alt35=1;
+ }
+
+
+ switch (alt35) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1886:3: ( ( (lv_op_1_1= '+' | lv_op_1_2= '-' ) ) ) ( (lv_exp_2_0= ruleMultiplicativeExpression ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1886:3: ( ( (lv_op_1_1= '+' | lv_op_1_2= '-' ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1887:1: ( (lv_op_1_1= '+' | lv_op_1_2= '-' ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1887:1: ( (lv_op_1_1= '+' | lv_op_1_2= '-' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1888:1: (lv_op_1_1= '+' | lv_op_1_2= '-' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1888:1: (lv_op_1_1= '+' | lv_op_1_2= '-' )
+ int alt34=2;
+ int LA34_0 = input.LA(1);
+
+ if ( (LA34_0==42) ) {
+ alt34=1;
+ }
+ else if ( (LA34_0==43) ) {
+ alt34=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 34, 0, input);
+
+ throw nvae;
+ }
+ switch (alt34) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1889:3: lv_op_1_1= '+'
+ {
+ lv_op_1_1=(Token)match(input,42,FOLLOW_42_in_ruleAdditiveExpression3988);
+
+ newLeafNode(lv_op_1_1, grammarAccess.getAdditiveExpressionAccess().getOpPlusSignKeyword_1_0_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getAdditiveExpressionRule());
+ }
+ addWithLastConsumed(current, "op", lv_op_1_1, null);
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1901:8: lv_op_1_2= '-'
+ {
+ lv_op_1_2=(Token)match(input,43,FOLLOW_43_in_ruleAdditiveExpression4017);
+
+ newLeafNode(lv_op_1_2, grammarAccess.getAdditiveExpressionAccess().getOpHyphenMinusKeyword_1_0_0_1());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getAdditiveExpressionRule());
+ }
+ addWithLastConsumed(current, "op", lv_op_1_2, null);
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1916:2: ( (lv_exp_2_0= ruleMultiplicativeExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1917:1: (lv_exp_2_0= ruleMultiplicativeExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1917:1: (lv_exp_2_0= ruleMultiplicativeExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1918:3: lv_exp_2_0= ruleMultiplicativeExpression
+ {
+
+ newCompositeNode(grammarAccess.getAdditiveExpressionAccess().getExpMultiplicativeExpressionParserRuleCall_1_1_0());
+
+ pushFollow(FOLLOW_ruleMultiplicativeExpression_in_ruleAdditiveExpression4054);
+ lv_exp_2_0=ruleMultiplicativeExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getAdditiveExpressionRule());
+ }
+ add(
+ current,
+ "exp",
+ lv_exp_2_0,
+ "MultiplicativeExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop35;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleAdditiveExpression"
+
+
+ // $ANTLR start "entryRuleMultiplicativeExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1942:1: entryRuleMultiplicativeExpression returns [EObject current=null] : iv_ruleMultiplicativeExpression= ruleMultiplicativeExpression EOF ;
+ public final EObject entryRuleMultiplicativeExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleMultiplicativeExpression = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1943:2: (iv_ruleMultiplicativeExpression= ruleMultiplicativeExpression EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1944:2: iv_ruleMultiplicativeExpression= ruleMultiplicativeExpression EOF
+ {
+ newCompositeNode(grammarAccess.getMultiplicativeExpressionRule());
+ pushFollow(FOLLOW_ruleMultiplicativeExpression_in_entryRuleMultiplicativeExpression4092);
+ iv_ruleMultiplicativeExpression=ruleMultiplicativeExpression();
+
+ state._fsp--;
+
+ current =iv_ruleMultiplicativeExpression;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleMultiplicativeExpression4102);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleMultiplicativeExpression"
+
+
+ // $ANTLR start "ruleMultiplicativeExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1951:1: ruleMultiplicativeExpression returns [EObject current=null] : ( ( (lv_exp_0_0= ruleUnaryExpression ) ) ( ( ( (lv_op_1_1= '*' | lv_op_1_2= '/' | lv_op_1_3= '%' ) ) ) ( (lv_exp_2_0= ruleUnaryExpression ) ) )* ) ;
+ public final EObject ruleMultiplicativeExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_op_1_1=null;
+ Token lv_op_1_2=null;
+ Token lv_op_1_3=null;
+ EObject lv_exp_0_0 = null;
+
+ EObject lv_exp_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1954:28: ( ( ( (lv_exp_0_0= ruleUnaryExpression ) ) ( ( ( (lv_op_1_1= '*' | lv_op_1_2= '/' | lv_op_1_3= '%' ) ) ) ( (lv_exp_2_0= ruleUnaryExpression ) ) )* ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1955:1: ( ( (lv_exp_0_0= ruleUnaryExpression ) ) ( ( ( (lv_op_1_1= '*' | lv_op_1_2= '/' | lv_op_1_3= '%' ) ) ) ( (lv_exp_2_0= ruleUnaryExpression ) ) )* )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1955:1: ( ( (lv_exp_0_0= ruleUnaryExpression ) ) ( ( ( (lv_op_1_1= '*' | lv_op_1_2= '/' | lv_op_1_3= '%' ) ) ) ( (lv_exp_2_0= ruleUnaryExpression ) ) )* )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1955:2: ( (lv_exp_0_0= ruleUnaryExpression ) ) ( ( ( (lv_op_1_1= '*' | lv_op_1_2= '/' | lv_op_1_3= '%' ) ) ) ( (lv_exp_2_0= ruleUnaryExpression ) ) )*
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1955:2: ( (lv_exp_0_0= ruleUnaryExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1956:1: (lv_exp_0_0= ruleUnaryExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1956:1: (lv_exp_0_0= ruleUnaryExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1957:3: lv_exp_0_0= ruleUnaryExpression
+ {
+
+ newCompositeNode(grammarAccess.getMultiplicativeExpressionAccess().getExpUnaryExpressionParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_ruleUnaryExpression_in_ruleMultiplicativeExpression4148);
+ lv_exp_0_0=ruleUnaryExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getMultiplicativeExpressionRule());
+ }
+ add(
+ current,
+ "exp",
+ lv_exp_0_0,
+ "UnaryExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1973:2: ( ( ( (lv_op_1_1= '*' | lv_op_1_2= '/' | lv_op_1_3= '%' ) ) ) ( (lv_exp_2_0= ruleUnaryExpression ) ) )*
+ loop37:
+ do {
+ int alt37=2;
+ int LA37_0 = input.LA(1);
+
+ if ( (LA37_0==16||(LA37_0>=44 && LA37_0<=45)) ) {
+ alt37=1;
+ }
+
+
+ switch (alt37) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1973:3: ( ( (lv_op_1_1= '*' | lv_op_1_2= '/' | lv_op_1_3= '%' ) ) ) ( (lv_exp_2_0= ruleUnaryExpression ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1973:3: ( ( (lv_op_1_1= '*' | lv_op_1_2= '/' | lv_op_1_3= '%' ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1974:1: ( (lv_op_1_1= '*' | lv_op_1_2= '/' | lv_op_1_3= '%' ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1974:1: ( (lv_op_1_1= '*' | lv_op_1_2= '/' | lv_op_1_3= '%' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1975:1: (lv_op_1_1= '*' | lv_op_1_2= '/' | lv_op_1_3= '%' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1975:1: (lv_op_1_1= '*' | lv_op_1_2= '/' | lv_op_1_3= '%' )
+ int alt36=3;
+ switch ( input.LA(1) ) {
+ case 16:
+ {
+ alt36=1;
+ }
+ break;
+ case 44:
+ {
+ alt36=2;
+ }
+ break;
+ case 45:
+ {
+ alt36=3;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 36, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt36) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1976:3: lv_op_1_1= '*'
+ {
+ lv_op_1_1=(Token)match(input,16,FOLLOW_16_in_ruleMultiplicativeExpression4169);
+
+ newLeafNode(lv_op_1_1, grammarAccess.getMultiplicativeExpressionAccess().getOpAsteriskKeyword_1_0_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getMultiplicativeExpressionRule());
+ }
+ addWithLastConsumed(current, "op", lv_op_1_1, null);
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:1988:8: lv_op_1_2= '/'
+ {
+ lv_op_1_2=(Token)match(input,44,FOLLOW_44_in_ruleMultiplicativeExpression4198);
+
+ newLeafNode(lv_op_1_2, grammarAccess.getMultiplicativeExpressionAccess().getOpSolidusKeyword_1_0_0_1());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getMultiplicativeExpressionRule());
+ }
+ addWithLastConsumed(current, "op", lv_op_1_2, null);
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2000:8: lv_op_1_3= '%'
+ {
+ lv_op_1_3=(Token)match(input,45,FOLLOW_45_in_ruleMultiplicativeExpression4227);
+
+ newLeafNode(lv_op_1_3, grammarAccess.getMultiplicativeExpressionAccess().getOpPercentSignKeyword_1_0_0_2());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getMultiplicativeExpressionRule());
+ }
+ addWithLastConsumed(current, "op", lv_op_1_3, null);
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2015:2: ( (lv_exp_2_0= ruleUnaryExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2016:1: (lv_exp_2_0= ruleUnaryExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2016:1: (lv_exp_2_0= ruleUnaryExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2017:3: lv_exp_2_0= ruleUnaryExpression
+ {
+
+ newCompositeNode(grammarAccess.getMultiplicativeExpressionAccess().getExpUnaryExpressionParserRuleCall_1_1_0());
+
+ pushFollow(FOLLOW_ruleUnaryExpression_in_ruleMultiplicativeExpression4264);
+ lv_exp_2_0=ruleUnaryExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getMultiplicativeExpressionRule());
+ }
+ add(
+ current,
+ "exp",
+ lv_exp_2_0,
+ "UnaryExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop37;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleMultiplicativeExpression"
+
+
+ // $ANTLR start "entryRuleUnaryExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2041:1: entryRuleUnaryExpression returns [EObject current=null] : iv_ruleUnaryExpression= ruleUnaryExpression EOF ;
+ public final EObject entryRuleUnaryExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleUnaryExpression = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2042:2: (iv_ruleUnaryExpression= ruleUnaryExpression EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2043:2: iv_ruleUnaryExpression= ruleUnaryExpression EOF
+ {
+ newCompositeNode(grammarAccess.getUnaryExpressionRule());
+ pushFollow(FOLLOW_ruleUnaryExpression_in_entryRuleUnaryExpression4302);
+ iv_ruleUnaryExpression=ruleUnaryExpression();
+
+ state._fsp--;
+
+ current =iv_ruleUnaryExpression;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleUnaryExpression4312);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleUnaryExpression"
+
+
+ // $ANTLR start "ruleUnaryExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2050:1: ruleUnaryExpression returns [EObject current=null] : ( ( ( (lv_op_0_1= '!' | lv_op_0_2= '-' | lv_op_0_3= '+' | lv_op_0_4= '$' | lv_op_0_5= '~' ) ) )? ( (lv_exp_1_0= rulePrimaryExpression ) ) ) ;
+ public final EObject ruleUnaryExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_op_0_1=null;
+ Token lv_op_0_2=null;
+ Token lv_op_0_3=null;
+ Token lv_op_0_4=null;
+ Token lv_op_0_5=null;
+ EObject lv_exp_1_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2053:28: ( ( ( ( (lv_op_0_1= '!' | lv_op_0_2= '-' | lv_op_0_3= '+' | lv_op_0_4= '$' | lv_op_0_5= '~' ) ) )? ( (lv_exp_1_0= rulePrimaryExpression ) ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2054:1: ( ( ( (lv_op_0_1= '!' | lv_op_0_2= '-' | lv_op_0_3= '+' | lv_op_0_4= '$' | lv_op_0_5= '~' ) ) )? ( (lv_exp_1_0= rulePrimaryExpression ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2054:1: ( ( ( (lv_op_0_1= '!' | lv_op_0_2= '-' | lv_op_0_3= '+' | lv_op_0_4= '$' | lv_op_0_5= '~' ) ) )? ( (lv_exp_1_0= rulePrimaryExpression ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2054:2: ( ( (lv_op_0_1= '!' | lv_op_0_2= '-' | lv_op_0_3= '+' | lv_op_0_4= '$' | lv_op_0_5= '~' ) ) )? ( (lv_exp_1_0= rulePrimaryExpression ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2054:2: ( ( (lv_op_0_1= '!' | lv_op_0_2= '-' | lv_op_0_3= '+' | lv_op_0_4= '$' | lv_op_0_5= '~' ) ) )?
+ int alt39=2;
+ int LA39_0 = input.LA(1);
+
+ if ( ((LA39_0>=42 && LA39_0<=43)||(LA39_0>=46 && LA39_0<=48)) ) {
+ alt39=1;
+ }
+ switch (alt39) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2055:1: ( (lv_op_0_1= '!' | lv_op_0_2= '-' | lv_op_0_3= '+' | lv_op_0_4= '$' | lv_op_0_5= '~' ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2055:1: ( (lv_op_0_1= '!' | lv_op_0_2= '-' | lv_op_0_3= '+' | lv_op_0_4= '$' | lv_op_0_5= '~' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2056:1: (lv_op_0_1= '!' | lv_op_0_2= '-' | lv_op_0_3= '+' | lv_op_0_4= '$' | lv_op_0_5= '~' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2056:1: (lv_op_0_1= '!' | lv_op_0_2= '-' | lv_op_0_3= '+' | lv_op_0_4= '$' | lv_op_0_5= '~' )
+ int alt38=5;
+ switch ( input.LA(1) ) {
+ case 46:
+ {
+ alt38=1;
+ }
+ break;
+ case 43:
+ {
+ alt38=2;
+ }
+ break;
+ case 42:
+ {
+ alt38=3;
+ }
+ break;
+ case 47:
+ {
+ alt38=4;
+ }
+ break;
+ case 48:
+ {
+ alt38=5;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 38, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt38) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2057:3: lv_op_0_1= '!'
+ {
+ lv_op_0_1=(Token)match(input,46,FOLLOW_46_in_ruleUnaryExpression4357);
+
+ newLeafNode(lv_op_0_1, grammarAccess.getUnaryExpressionAccess().getOpExclamationMarkKeyword_0_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getUnaryExpressionRule());
+ }
+ setWithLastConsumed(current, "op", lv_op_0_1, null);
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2069:8: lv_op_0_2= '-'
+ {
+ lv_op_0_2=(Token)match(input,43,FOLLOW_43_in_ruleUnaryExpression4386);
+
+ newLeafNode(lv_op_0_2, grammarAccess.getUnaryExpressionAccess().getOpHyphenMinusKeyword_0_0_1());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getUnaryExpressionRule());
+ }
+ setWithLastConsumed(current, "op", lv_op_0_2, null);
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2081:8: lv_op_0_3= '+'
+ {
+ lv_op_0_3=(Token)match(input,42,FOLLOW_42_in_ruleUnaryExpression4415);
+
+ newLeafNode(lv_op_0_3, grammarAccess.getUnaryExpressionAccess().getOpPlusSignKeyword_0_0_2());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getUnaryExpressionRule());
+ }
+ setWithLastConsumed(current, "op", lv_op_0_3, null);
+
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2093:8: lv_op_0_4= '$'
+ {
+ lv_op_0_4=(Token)match(input,47,FOLLOW_47_in_ruleUnaryExpression4444);
+
+ newLeafNode(lv_op_0_4, grammarAccess.getUnaryExpressionAccess().getOpDollarSignKeyword_0_0_3());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getUnaryExpressionRule());
+ }
+ setWithLastConsumed(current, "op", lv_op_0_4, null);
+
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2105:8: lv_op_0_5= '~'
+ {
+ lv_op_0_5=(Token)match(input,48,FOLLOW_48_in_ruleUnaryExpression4473);
+
+ newLeafNode(lv_op_0_5, grammarAccess.getUnaryExpressionAccess().getOpTildeKeyword_0_0_4());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getUnaryExpressionRule());
+ }
+ setWithLastConsumed(current, "op", lv_op_0_5, null);
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2120:3: ( (lv_exp_1_0= rulePrimaryExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2121:1: (lv_exp_1_0= rulePrimaryExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2121:1: (lv_exp_1_0= rulePrimaryExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2122:3: lv_exp_1_0= rulePrimaryExpression
+ {
+
+ newCompositeNode(grammarAccess.getUnaryExpressionAccess().getExpPrimaryExpressionParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_rulePrimaryExpression_in_ruleUnaryExpression4511);
+ lv_exp_1_0=rulePrimaryExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getUnaryExpressionRule());
+ }
+ set(
+ current,
+ "exp",
+ lv_exp_1_0,
+ "PrimaryExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleUnaryExpression"
+
+
+ // $ANTLR start "entryRulePrimaryExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2146:1: entryRulePrimaryExpression returns [EObject current=null] : iv_rulePrimaryExpression= rulePrimaryExpression EOF ;
+ public final EObject entryRulePrimaryExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_rulePrimaryExpression = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2147:2: (iv_rulePrimaryExpression= rulePrimaryExpression EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2148:2: iv_rulePrimaryExpression= rulePrimaryExpression EOF
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionRule());
+ pushFollow(FOLLOW_rulePrimaryExpression_in_entryRulePrimaryExpression4547);
+ iv_rulePrimaryExpression=rulePrimaryExpression();
+
+ state._fsp--;
+
+ current =iv_rulePrimaryExpression;
+ match(input,EOF,FOLLOW_EOF_in_entryRulePrimaryExpression4557);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRulePrimaryExpression"
+
+
+ // $ANTLR start "rulePrimaryExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2155:1: rulePrimaryExpression returns [EObject current=null] : ( (lv_prefix_0_0= ruleValueSpecification ) ) ;
+ public final EObject rulePrimaryExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject lv_prefix_0_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2158:28: ( ( (lv_prefix_0_0= ruleValueSpecification ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2159:1: ( (lv_prefix_0_0= ruleValueSpecification ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2159:1: ( (lv_prefix_0_0= ruleValueSpecification ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2160:1: (lv_prefix_0_0= ruleValueSpecification )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2160:1: (lv_prefix_0_0= ruleValueSpecification )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2161:3: lv_prefix_0_0= ruleValueSpecification
+ {
+
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getPrefixValueSpecificationParserRuleCall_0());
+
+ pushFollow(FOLLOW_ruleValueSpecification_in_rulePrimaryExpression4602);
+ lv_prefix_0_0=ruleValueSpecification();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ current,
+ "prefix",
+ lv_prefix_0_0,
+ "ValueSpecification");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "rulePrimaryExpression"
+
+
+ // $ANTLR start "entryRuleSuffixExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2185:1: entryRuleSuffixExpression returns [EObject current=null] : iv_ruleSuffixExpression= ruleSuffixExpression EOF ;
+ public final EObject entryRuleSuffixExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleSuffixExpression = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2186:2: (iv_ruleSuffixExpression= ruleSuffixExpression EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2187:2: iv_ruleSuffixExpression= ruleSuffixExpression EOF
+ {
+ newCompositeNode(grammarAccess.getSuffixExpressionRule());
+ pushFollow(FOLLOW_ruleSuffixExpression_in_entryRuleSuffixExpression4637);
+ iv_ruleSuffixExpression=ruleSuffixExpression();
+
+ state._fsp--;
+
+ current =iv_ruleSuffixExpression;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleSuffixExpression4647);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleSuffixExpression"
+
+
+ // $ANTLR start "ruleSuffixExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2194:1: ruleSuffixExpression returns [EObject current=null] : (this_OperationCallExpression_0= ruleOperationCallExpression | this_PropertyCallExpression_1= rulePropertyCallExpression | this_LinkOperationExpression_2= ruleLinkOperationExpression | this_SequenceOperationExpression_3= ruleSequenceOperationExpression | this_SequenceReductionExpression_4= ruleSequenceReductionExpression | this_SequenceExpansionExpression_5= ruleSequenceExpansionExpression | this_ClassExtentExpression_6= ruleClassExtentExpression ) ;
+ public final EObject ruleSuffixExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_OperationCallExpression_0 = null;
+
+ EObject this_PropertyCallExpression_1 = null;
+
+ EObject this_LinkOperationExpression_2 = null;
+
+ EObject this_SequenceOperationExpression_3 = null;
+
+ EObject this_SequenceReductionExpression_4 = null;
+
+ EObject this_SequenceExpansionExpression_5 = null;
+
+ EObject this_ClassExtentExpression_6 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2197:28: ( (this_OperationCallExpression_0= ruleOperationCallExpression | this_PropertyCallExpression_1= rulePropertyCallExpression | this_LinkOperationExpression_2= ruleLinkOperationExpression | this_SequenceOperationExpression_3= ruleSequenceOperationExpression | this_SequenceReductionExpression_4= ruleSequenceReductionExpression | this_SequenceExpansionExpression_5= ruleSequenceExpansionExpression | this_ClassExtentExpression_6= ruleClassExtentExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2198:1: (this_OperationCallExpression_0= ruleOperationCallExpression | this_PropertyCallExpression_1= rulePropertyCallExpression | this_LinkOperationExpression_2= ruleLinkOperationExpression | this_SequenceOperationExpression_3= ruleSequenceOperationExpression | this_SequenceReductionExpression_4= ruleSequenceReductionExpression | this_SequenceExpansionExpression_5= ruleSequenceExpansionExpression | this_ClassExtentExpression_6= ruleClassExtentExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2198:1: (this_OperationCallExpression_0= ruleOperationCallExpression | this_PropertyCallExpression_1= rulePropertyCallExpression | this_LinkOperationExpression_2= ruleLinkOperationExpression | this_SequenceOperationExpression_3= ruleSequenceOperationExpression | this_SequenceReductionExpression_4= ruleSequenceReductionExpression | this_SequenceExpansionExpression_5= ruleSequenceExpansionExpression | this_ClassExtentExpression_6= ruleClassExtentExpression )
+ int alt40=7;
+ alt40 = dfa40.predict(input);
+ switch (alt40) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2199:5: this_OperationCallExpression_0= ruleOperationCallExpression
+ {
+
+ newCompositeNode(grammarAccess.getSuffixExpressionAccess().getOperationCallExpressionParserRuleCall_0());
+
+ pushFollow(FOLLOW_ruleOperationCallExpression_in_ruleSuffixExpression4694);
+ this_OperationCallExpression_0=ruleOperationCallExpression();
+
+ state._fsp--;
+
+
+ current = this_OperationCallExpression_0;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2209:5: this_PropertyCallExpression_1= rulePropertyCallExpression
+ {
+
+ newCompositeNode(grammarAccess.getSuffixExpressionAccess().getPropertyCallExpressionParserRuleCall_1());
+
+ pushFollow(FOLLOW_rulePropertyCallExpression_in_ruleSuffixExpression4721);
+ this_PropertyCallExpression_1=rulePropertyCallExpression();
+
+ state._fsp--;
+
+
+ current = this_PropertyCallExpression_1;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2219:5: this_LinkOperationExpression_2= ruleLinkOperationExpression
+ {
+
+ newCompositeNode(grammarAccess.getSuffixExpressionAccess().getLinkOperationExpressionParserRuleCall_2());
+
+ pushFollow(FOLLOW_ruleLinkOperationExpression_in_ruleSuffixExpression4748);
+ this_LinkOperationExpression_2=ruleLinkOperationExpression();
+
+ state._fsp--;
+
+
+ current = this_LinkOperationExpression_2;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2229:5: this_SequenceOperationExpression_3= ruleSequenceOperationExpression
+ {
+
+ newCompositeNode(grammarAccess.getSuffixExpressionAccess().getSequenceOperationExpressionParserRuleCall_3());
+
+ pushFollow(FOLLOW_ruleSequenceOperationExpression_in_ruleSuffixExpression4775);
+ this_SequenceOperationExpression_3=ruleSequenceOperationExpression();
+
+ state._fsp--;
+
+
+ current = this_SequenceOperationExpression_3;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2239:5: this_SequenceReductionExpression_4= ruleSequenceReductionExpression
+ {
+
+ newCompositeNode(grammarAccess.getSuffixExpressionAccess().getSequenceReductionExpressionParserRuleCall_4());
+
+ pushFollow(FOLLOW_ruleSequenceReductionExpression_in_ruleSuffixExpression4802);
+ this_SequenceReductionExpression_4=ruleSequenceReductionExpression();
+
+ state._fsp--;
+
+
+ current = this_SequenceReductionExpression_4;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 6 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2249:5: this_SequenceExpansionExpression_5= ruleSequenceExpansionExpression
+ {
+
+ newCompositeNode(grammarAccess.getSuffixExpressionAccess().getSequenceExpansionExpressionParserRuleCall_5());
+
+ pushFollow(FOLLOW_ruleSequenceExpansionExpression_in_ruleSuffixExpression4829);
+ this_SequenceExpansionExpression_5=ruleSequenceExpansionExpression();
+
+ state._fsp--;
+
+
+ current = this_SequenceExpansionExpression_5;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 7 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2259:5: this_ClassExtentExpression_6= ruleClassExtentExpression
+ {
+
+ newCompositeNode(grammarAccess.getSuffixExpressionAccess().getClassExtentExpressionParserRuleCall_6());
+
+ pushFollow(FOLLOW_ruleClassExtentExpression_in_ruleSuffixExpression4856);
+ this_ClassExtentExpression_6=ruleClassExtentExpression();
+
+ state._fsp--;
+
+
+ current = this_ClassExtentExpression_6;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleSuffixExpression"
+
+
+ // $ANTLR start "entryRuleOperationCallExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2275:1: entryRuleOperationCallExpression returns [EObject current=null] : iv_ruleOperationCallExpression= ruleOperationCallExpression EOF ;
+ public final EObject entryRuleOperationCallExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleOperationCallExpression = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2276:2: (iv_ruleOperationCallExpression= ruleOperationCallExpression EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2277:2: iv_ruleOperationCallExpression= ruleOperationCallExpression EOF
+ {
+ newCompositeNode(grammarAccess.getOperationCallExpressionRule());
+ pushFollow(FOLLOW_ruleOperationCallExpression_in_entryRuleOperationCallExpression4891);
+ iv_ruleOperationCallExpression=ruleOperationCallExpression();
+
+ state._fsp--;
+
+ current =iv_ruleOperationCallExpression;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleOperationCallExpression4901);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOperationCallExpression"
+
+
+ // $ANTLR start "ruleOperationCallExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2284:1: ruleOperationCallExpression returns [EObject current=null] : (otherlv_0= '.' ( (lv_operationName_1_0= RULE_ID ) ) ( (lv_tuple_2_0= ruleTuple ) ) ( (lv_suffix_3_0= ruleSuffixExpression ) )? ) ;
+ public final EObject ruleOperationCallExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token lv_operationName_1_0=null;
+ EObject lv_tuple_2_0 = null;
+
+ EObject lv_suffix_3_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2287:28: ( (otherlv_0= '.' ( (lv_operationName_1_0= RULE_ID ) ) ( (lv_tuple_2_0= ruleTuple ) ) ( (lv_suffix_3_0= ruleSuffixExpression ) )? ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2288:1: (otherlv_0= '.' ( (lv_operationName_1_0= RULE_ID ) ) ( (lv_tuple_2_0= ruleTuple ) ) ( (lv_suffix_3_0= ruleSuffixExpression ) )? )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2288:1: (otherlv_0= '.' ( (lv_operationName_1_0= RULE_ID ) ) ( (lv_tuple_2_0= ruleTuple ) ) ( (lv_suffix_3_0= ruleSuffixExpression ) )? )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2288:3: otherlv_0= '.' ( (lv_operationName_1_0= RULE_ID ) ) ( (lv_tuple_2_0= ruleTuple ) ) ( (lv_suffix_3_0= ruleSuffixExpression ) )?
+ {
+ otherlv_0=(Token)match(input,49,FOLLOW_49_in_ruleOperationCallExpression4938);
+
+ newLeafNode(otherlv_0, grammarAccess.getOperationCallExpressionAccess().getFullStopKeyword_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2292:1: ( (lv_operationName_1_0= RULE_ID ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2293:1: (lv_operationName_1_0= RULE_ID )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2293:1: (lv_operationName_1_0= RULE_ID )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2294:3: lv_operationName_1_0= RULE_ID
+ {
+ lv_operationName_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleOperationCallExpression4955);
+
+ newLeafNode(lv_operationName_1_0, grammarAccess.getOperationCallExpressionAccess().getOperationNameIDTerminalRuleCall_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getOperationCallExpressionRule());
+ }
+ setWithLastConsumed(
+ current,
+ "operationName",
+ lv_operationName_1_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2310:2: ( (lv_tuple_2_0= ruleTuple ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2311:1: (lv_tuple_2_0= ruleTuple )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2311:1: (lv_tuple_2_0= ruleTuple )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2312:3: lv_tuple_2_0= ruleTuple
+ {
+
+ newCompositeNode(grammarAccess.getOperationCallExpressionAccess().getTupleTupleParserRuleCall_2_0());
+
+ pushFollow(FOLLOW_ruleTuple_in_ruleOperationCallExpression4981);
+ lv_tuple_2_0=ruleTuple();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getOperationCallExpressionRule());
+ }
+ set(
+ current,
+ "tuple",
+ lv_tuple_2_0,
+ "Tuple");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2328:2: ( (lv_suffix_3_0= ruleSuffixExpression ) )?
+ int alt41=2;
+ int LA41_0 = input.LA(1);
+
+ if ( (LA41_0==49||LA41_0==52) ) {
+ alt41=1;
+ }
+ switch (alt41) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2329:1: (lv_suffix_3_0= ruleSuffixExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2329:1: (lv_suffix_3_0= ruleSuffixExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2330:3: lv_suffix_3_0= ruleSuffixExpression
+ {
+
+ newCompositeNode(grammarAccess.getOperationCallExpressionAccess().getSuffixSuffixExpressionParserRuleCall_3_0());
+
+ pushFollow(FOLLOW_ruleSuffixExpression_in_ruleOperationCallExpression5002);
+ lv_suffix_3_0=ruleSuffixExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getOperationCallExpressionRule());
+ }
+ set(
+ current,
+ "suffix",
+ lv_suffix_3_0,
+ "SuffixExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOperationCallExpression"
+
+
+ // $ANTLR start "entryRulePropertyCallExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2354:1: entryRulePropertyCallExpression returns [EObject current=null] : iv_rulePropertyCallExpression= rulePropertyCallExpression EOF ;
+ public final EObject entryRulePropertyCallExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_rulePropertyCallExpression = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2355:2: (iv_rulePropertyCallExpression= rulePropertyCallExpression EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2356:2: iv_rulePropertyCallExpression= rulePropertyCallExpression EOF
+ {
+ newCompositeNode(grammarAccess.getPropertyCallExpressionRule());
+ pushFollow(FOLLOW_rulePropertyCallExpression_in_entryRulePropertyCallExpression5039);
+ iv_rulePropertyCallExpression=rulePropertyCallExpression();
+
+ state._fsp--;
+
+ current =iv_rulePropertyCallExpression;
+ match(input,EOF,FOLLOW_EOF_in_entryRulePropertyCallExpression5049);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRulePropertyCallExpression"
+
+
+ // $ANTLR start "rulePropertyCallExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2363:1: rulePropertyCallExpression returns [EObject current=null] : (otherlv_0= '.' ( (lv_propertyName_1_0= RULE_ID ) ) (otherlv_2= '[' ( (lv_index_3_0= ruleExpression ) ) otherlv_4= ']' )? ( (lv_suffix_5_0= ruleSuffixExpression ) )? ) ;
+ public final EObject rulePropertyCallExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token lv_propertyName_1_0=null;
+ Token otherlv_2=null;
+ Token otherlv_4=null;
+ EObject lv_index_3_0 = null;
+
+ EObject lv_suffix_5_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2366:28: ( (otherlv_0= '.' ( (lv_propertyName_1_0= RULE_ID ) ) (otherlv_2= '[' ( (lv_index_3_0= ruleExpression ) ) otherlv_4= ']' )? ( (lv_suffix_5_0= ruleSuffixExpression ) )? ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2367:1: (otherlv_0= '.' ( (lv_propertyName_1_0= RULE_ID ) ) (otherlv_2= '[' ( (lv_index_3_0= ruleExpression ) ) otherlv_4= ']' )? ( (lv_suffix_5_0= ruleSuffixExpression ) )? )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2367:1: (otherlv_0= '.' ( (lv_propertyName_1_0= RULE_ID ) ) (otherlv_2= '[' ( (lv_index_3_0= ruleExpression ) ) otherlv_4= ']' )? ( (lv_suffix_5_0= ruleSuffixExpression ) )? )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2367:3: otherlv_0= '.' ( (lv_propertyName_1_0= RULE_ID ) ) (otherlv_2= '[' ( (lv_index_3_0= ruleExpression ) ) otherlv_4= ']' )? ( (lv_suffix_5_0= ruleSuffixExpression ) )?
+ {
+ otherlv_0=(Token)match(input,49,FOLLOW_49_in_rulePropertyCallExpression5086);
+
+ newLeafNode(otherlv_0, grammarAccess.getPropertyCallExpressionAccess().getFullStopKeyword_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2371:1: ( (lv_propertyName_1_0= RULE_ID ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2372:1: (lv_propertyName_1_0= RULE_ID )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2372:1: (lv_propertyName_1_0= RULE_ID )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2373:3: lv_propertyName_1_0= RULE_ID
+ {
+ lv_propertyName_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_rulePropertyCallExpression5103);
+
+ newLeafNode(lv_propertyName_1_0, grammarAccess.getPropertyCallExpressionAccess().getPropertyNameIDTerminalRuleCall_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getPropertyCallExpressionRule());
+ }
+ setWithLastConsumed(
+ current,
+ "propertyName",
+ lv_propertyName_1_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2389:2: (otherlv_2= '[' ( (lv_index_3_0= ruleExpression ) ) otherlv_4= ']' )?
+ int alt42=2;
+ int LA42_0 = input.LA(1);
+
+ if ( (LA42_0==50) ) {
+ int LA42_1 = input.LA(2);
+
+ if ( ((LA42_1>=RULE_INTEGERVALUE && LA42_1<=RULE_ID)||(LA42_1>=16 && LA42_1<=18)||LA42_1==24||(LA42_1>=42 && LA42_1<=43)||(LA42_1>=46 && LA42_1<=48)||(LA42_1>=56 && LA42_1<=59)||(LA42_1>=87 && LA42_1<=88)) ) {
+ alt42=1;
+ }
+ }
+ switch (alt42) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2389:4: otherlv_2= '[' ( (lv_index_3_0= ruleExpression ) ) otherlv_4= ']'
+ {
+ otherlv_2=(Token)match(input,50,FOLLOW_50_in_rulePropertyCallExpression5121);
+
+ newLeafNode(otherlv_2, grammarAccess.getPropertyCallExpressionAccess().getLeftSquareBracketKeyword_2_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2393:1: ( (lv_index_3_0= ruleExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2394:1: (lv_index_3_0= ruleExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2394:1: (lv_index_3_0= ruleExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2395:3: lv_index_3_0= ruleExpression
+ {
+
+ newCompositeNode(grammarAccess.getPropertyCallExpressionAccess().getIndexExpressionParserRuleCall_2_1_0());
+
+ pushFollow(FOLLOW_ruleExpression_in_rulePropertyCallExpression5142);
+ lv_index_3_0=ruleExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getPropertyCallExpressionRule());
+ }
+ set(
+ current,
+ "index",
+ lv_index_3_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_4=(Token)match(input,51,FOLLOW_51_in_rulePropertyCallExpression5154);
+
+ newLeafNode(otherlv_4, grammarAccess.getPropertyCallExpressionAccess().getRightSquareBracketKeyword_2_2());
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2415:3: ( (lv_suffix_5_0= ruleSuffixExpression ) )?
+ int alt43=2;
+ int LA43_0 = input.LA(1);
+
+ if ( (LA43_0==49||LA43_0==52) ) {
+ alt43=1;
+ }
+ switch (alt43) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2416:1: (lv_suffix_5_0= ruleSuffixExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2416:1: (lv_suffix_5_0= ruleSuffixExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2417:3: lv_suffix_5_0= ruleSuffixExpression
+ {
+
+ newCompositeNode(grammarAccess.getPropertyCallExpressionAccess().getSuffixSuffixExpressionParserRuleCall_3_0());
+
+ pushFollow(FOLLOW_ruleSuffixExpression_in_rulePropertyCallExpression5177);
+ lv_suffix_5_0=ruleSuffixExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getPropertyCallExpressionRule());
+ }
+ set(
+ current,
+ "suffix",
+ lv_suffix_5_0,
+ "SuffixExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "rulePropertyCallExpression"
+
+
+ // $ANTLR start "entryRuleLinkOperationExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2441:1: entryRuleLinkOperationExpression returns [EObject current=null] : iv_ruleLinkOperationExpression= ruleLinkOperationExpression EOF ;
+ public final EObject entryRuleLinkOperationExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleLinkOperationExpression = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2442:2: (iv_ruleLinkOperationExpression= ruleLinkOperationExpression EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2443:2: iv_ruleLinkOperationExpression= ruleLinkOperationExpression EOF
+ {
+ newCompositeNode(grammarAccess.getLinkOperationExpressionRule());
+ pushFollow(FOLLOW_ruleLinkOperationExpression_in_entryRuleLinkOperationExpression5214);
+ iv_ruleLinkOperationExpression=ruleLinkOperationExpression();
+
+ state._fsp--;
+
+ current =iv_ruleLinkOperationExpression;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleLinkOperationExpression5224);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleLinkOperationExpression"
+
+
+ // $ANTLR start "ruleLinkOperationExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2450:1: ruleLinkOperationExpression returns [EObject current=null] : (otherlv_0= '.' ( (lv_kind_1_0= ruleLinkOperationKind ) ) ( (lv_tuple_2_0= ruleLinkOperationTuple ) ) ) ;
+ public final EObject ruleLinkOperationExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Enumerator lv_kind_1_0 = null;
+
+ EObject lv_tuple_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2453:28: ( (otherlv_0= '.' ( (lv_kind_1_0= ruleLinkOperationKind ) ) ( (lv_tuple_2_0= ruleLinkOperationTuple ) ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2454:1: (otherlv_0= '.' ( (lv_kind_1_0= ruleLinkOperationKind ) ) ( (lv_tuple_2_0= ruleLinkOperationTuple ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2454:1: (otherlv_0= '.' ( (lv_kind_1_0= ruleLinkOperationKind ) ) ( (lv_tuple_2_0= ruleLinkOperationTuple ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2454:3: otherlv_0= '.' ( (lv_kind_1_0= ruleLinkOperationKind ) ) ( (lv_tuple_2_0= ruleLinkOperationTuple ) )
+ {
+ otherlv_0=(Token)match(input,49,FOLLOW_49_in_ruleLinkOperationExpression5261);
+
+ newLeafNode(otherlv_0, grammarAccess.getLinkOperationExpressionAccess().getFullStopKeyword_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2458:1: ( (lv_kind_1_0= ruleLinkOperationKind ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2459:1: (lv_kind_1_0= ruleLinkOperationKind )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2459:1: (lv_kind_1_0= ruleLinkOperationKind )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2460:3: lv_kind_1_0= ruleLinkOperationKind
+ {
+
+ newCompositeNode(grammarAccess.getLinkOperationExpressionAccess().getKindLinkOperationKindEnumRuleCall_1_0());
+
+ pushFollow(FOLLOW_ruleLinkOperationKind_in_ruleLinkOperationExpression5282);
+ lv_kind_1_0=ruleLinkOperationKind();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getLinkOperationExpressionRule());
+ }
+ set(
+ current,
+ "kind",
+ lv_kind_1_0,
+ "LinkOperationKind");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2476:2: ( (lv_tuple_2_0= ruleLinkOperationTuple ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2477:1: (lv_tuple_2_0= ruleLinkOperationTuple )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2477:1: (lv_tuple_2_0= ruleLinkOperationTuple )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2478:3: lv_tuple_2_0= ruleLinkOperationTuple
+ {
+
+ newCompositeNode(grammarAccess.getLinkOperationExpressionAccess().getTupleLinkOperationTupleParserRuleCall_2_0());
+
+ pushFollow(FOLLOW_ruleLinkOperationTuple_in_ruleLinkOperationExpression5303);
+ lv_tuple_2_0=ruleLinkOperationTuple();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getLinkOperationExpressionRule());
+ }
+ set(
+ current,
+ "tuple",
+ lv_tuple_2_0,
+ "LinkOperationTuple");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleLinkOperationExpression"
+
+
+ // $ANTLR start "entryRuleLinkOperationTuple"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2502:1: entryRuleLinkOperationTuple returns [EObject current=null] : iv_ruleLinkOperationTuple= ruleLinkOperationTuple EOF ;
+ public final EObject entryRuleLinkOperationTuple() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleLinkOperationTuple = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2503:2: (iv_ruleLinkOperationTuple= ruleLinkOperationTuple EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2504:2: iv_ruleLinkOperationTuple= ruleLinkOperationTuple EOF
+ {
+ newCompositeNode(grammarAccess.getLinkOperationTupleRule());
+ pushFollow(FOLLOW_ruleLinkOperationTuple_in_entryRuleLinkOperationTuple5339);
+ iv_ruleLinkOperationTuple=ruleLinkOperationTuple();
+
+ state._fsp--;
+
+ current =iv_ruleLinkOperationTuple;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleLinkOperationTuple5349);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleLinkOperationTuple"
+
+
+ // $ANTLR start "ruleLinkOperationTuple"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2511:1: ruleLinkOperationTuple returns [EObject current=null] : (otherlv_0= '(' ( (lv_linkOperationTupleElement_1_0= ruleLinkOperationTupleElement ) ) (otherlv_2= ',' ( (lv_linkOperationTupleElement_3_0= ruleLinkOperationTupleElement ) ) )* otherlv_4= ')' ) ;
+ public final EObject ruleLinkOperationTuple() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_2=null;
+ Token otherlv_4=null;
+ EObject lv_linkOperationTupleElement_1_0 = null;
+
+ EObject lv_linkOperationTupleElement_3_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2514:28: ( (otherlv_0= '(' ( (lv_linkOperationTupleElement_1_0= ruleLinkOperationTupleElement ) ) (otherlv_2= ',' ( (lv_linkOperationTupleElement_3_0= ruleLinkOperationTupleElement ) ) )* otherlv_4= ')' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2515:1: (otherlv_0= '(' ( (lv_linkOperationTupleElement_1_0= ruleLinkOperationTupleElement ) ) (otherlv_2= ',' ( (lv_linkOperationTupleElement_3_0= ruleLinkOperationTupleElement ) ) )* otherlv_4= ')' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2515:1: (otherlv_0= '(' ( (lv_linkOperationTupleElement_1_0= ruleLinkOperationTupleElement ) ) (otherlv_2= ',' ( (lv_linkOperationTupleElement_3_0= ruleLinkOperationTupleElement ) ) )* otherlv_4= ')' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2515:3: otherlv_0= '(' ( (lv_linkOperationTupleElement_1_0= ruleLinkOperationTupleElement ) ) (otherlv_2= ',' ( (lv_linkOperationTupleElement_3_0= ruleLinkOperationTupleElement ) ) )* otherlv_4= ')'
+ {
+ otherlv_0=(Token)match(input,24,FOLLOW_24_in_ruleLinkOperationTuple5386);
+
+ newLeafNode(otherlv_0, grammarAccess.getLinkOperationTupleAccess().getLeftParenthesisKeyword_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2519:1: ( (lv_linkOperationTupleElement_1_0= ruleLinkOperationTupleElement ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2520:1: (lv_linkOperationTupleElement_1_0= ruleLinkOperationTupleElement )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2520:1: (lv_linkOperationTupleElement_1_0= ruleLinkOperationTupleElement )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2521:3: lv_linkOperationTupleElement_1_0= ruleLinkOperationTupleElement
+ {
+
+ newCompositeNode(grammarAccess.getLinkOperationTupleAccess().getLinkOperationTupleElementLinkOperationTupleElementParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_ruleLinkOperationTupleElement_in_ruleLinkOperationTuple5407);
+ lv_linkOperationTupleElement_1_0=ruleLinkOperationTupleElement();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getLinkOperationTupleRule());
+ }
+ add(
+ current,
+ "linkOperationTupleElement",
+ lv_linkOperationTupleElement_1_0,
+ "LinkOperationTupleElement");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2537:2: (otherlv_2= ',' ( (lv_linkOperationTupleElement_3_0= ruleLinkOperationTupleElement ) ) )*
+ loop44:
+ do {
+ int alt44=2;
+ int LA44_0 = input.LA(1);
+
+ if ( (LA44_0==21) ) {
+ alt44=1;
+ }
+
+
+ switch (alt44) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2537:4: otherlv_2= ',' ( (lv_linkOperationTupleElement_3_0= ruleLinkOperationTupleElement ) )
+ {
+ otherlv_2=(Token)match(input,21,FOLLOW_21_in_ruleLinkOperationTuple5420);
+
+ newLeafNode(otherlv_2, grammarAccess.getLinkOperationTupleAccess().getCommaKeyword_2_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2541:1: ( (lv_linkOperationTupleElement_3_0= ruleLinkOperationTupleElement ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2542:1: (lv_linkOperationTupleElement_3_0= ruleLinkOperationTupleElement )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2542:1: (lv_linkOperationTupleElement_3_0= ruleLinkOperationTupleElement )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2543:3: lv_linkOperationTupleElement_3_0= ruleLinkOperationTupleElement
+ {
+
+ newCompositeNode(grammarAccess.getLinkOperationTupleAccess().getLinkOperationTupleElementLinkOperationTupleElementParserRuleCall_2_1_0());
+
+ pushFollow(FOLLOW_ruleLinkOperationTupleElement_in_ruleLinkOperationTuple5441);
+ lv_linkOperationTupleElement_3_0=ruleLinkOperationTupleElement();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getLinkOperationTupleRule());
+ }
+ add(
+ current,
+ "linkOperationTupleElement",
+ lv_linkOperationTupleElement_3_0,
+ "LinkOperationTupleElement");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop44;
+ }
+ } while (true);
+
+ otherlv_4=(Token)match(input,25,FOLLOW_25_in_ruleLinkOperationTuple5455);
+
+ newLeafNode(otherlv_4, grammarAccess.getLinkOperationTupleAccess().getRightParenthesisKeyword_3());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleLinkOperationTuple"
+
+
+ // $ANTLR start "entryRuleLinkOperationTupleElement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2571:1: entryRuleLinkOperationTupleElement returns [EObject current=null] : iv_ruleLinkOperationTupleElement= ruleLinkOperationTupleElement EOF ;
+ public final EObject entryRuleLinkOperationTupleElement() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleLinkOperationTupleElement = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2572:2: (iv_ruleLinkOperationTupleElement= ruleLinkOperationTupleElement EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2573:2: iv_ruleLinkOperationTupleElement= ruleLinkOperationTupleElement EOF
+ {
+ newCompositeNode(grammarAccess.getLinkOperationTupleElementRule());
+ pushFollow(FOLLOW_ruleLinkOperationTupleElement_in_entryRuleLinkOperationTupleElement5491);
+ iv_ruleLinkOperationTupleElement=ruleLinkOperationTupleElement();
+
+ state._fsp--;
+
+ current =iv_ruleLinkOperationTupleElement;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleLinkOperationTupleElement5501);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleLinkOperationTupleElement"
+
+
+ // $ANTLR start "ruleLinkOperationTupleElement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2580:1: ruleLinkOperationTupleElement returns [EObject current=null] : ( ( (lv_role_0_0= RULE_ID ) ) (otherlv_1= '[' ( (lv_roleIndex_2_0= ruleExpression ) ) otherlv_3= ']' )? otherlv_4= '=>' ( (lv_object_5_0= ruleExpression ) ) ) ;
+ public final EObject ruleLinkOperationTupleElement() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_role_0_0=null;
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_4=null;
+ EObject lv_roleIndex_2_0 = null;
+
+ EObject lv_object_5_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2583:28: ( ( ( (lv_role_0_0= RULE_ID ) ) (otherlv_1= '[' ( (lv_roleIndex_2_0= ruleExpression ) ) otherlv_3= ']' )? otherlv_4= '=>' ( (lv_object_5_0= ruleExpression ) ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2584:1: ( ( (lv_role_0_0= RULE_ID ) ) (otherlv_1= '[' ( (lv_roleIndex_2_0= ruleExpression ) ) otherlv_3= ']' )? otherlv_4= '=>' ( (lv_object_5_0= ruleExpression ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2584:1: ( ( (lv_role_0_0= RULE_ID ) ) (otherlv_1= '[' ( (lv_roleIndex_2_0= ruleExpression ) ) otherlv_3= ']' )? otherlv_4= '=>' ( (lv_object_5_0= ruleExpression ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2584:2: ( (lv_role_0_0= RULE_ID ) ) (otherlv_1= '[' ( (lv_roleIndex_2_0= ruleExpression ) ) otherlv_3= ']' )? otherlv_4= '=>' ( (lv_object_5_0= ruleExpression ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2584:2: ( (lv_role_0_0= RULE_ID ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2585:1: (lv_role_0_0= RULE_ID )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2585:1: (lv_role_0_0= RULE_ID )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2586:3: lv_role_0_0= RULE_ID
+ {
+ lv_role_0_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleLinkOperationTupleElement5543);
+
+ newLeafNode(lv_role_0_0, grammarAccess.getLinkOperationTupleElementAccess().getRoleIDTerminalRuleCall_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getLinkOperationTupleElementRule());
+ }
+ setWithLastConsumed(
+ current,
+ "role",
+ lv_role_0_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2602:2: (otherlv_1= '[' ( (lv_roleIndex_2_0= ruleExpression ) ) otherlv_3= ']' )?
+ int alt45=2;
+ int LA45_0 = input.LA(1);
+
+ if ( (LA45_0==50) ) {
+ alt45=1;
+ }
+ switch (alt45) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2602:4: otherlv_1= '[' ( (lv_roleIndex_2_0= ruleExpression ) ) otherlv_3= ']'
+ {
+ otherlv_1=(Token)match(input,50,FOLLOW_50_in_ruleLinkOperationTupleElement5561);
+
+ newLeafNode(otherlv_1, grammarAccess.getLinkOperationTupleElementAccess().getLeftSquareBracketKeyword_1_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2606:1: ( (lv_roleIndex_2_0= ruleExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2607:1: (lv_roleIndex_2_0= ruleExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2607:1: (lv_roleIndex_2_0= ruleExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2608:3: lv_roleIndex_2_0= ruleExpression
+ {
+
+ newCompositeNode(grammarAccess.getLinkOperationTupleElementAccess().getRoleIndexExpressionParserRuleCall_1_1_0());
+
+ pushFollow(FOLLOW_ruleExpression_in_ruleLinkOperationTupleElement5582);
+ lv_roleIndex_2_0=ruleExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getLinkOperationTupleElementRule());
+ }
+ set(
+ current,
+ "roleIndex",
+ lv_roleIndex_2_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,51,FOLLOW_51_in_ruleLinkOperationTupleElement5594);
+
+ newLeafNode(otherlv_3, grammarAccess.getLinkOperationTupleElementAccess().getRightSquareBracketKeyword_1_2());
+
+
+ }
+ break;
+
+ }
+
+ otherlv_4=(Token)match(input,23,FOLLOW_23_in_ruleLinkOperationTupleElement5608);
+
+ newLeafNode(otherlv_4, grammarAccess.getLinkOperationTupleElementAccess().getEqualsSignGreaterThanSignKeyword_2());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2632:1: ( (lv_object_5_0= ruleExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2633:1: (lv_object_5_0= ruleExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2633:1: (lv_object_5_0= ruleExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2634:3: lv_object_5_0= ruleExpression
+ {
+
+ newCompositeNode(grammarAccess.getLinkOperationTupleElementAccess().getObjectExpressionParserRuleCall_3_0());
+
+ pushFollow(FOLLOW_ruleExpression_in_ruleLinkOperationTupleElement5629);
+ lv_object_5_0=ruleExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getLinkOperationTupleElementRule());
+ }
+ set(
+ current,
+ "object",
+ lv_object_5_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleLinkOperationTupleElement"
+
+
+ // $ANTLR start "entryRuleSequenceOperationExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2658:1: entryRuleSequenceOperationExpression returns [EObject current=null] : iv_ruleSequenceOperationExpression= ruleSequenceOperationExpression EOF ;
+ public final EObject entryRuleSequenceOperationExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleSequenceOperationExpression = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2659:2: (iv_ruleSequenceOperationExpression= ruleSequenceOperationExpression EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2660:2: iv_ruleSequenceOperationExpression= ruleSequenceOperationExpression EOF
+ {
+ newCompositeNode(grammarAccess.getSequenceOperationExpressionRule());
+ pushFollow(FOLLOW_ruleSequenceOperationExpression_in_entryRuleSequenceOperationExpression5665);
+ iv_ruleSequenceOperationExpression=ruleSequenceOperationExpression();
+
+ state._fsp--;
+
+ current =iv_ruleSequenceOperationExpression;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleSequenceOperationExpression5675);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleSequenceOperationExpression"
+
+
+ // $ANTLR start "ruleSequenceOperationExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2667:1: ruleSequenceOperationExpression returns [EObject current=null] : (otherlv_0= '->' ( (lv_operationName_1_0= ruleQualifiedNameWithBinding ) ) ( (lv_tuple_2_0= ruleTuple ) ) ( (lv_suffix_3_0= ruleSuffixExpression ) )? ) ;
+ public final EObject ruleSequenceOperationExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ EObject lv_operationName_1_0 = null;
+
+ EObject lv_tuple_2_0 = null;
+
+ EObject lv_suffix_3_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2670:28: ( (otherlv_0= '->' ( (lv_operationName_1_0= ruleQualifiedNameWithBinding ) ) ( (lv_tuple_2_0= ruleTuple ) ) ( (lv_suffix_3_0= ruleSuffixExpression ) )? ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2671:1: (otherlv_0= '->' ( (lv_operationName_1_0= ruleQualifiedNameWithBinding ) ) ( (lv_tuple_2_0= ruleTuple ) ) ( (lv_suffix_3_0= ruleSuffixExpression ) )? )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2671:1: (otherlv_0= '->' ( (lv_operationName_1_0= ruleQualifiedNameWithBinding ) ) ( (lv_tuple_2_0= ruleTuple ) ) ( (lv_suffix_3_0= ruleSuffixExpression ) )? )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2671:3: otherlv_0= '->' ( (lv_operationName_1_0= ruleQualifiedNameWithBinding ) ) ( (lv_tuple_2_0= ruleTuple ) ) ( (lv_suffix_3_0= ruleSuffixExpression ) )?
+ {
+ otherlv_0=(Token)match(input,52,FOLLOW_52_in_ruleSequenceOperationExpression5712);
+
+ newLeafNode(otherlv_0, grammarAccess.getSequenceOperationExpressionAccess().getHyphenMinusGreaterThanSignKeyword_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2675:1: ( (lv_operationName_1_0= ruleQualifiedNameWithBinding ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2676:1: (lv_operationName_1_0= ruleQualifiedNameWithBinding )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2676:1: (lv_operationName_1_0= ruleQualifiedNameWithBinding )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2677:3: lv_operationName_1_0= ruleQualifiedNameWithBinding
+ {
+
+ newCompositeNode(grammarAccess.getSequenceOperationExpressionAccess().getOperationNameQualifiedNameWithBindingParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_ruleQualifiedNameWithBinding_in_ruleSequenceOperationExpression5733);
+ lv_operationName_1_0=ruleQualifiedNameWithBinding();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSequenceOperationExpressionRule());
+ }
+ set(
+ current,
+ "operationName",
+ lv_operationName_1_0,
+ "QualifiedNameWithBinding");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2693:2: ( (lv_tuple_2_0= ruleTuple ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2694:1: (lv_tuple_2_0= ruleTuple )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2694:1: (lv_tuple_2_0= ruleTuple )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2695:3: lv_tuple_2_0= ruleTuple
+ {
+
+ newCompositeNode(grammarAccess.getSequenceOperationExpressionAccess().getTupleTupleParserRuleCall_2_0());
+
+ pushFollow(FOLLOW_ruleTuple_in_ruleSequenceOperationExpression5754);
+ lv_tuple_2_0=ruleTuple();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSequenceOperationExpressionRule());
+ }
+ set(
+ current,
+ "tuple",
+ lv_tuple_2_0,
+ "Tuple");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2711:2: ( (lv_suffix_3_0= ruleSuffixExpression ) )?
+ int alt46=2;
+ int LA46_0 = input.LA(1);
+
+ if ( (LA46_0==49||LA46_0==52) ) {
+ alt46=1;
+ }
+ switch (alt46) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2712:1: (lv_suffix_3_0= ruleSuffixExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2712:1: (lv_suffix_3_0= ruleSuffixExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2713:3: lv_suffix_3_0= ruleSuffixExpression
+ {
+
+ newCompositeNode(grammarAccess.getSequenceOperationExpressionAccess().getSuffixSuffixExpressionParserRuleCall_3_0());
+
+ pushFollow(FOLLOW_ruleSuffixExpression_in_ruleSequenceOperationExpression5775);
+ lv_suffix_3_0=ruleSuffixExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSequenceOperationExpressionRule());
+ }
+ set(
+ current,
+ "suffix",
+ lv_suffix_3_0,
+ "SuffixExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleSequenceOperationExpression"
+
+
+ // $ANTLR start "entryRuleSequenceReductionExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2737:1: entryRuleSequenceReductionExpression returns [EObject current=null] : iv_ruleSequenceReductionExpression= ruleSequenceReductionExpression EOF ;
+ public final EObject entryRuleSequenceReductionExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleSequenceReductionExpression = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2738:2: (iv_ruleSequenceReductionExpression= ruleSequenceReductionExpression EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2739:2: iv_ruleSequenceReductionExpression= ruleSequenceReductionExpression EOF
+ {
+ newCompositeNode(grammarAccess.getSequenceReductionExpressionRule());
+ pushFollow(FOLLOW_ruleSequenceReductionExpression_in_entryRuleSequenceReductionExpression5812);
+ iv_ruleSequenceReductionExpression=ruleSequenceReductionExpression();
+
+ state._fsp--;
+
+ current =iv_ruleSequenceReductionExpression;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleSequenceReductionExpression5822);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleSequenceReductionExpression"
+
+
+ // $ANTLR start "ruleSequenceReductionExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2746:1: ruleSequenceReductionExpression returns [EObject current=null] : (otherlv_0= '->' otherlv_1= 'reduce' ( (lv_isOrdered_2_0= 'ordered' ) )? ( (lv_behavior_3_0= ruleQualifiedNameWithBinding ) ) ( (lv_suffix_4_0= ruleSuffixExpression ) )? ) ;
+ public final EObject ruleSequenceReductionExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_1=null;
+ Token lv_isOrdered_2_0=null;
+ EObject lv_behavior_3_0 = null;
+
+ EObject lv_suffix_4_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2749:28: ( (otherlv_0= '->' otherlv_1= 'reduce' ( (lv_isOrdered_2_0= 'ordered' ) )? ( (lv_behavior_3_0= ruleQualifiedNameWithBinding ) ) ( (lv_suffix_4_0= ruleSuffixExpression ) )? ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2750:1: (otherlv_0= '->' otherlv_1= 'reduce' ( (lv_isOrdered_2_0= 'ordered' ) )? ( (lv_behavior_3_0= ruleQualifiedNameWithBinding ) ) ( (lv_suffix_4_0= ruleSuffixExpression ) )? )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2750:1: (otherlv_0= '->' otherlv_1= 'reduce' ( (lv_isOrdered_2_0= 'ordered' ) )? ( (lv_behavior_3_0= ruleQualifiedNameWithBinding ) ) ( (lv_suffix_4_0= ruleSuffixExpression ) )? )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2750:3: otherlv_0= '->' otherlv_1= 'reduce' ( (lv_isOrdered_2_0= 'ordered' ) )? ( (lv_behavior_3_0= ruleQualifiedNameWithBinding ) ) ( (lv_suffix_4_0= ruleSuffixExpression ) )?
+ {
+ otherlv_0=(Token)match(input,52,FOLLOW_52_in_ruleSequenceReductionExpression5859);
+
+ newLeafNode(otherlv_0, grammarAccess.getSequenceReductionExpressionAccess().getHyphenMinusGreaterThanSignKeyword_0());
+
+ otherlv_1=(Token)match(input,53,FOLLOW_53_in_ruleSequenceReductionExpression5871);
+
+ newLeafNode(otherlv_1, grammarAccess.getSequenceReductionExpressionAccess().getReduceKeyword_1());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2758:1: ( (lv_isOrdered_2_0= 'ordered' ) )?
+ int alt47=2;
+ int LA47_0 = input.LA(1);
+
+ if ( (LA47_0==54) ) {
+ alt47=1;
+ }
+ switch (alt47) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2759:1: (lv_isOrdered_2_0= 'ordered' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2759:1: (lv_isOrdered_2_0= 'ordered' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2760:3: lv_isOrdered_2_0= 'ordered'
+ {
+ lv_isOrdered_2_0=(Token)match(input,54,FOLLOW_54_in_ruleSequenceReductionExpression5889);
+
+ newLeafNode(lv_isOrdered_2_0, grammarAccess.getSequenceReductionExpressionAccess().getIsOrderedOrderedKeyword_2_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getSequenceReductionExpressionRule());
+ }
+ setWithLastConsumed(current, "isOrdered", true, "ordered");
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2773:3: ( (lv_behavior_3_0= ruleQualifiedNameWithBinding ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2774:1: (lv_behavior_3_0= ruleQualifiedNameWithBinding )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2774:1: (lv_behavior_3_0= ruleQualifiedNameWithBinding )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2775:3: lv_behavior_3_0= ruleQualifiedNameWithBinding
+ {
+
+ newCompositeNode(grammarAccess.getSequenceReductionExpressionAccess().getBehaviorQualifiedNameWithBindingParserRuleCall_3_0());
+
+ pushFollow(FOLLOW_ruleQualifiedNameWithBinding_in_ruleSequenceReductionExpression5924);
+ lv_behavior_3_0=ruleQualifiedNameWithBinding();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSequenceReductionExpressionRule());
+ }
+ set(
+ current,
+ "behavior",
+ lv_behavior_3_0,
+ "QualifiedNameWithBinding");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2791:2: ( (lv_suffix_4_0= ruleSuffixExpression ) )?
+ int alt48=2;
+ int LA48_0 = input.LA(1);
+
+ if ( (LA48_0==49||LA48_0==52) ) {
+ alt48=1;
+ }
+ switch (alt48) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2792:1: (lv_suffix_4_0= ruleSuffixExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2792:1: (lv_suffix_4_0= ruleSuffixExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2793:3: lv_suffix_4_0= ruleSuffixExpression
+ {
+
+ newCompositeNode(grammarAccess.getSequenceReductionExpressionAccess().getSuffixSuffixExpressionParserRuleCall_4_0());
+
+ pushFollow(FOLLOW_ruleSuffixExpression_in_ruleSequenceReductionExpression5945);
+ lv_suffix_4_0=ruleSuffixExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSequenceReductionExpressionRule());
+ }
+ set(
+ current,
+ "suffix",
+ lv_suffix_4_0,
+ "SuffixExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleSequenceReductionExpression"
+
+
+ // $ANTLR start "entryRuleSequenceExpansionExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2817:1: entryRuleSequenceExpansionExpression returns [EObject current=null] : iv_ruleSequenceExpansionExpression= ruleSequenceExpansionExpression EOF ;
+ public final EObject entryRuleSequenceExpansionExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleSequenceExpansionExpression = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2818:2: (iv_ruleSequenceExpansionExpression= ruleSequenceExpansionExpression EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2819:2: iv_ruleSequenceExpansionExpression= ruleSequenceExpansionExpression EOF
+ {
+ newCompositeNode(grammarAccess.getSequenceExpansionExpressionRule());
+ pushFollow(FOLLOW_ruleSequenceExpansionExpression_in_entryRuleSequenceExpansionExpression5982);
+ iv_ruleSequenceExpansionExpression=ruleSequenceExpansionExpression();
+
+ state._fsp--;
+
+ current =iv_ruleSequenceExpansionExpression;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleSequenceExpansionExpression5992);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleSequenceExpansionExpression"
+
+
+ // $ANTLR start "ruleSequenceExpansionExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2826:1: ruleSequenceExpansionExpression returns [EObject current=null] : (this_SelectOrRejectOperation_0= ruleSelectOrRejectOperation | this_CollectOrIterateOperation_1= ruleCollectOrIterateOperation | this_ForAllOrExistsOrOneOperation_2= ruleForAllOrExistsOrOneOperation | this_IsUniqueOperation_3= ruleIsUniqueOperation ) ;
+ public final EObject ruleSequenceExpansionExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_SelectOrRejectOperation_0 = null;
+
+ EObject this_CollectOrIterateOperation_1 = null;
+
+ EObject this_ForAllOrExistsOrOneOperation_2 = null;
+
+ EObject this_IsUniqueOperation_3 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2829:28: ( (this_SelectOrRejectOperation_0= ruleSelectOrRejectOperation | this_CollectOrIterateOperation_1= ruleCollectOrIterateOperation | this_ForAllOrExistsOrOneOperation_2= ruleForAllOrExistsOrOneOperation | this_IsUniqueOperation_3= ruleIsUniqueOperation ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2830:1: (this_SelectOrRejectOperation_0= ruleSelectOrRejectOperation | this_CollectOrIterateOperation_1= ruleCollectOrIterateOperation | this_ForAllOrExistsOrOneOperation_2= ruleForAllOrExistsOrOneOperation | this_IsUniqueOperation_3= ruleIsUniqueOperation )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2830:1: (this_SelectOrRejectOperation_0= ruleSelectOrRejectOperation | this_CollectOrIterateOperation_1= ruleCollectOrIterateOperation | this_ForAllOrExistsOrOneOperation_2= ruleForAllOrExistsOrOneOperation | this_IsUniqueOperation_3= ruleIsUniqueOperation )
+ int alt49=4;
+ int LA49_0 = input.LA(1);
+
+ if ( (LA49_0==52) ) {
+ switch ( input.LA(2) ) {
+ case 96:
+ case 97:
+ case 98:
+ {
+ alt49=3;
+ }
+ break;
+ case 92:
+ case 93:
+ {
+ alt49=1;
+ }
+ break;
+ case 94:
+ case 95:
+ {
+ alt49=2;
+ }
+ break;
+ case 55:
+ {
+ alt49=4;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 49, 1, input);
+
+ throw nvae;
+ }
+
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 49, 0, input);
+
+ throw nvae;
+ }
+ switch (alt49) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2831:5: this_SelectOrRejectOperation_0= ruleSelectOrRejectOperation
+ {
+
+ newCompositeNode(grammarAccess.getSequenceExpansionExpressionAccess().getSelectOrRejectOperationParserRuleCall_0());
+
+ pushFollow(FOLLOW_ruleSelectOrRejectOperation_in_ruleSequenceExpansionExpression6039);
+ this_SelectOrRejectOperation_0=ruleSelectOrRejectOperation();
+
+ state._fsp--;
+
+
+ current = this_SelectOrRejectOperation_0;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2841:5: this_CollectOrIterateOperation_1= ruleCollectOrIterateOperation
+ {
+
+ newCompositeNode(grammarAccess.getSequenceExpansionExpressionAccess().getCollectOrIterateOperationParserRuleCall_1());
+
+ pushFollow(FOLLOW_ruleCollectOrIterateOperation_in_ruleSequenceExpansionExpression6066);
+ this_CollectOrIterateOperation_1=ruleCollectOrIterateOperation();
+
+ state._fsp--;
+
+
+ current = this_CollectOrIterateOperation_1;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2851:5: this_ForAllOrExistsOrOneOperation_2= ruleForAllOrExistsOrOneOperation
+ {
+
+ newCompositeNode(grammarAccess.getSequenceExpansionExpressionAccess().getForAllOrExistsOrOneOperationParserRuleCall_2());
+
+ pushFollow(FOLLOW_ruleForAllOrExistsOrOneOperation_in_ruleSequenceExpansionExpression6093);
+ this_ForAllOrExistsOrOneOperation_2=ruleForAllOrExistsOrOneOperation();
+
+ state._fsp--;
+
+
+ current = this_ForAllOrExistsOrOneOperation_2;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2861:5: this_IsUniqueOperation_3= ruleIsUniqueOperation
+ {
+
+ newCompositeNode(grammarAccess.getSequenceExpansionExpressionAccess().getIsUniqueOperationParserRuleCall_3());
+
+ pushFollow(FOLLOW_ruleIsUniqueOperation_in_ruleSequenceExpansionExpression6120);
+ this_IsUniqueOperation_3=ruleIsUniqueOperation();
+
+ state._fsp--;
+
+
+ current = this_IsUniqueOperation_3;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleSequenceExpansionExpression"
+
+
+ // $ANTLR start "entryRuleSelectOrRejectOperation"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2877:1: entryRuleSelectOrRejectOperation returns [EObject current=null] : iv_ruleSelectOrRejectOperation= ruleSelectOrRejectOperation EOF ;
+ public final EObject entryRuleSelectOrRejectOperation() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleSelectOrRejectOperation = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2878:2: (iv_ruleSelectOrRejectOperation= ruleSelectOrRejectOperation EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2879:2: iv_ruleSelectOrRejectOperation= ruleSelectOrRejectOperation EOF
+ {
+ newCompositeNode(grammarAccess.getSelectOrRejectOperationRule());
+ pushFollow(FOLLOW_ruleSelectOrRejectOperation_in_entryRuleSelectOrRejectOperation6155);
+ iv_ruleSelectOrRejectOperation=ruleSelectOrRejectOperation();
+
+ state._fsp--;
+
+ current =iv_ruleSelectOrRejectOperation;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleSelectOrRejectOperation6165);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleSelectOrRejectOperation"
+
+
+ // $ANTLR start "ruleSelectOrRejectOperation"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2886:1: ruleSelectOrRejectOperation returns [EObject current=null] : (otherlv_0= '->' ( (lv_op_1_0= ruleSelectOrRejectOperator ) ) ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '(' ( (lv_expr_4_0= ruleExpression ) ) otherlv_5= ')' ( (lv_suffix_6_0= ruleSuffixExpression ) )? ) ;
+ public final EObject ruleSelectOrRejectOperation() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token lv_name_2_0=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ Enumerator lv_op_1_0 = null;
+
+ EObject lv_expr_4_0 = null;
+
+ EObject lv_suffix_6_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2889:28: ( (otherlv_0= '->' ( (lv_op_1_0= ruleSelectOrRejectOperator ) ) ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '(' ( (lv_expr_4_0= ruleExpression ) ) otherlv_5= ')' ( (lv_suffix_6_0= ruleSuffixExpression ) )? ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2890:1: (otherlv_0= '->' ( (lv_op_1_0= ruleSelectOrRejectOperator ) ) ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '(' ( (lv_expr_4_0= ruleExpression ) ) otherlv_5= ')' ( (lv_suffix_6_0= ruleSuffixExpression ) )? )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2890:1: (otherlv_0= '->' ( (lv_op_1_0= ruleSelectOrRejectOperator ) ) ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '(' ( (lv_expr_4_0= ruleExpression ) ) otherlv_5= ')' ( (lv_suffix_6_0= ruleSuffixExpression ) )? )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2890:3: otherlv_0= '->' ( (lv_op_1_0= ruleSelectOrRejectOperator ) ) ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '(' ( (lv_expr_4_0= ruleExpression ) ) otherlv_5= ')' ( (lv_suffix_6_0= ruleSuffixExpression ) )?
+ {
+ otherlv_0=(Token)match(input,52,FOLLOW_52_in_ruleSelectOrRejectOperation6202);
+
+ newLeafNode(otherlv_0, grammarAccess.getSelectOrRejectOperationAccess().getHyphenMinusGreaterThanSignKeyword_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2894:1: ( (lv_op_1_0= ruleSelectOrRejectOperator ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2895:1: (lv_op_1_0= ruleSelectOrRejectOperator )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2895:1: (lv_op_1_0= ruleSelectOrRejectOperator )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2896:3: lv_op_1_0= ruleSelectOrRejectOperator
+ {
+
+ newCompositeNode(grammarAccess.getSelectOrRejectOperationAccess().getOpSelectOrRejectOperatorEnumRuleCall_1_0());
+
+ pushFollow(FOLLOW_ruleSelectOrRejectOperator_in_ruleSelectOrRejectOperation6223);
+ lv_op_1_0=ruleSelectOrRejectOperator();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSelectOrRejectOperationRule());
+ }
+ set(
+ current,
+ "op",
+ lv_op_1_0,
+ "SelectOrRejectOperator");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2912:2: ( (lv_name_2_0= RULE_ID ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2913:1: (lv_name_2_0= RULE_ID )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2913:1: (lv_name_2_0= RULE_ID )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2914:3: lv_name_2_0= RULE_ID
+ {
+ lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSelectOrRejectOperation6240);
+
+ newLeafNode(lv_name_2_0, grammarAccess.getSelectOrRejectOperationAccess().getNameIDTerminalRuleCall_2_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getSelectOrRejectOperationRule());
+ }
+ setWithLastConsumed(
+ current,
+ "name",
+ lv_name_2_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,24,FOLLOW_24_in_ruleSelectOrRejectOperation6257);
+
+ newLeafNode(otherlv_3, grammarAccess.getSelectOrRejectOperationAccess().getLeftParenthesisKeyword_3());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2934:1: ( (lv_expr_4_0= ruleExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2935:1: (lv_expr_4_0= ruleExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2935:1: (lv_expr_4_0= ruleExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2936:3: lv_expr_4_0= ruleExpression
+ {
+
+ newCompositeNode(grammarAccess.getSelectOrRejectOperationAccess().getExprExpressionParserRuleCall_4_0());
+
+ pushFollow(FOLLOW_ruleExpression_in_ruleSelectOrRejectOperation6278);
+ lv_expr_4_0=ruleExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSelectOrRejectOperationRule());
+ }
+ set(
+ current,
+ "expr",
+ lv_expr_4_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_5=(Token)match(input,25,FOLLOW_25_in_ruleSelectOrRejectOperation6290);
+
+ newLeafNode(otherlv_5, grammarAccess.getSelectOrRejectOperationAccess().getRightParenthesisKeyword_5());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2956:1: ( (lv_suffix_6_0= ruleSuffixExpression ) )?
+ int alt50=2;
+ int LA50_0 = input.LA(1);
+
+ if ( (LA50_0==49||LA50_0==52) ) {
+ alt50=1;
+ }
+ switch (alt50) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2957:1: (lv_suffix_6_0= ruleSuffixExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2957:1: (lv_suffix_6_0= ruleSuffixExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2958:3: lv_suffix_6_0= ruleSuffixExpression
+ {
+
+ newCompositeNode(grammarAccess.getSelectOrRejectOperationAccess().getSuffixSuffixExpressionParserRuleCall_6_0());
+
+ pushFollow(FOLLOW_ruleSuffixExpression_in_ruleSelectOrRejectOperation6311);
+ lv_suffix_6_0=ruleSuffixExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSelectOrRejectOperationRule());
+ }
+ set(
+ current,
+ "suffix",
+ lv_suffix_6_0,
+ "SuffixExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleSelectOrRejectOperation"
+
+
+ // $ANTLR start "entryRuleCollectOrIterateOperation"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2982:1: entryRuleCollectOrIterateOperation returns [EObject current=null] : iv_ruleCollectOrIterateOperation= ruleCollectOrIterateOperation EOF ;
+ public final EObject entryRuleCollectOrIterateOperation() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleCollectOrIterateOperation = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2983:2: (iv_ruleCollectOrIterateOperation= ruleCollectOrIterateOperation EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2984:2: iv_ruleCollectOrIterateOperation= ruleCollectOrIterateOperation EOF
+ {
+ newCompositeNode(grammarAccess.getCollectOrIterateOperationRule());
+ pushFollow(FOLLOW_ruleCollectOrIterateOperation_in_entryRuleCollectOrIterateOperation6348);
+ iv_ruleCollectOrIterateOperation=ruleCollectOrIterateOperation();
+
+ state._fsp--;
+
+ current =iv_ruleCollectOrIterateOperation;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleCollectOrIterateOperation6358);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleCollectOrIterateOperation"
+
+
+ // $ANTLR start "ruleCollectOrIterateOperation"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2991:1: ruleCollectOrIterateOperation returns [EObject current=null] : (otherlv_0= '->' ( (lv_op_1_0= ruleCollectOrIterateOperator ) ) ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '(' ( (lv_expr_4_0= ruleExpression ) ) otherlv_5= ')' ( (lv_suffix_6_0= ruleSuffixExpression ) )? ) ;
+ public final EObject ruleCollectOrIterateOperation() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token lv_name_2_0=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ Enumerator lv_op_1_0 = null;
+
+ EObject lv_expr_4_0 = null;
+
+ EObject lv_suffix_6_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2994:28: ( (otherlv_0= '->' ( (lv_op_1_0= ruleCollectOrIterateOperator ) ) ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '(' ( (lv_expr_4_0= ruleExpression ) ) otherlv_5= ')' ( (lv_suffix_6_0= ruleSuffixExpression ) )? ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2995:1: (otherlv_0= '->' ( (lv_op_1_0= ruleCollectOrIterateOperator ) ) ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '(' ( (lv_expr_4_0= ruleExpression ) ) otherlv_5= ')' ( (lv_suffix_6_0= ruleSuffixExpression ) )? )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2995:1: (otherlv_0= '->' ( (lv_op_1_0= ruleCollectOrIterateOperator ) ) ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '(' ( (lv_expr_4_0= ruleExpression ) ) otherlv_5= ')' ( (lv_suffix_6_0= ruleSuffixExpression ) )? )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2995:3: otherlv_0= '->' ( (lv_op_1_0= ruleCollectOrIterateOperator ) ) ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '(' ( (lv_expr_4_0= ruleExpression ) ) otherlv_5= ')' ( (lv_suffix_6_0= ruleSuffixExpression ) )?
+ {
+ otherlv_0=(Token)match(input,52,FOLLOW_52_in_ruleCollectOrIterateOperation6395);
+
+ newLeafNode(otherlv_0, grammarAccess.getCollectOrIterateOperationAccess().getHyphenMinusGreaterThanSignKeyword_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:2999:1: ( (lv_op_1_0= ruleCollectOrIterateOperator ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3000:1: (lv_op_1_0= ruleCollectOrIterateOperator )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3000:1: (lv_op_1_0= ruleCollectOrIterateOperator )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3001:3: lv_op_1_0= ruleCollectOrIterateOperator
+ {
+
+ newCompositeNode(grammarAccess.getCollectOrIterateOperationAccess().getOpCollectOrIterateOperatorEnumRuleCall_1_0());
+
+ pushFollow(FOLLOW_ruleCollectOrIterateOperator_in_ruleCollectOrIterateOperation6416);
+ lv_op_1_0=ruleCollectOrIterateOperator();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getCollectOrIterateOperationRule());
+ }
+ set(
+ current,
+ "op",
+ lv_op_1_0,
+ "CollectOrIterateOperator");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3017:2: ( (lv_name_2_0= RULE_ID ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3018:1: (lv_name_2_0= RULE_ID )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3018:1: (lv_name_2_0= RULE_ID )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3019:3: lv_name_2_0= RULE_ID
+ {
+ lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleCollectOrIterateOperation6433);
+
+ newLeafNode(lv_name_2_0, grammarAccess.getCollectOrIterateOperationAccess().getNameIDTerminalRuleCall_2_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getCollectOrIterateOperationRule());
+ }
+ setWithLastConsumed(
+ current,
+ "name",
+ lv_name_2_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,24,FOLLOW_24_in_ruleCollectOrIterateOperation6450);
+
+ newLeafNode(otherlv_3, grammarAccess.getCollectOrIterateOperationAccess().getLeftParenthesisKeyword_3());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3039:1: ( (lv_expr_4_0= ruleExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3040:1: (lv_expr_4_0= ruleExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3040:1: (lv_expr_4_0= ruleExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3041:3: lv_expr_4_0= ruleExpression
+ {
+
+ newCompositeNode(grammarAccess.getCollectOrIterateOperationAccess().getExprExpressionParserRuleCall_4_0());
+
+ pushFollow(FOLLOW_ruleExpression_in_ruleCollectOrIterateOperation6471);
+ lv_expr_4_0=ruleExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getCollectOrIterateOperationRule());
+ }
+ set(
+ current,
+ "expr",
+ lv_expr_4_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_5=(Token)match(input,25,FOLLOW_25_in_ruleCollectOrIterateOperation6483);
+
+ newLeafNode(otherlv_5, grammarAccess.getCollectOrIterateOperationAccess().getRightParenthesisKeyword_5());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3061:1: ( (lv_suffix_6_0= ruleSuffixExpression ) )?
+ int alt51=2;
+ int LA51_0 = input.LA(1);
+
+ if ( (LA51_0==49||LA51_0==52) ) {
+ alt51=1;
+ }
+ switch (alt51) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3062:1: (lv_suffix_6_0= ruleSuffixExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3062:1: (lv_suffix_6_0= ruleSuffixExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3063:3: lv_suffix_6_0= ruleSuffixExpression
+ {
+
+ newCompositeNode(grammarAccess.getCollectOrIterateOperationAccess().getSuffixSuffixExpressionParserRuleCall_6_0());
+
+ pushFollow(FOLLOW_ruleSuffixExpression_in_ruleCollectOrIterateOperation6504);
+ lv_suffix_6_0=ruleSuffixExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getCollectOrIterateOperationRule());
+ }
+ set(
+ current,
+ "suffix",
+ lv_suffix_6_0,
+ "SuffixExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleCollectOrIterateOperation"
+
+
+ // $ANTLR start "entryRuleForAllOrExistsOrOneOperation"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3087:1: entryRuleForAllOrExistsOrOneOperation returns [EObject current=null] : iv_ruleForAllOrExistsOrOneOperation= ruleForAllOrExistsOrOneOperation EOF ;
+ public final EObject entryRuleForAllOrExistsOrOneOperation() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleForAllOrExistsOrOneOperation = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3088:2: (iv_ruleForAllOrExistsOrOneOperation= ruleForAllOrExistsOrOneOperation EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3089:2: iv_ruleForAllOrExistsOrOneOperation= ruleForAllOrExistsOrOneOperation EOF
+ {
+ newCompositeNode(grammarAccess.getForAllOrExistsOrOneOperationRule());
+ pushFollow(FOLLOW_ruleForAllOrExistsOrOneOperation_in_entryRuleForAllOrExistsOrOneOperation6541);
+ iv_ruleForAllOrExistsOrOneOperation=ruleForAllOrExistsOrOneOperation();
+
+ state._fsp--;
+
+ current =iv_ruleForAllOrExistsOrOneOperation;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleForAllOrExistsOrOneOperation6551);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleForAllOrExistsOrOneOperation"
+
+
+ // $ANTLR start "ruleForAllOrExistsOrOneOperation"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3096:1: ruleForAllOrExistsOrOneOperation returns [EObject current=null] : (otherlv_0= '->' ( (lv_op_1_0= ruleForAllOrExistsOrOneOperator ) ) ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '(' ( (lv_expr_4_0= ruleExpression ) ) otherlv_5= ')' ( (lv_suffix_6_0= ruleSuffixExpression ) )? ) ;
+ public final EObject ruleForAllOrExistsOrOneOperation() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token lv_name_2_0=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ Enumerator lv_op_1_0 = null;
+
+ EObject lv_expr_4_0 = null;
+
+ EObject lv_suffix_6_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3099:28: ( (otherlv_0= '->' ( (lv_op_1_0= ruleForAllOrExistsOrOneOperator ) ) ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '(' ( (lv_expr_4_0= ruleExpression ) ) otherlv_5= ')' ( (lv_suffix_6_0= ruleSuffixExpression ) )? ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3100:1: (otherlv_0= '->' ( (lv_op_1_0= ruleForAllOrExistsOrOneOperator ) ) ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '(' ( (lv_expr_4_0= ruleExpression ) ) otherlv_5= ')' ( (lv_suffix_6_0= ruleSuffixExpression ) )? )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3100:1: (otherlv_0= '->' ( (lv_op_1_0= ruleForAllOrExistsOrOneOperator ) ) ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '(' ( (lv_expr_4_0= ruleExpression ) ) otherlv_5= ')' ( (lv_suffix_6_0= ruleSuffixExpression ) )? )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3100:3: otherlv_0= '->' ( (lv_op_1_0= ruleForAllOrExistsOrOneOperator ) ) ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '(' ( (lv_expr_4_0= ruleExpression ) ) otherlv_5= ')' ( (lv_suffix_6_0= ruleSuffixExpression ) )?
+ {
+ otherlv_0=(Token)match(input,52,FOLLOW_52_in_ruleForAllOrExistsOrOneOperation6588);
+
+ newLeafNode(otherlv_0, grammarAccess.getForAllOrExistsOrOneOperationAccess().getHyphenMinusGreaterThanSignKeyword_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3104:1: ( (lv_op_1_0= ruleForAllOrExistsOrOneOperator ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3105:1: (lv_op_1_0= ruleForAllOrExistsOrOneOperator )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3105:1: (lv_op_1_0= ruleForAllOrExistsOrOneOperator )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3106:3: lv_op_1_0= ruleForAllOrExistsOrOneOperator
+ {
+
+ newCompositeNode(grammarAccess.getForAllOrExistsOrOneOperationAccess().getOpForAllOrExistsOrOneOperatorEnumRuleCall_1_0());
+
+ pushFollow(FOLLOW_ruleForAllOrExistsOrOneOperator_in_ruleForAllOrExistsOrOneOperation6609);
+ lv_op_1_0=ruleForAllOrExistsOrOneOperator();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getForAllOrExistsOrOneOperationRule());
+ }
+ set(
+ current,
+ "op",
+ lv_op_1_0,
+ "ForAllOrExistsOrOneOperator");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3122:2: ( (lv_name_2_0= RULE_ID ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3123:1: (lv_name_2_0= RULE_ID )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3123:1: (lv_name_2_0= RULE_ID )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3124:3: lv_name_2_0= RULE_ID
+ {
+ lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleForAllOrExistsOrOneOperation6626);
+
+ newLeafNode(lv_name_2_0, grammarAccess.getForAllOrExistsOrOneOperationAccess().getNameIDTerminalRuleCall_2_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getForAllOrExistsOrOneOperationRule());
+ }
+ setWithLastConsumed(
+ current,
+ "name",
+ lv_name_2_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,24,FOLLOW_24_in_ruleForAllOrExistsOrOneOperation6643);
+
+ newLeafNode(otherlv_3, grammarAccess.getForAllOrExistsOrOneOperationAccess().getLeftParenthesisKeyword_3());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3144:1: ( (lv_expr_4_0= ruleExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3145:1: (lv_expr_4_0= ruleExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3145:1: (lv_expr_4_0= ruleExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3146:3: lv_expr_4_0= ruleExpression
+ {
+
+ newCompositeNode(grammarAccess.getForAllOrExistsOrOneOperationAccess().getExprExpressionParserRuleCall_4_0());
+
+ pushFollow(FOLLOW_ruleExpression_in_ruleForAllOrExistsOrOneOperation6664);
+ lv_expr_4_0=ruleExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getForAllOrExistsOrOneOperationRule());
+ }
+ set(
+ current,
+ "expr",
+ lv_expr_4_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_5=(Token)match(input,25,FOLLOW_25_in_ruleForAllOrExistsOrOneOperation6676);
+
+ newLeafNode(otherlv_5, grammarAccess.getForAllOrExistsOrOneOperationAccess().getRightParenthesisKeyword_5());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3166:1: ( (lv_suffix_6_0= ruleSuffixExpression ) )?
+ int alt52=2;
+ int LA52_0 = input.LA(1);
+
+ if ( (LA52_0==49||LA52_0==52) ) {
+ alt52=1;
+ }
+ switch (alt52) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3167:1: (lv_suffix_6_0= ruleSuffixExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3167:1: (lv_suffix_6_0= ruleSuffixExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3168:3: lv_suffix_6_0= ruleSuffixExpression
+ {
+
+ newCompositeNode(grammarAccess.getForAllOrExistsOrOneOperationAccess().getSuffixSuffixExpressionParserRuleCall_6_0());
+
+ pushFollow(FOLLOW_ruleSuffixExpression_in_ruleForAllOrExistsOrOneOperation6697);
+ lv_suffix_6_0=ruleSuffixExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getForAllOrExistsOrOneOperationRule());
+ }
+ set(
+ current,
+ "suffix",
+ lv_suffix_6_0,
+ "SuffixExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleForAllOrExistsOrOneOperation"
+
+
+ // $ANTLR start "entryRuleIsUniqueOperation"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3192:1: entryRuleIsUniqueOperation returns [EObject current=null] : iv_ruleIsUniqueOperation= ruleIsUniqueOperation EOF ;
+ public final EObject entryRuleIsUniqueOperation() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleIsUniqueOperation = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3193:2: (iv_ruleIsUniqueOperation= ruleIsUniqueOperation EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3194:2: iv_ruleIsUniqueOperation= ruleIsUniqueOperation EOF
+ {
+ newCompositeNode(grammarAccess.getIsUniqueOperationRule());
+ pushFollow(FOLLOW_ruleIsUniqueOperation_in_entryRuleIsUniqueOperation6734);
+ iv_ruleIsUniqueOperation=ruleIsUniqueOperation();
+
+ state._fsp--;
+
+ current =iv_ruleIsUniqueOperation;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleIsUniqueOperation6744);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleIsUniqueOperation"
+
+
+ // $ANTLR start "ruleIsUniqueOperation"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3201:1: ruleIsUniqueOperation returns [EObject current=null] : (otherlv_0= '->' otherlv_1= 'isUnique' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '(' ( (lv_expr_4_0= ruleExpression ) ) otherlv_5= ')' ( (lv_suffix_6_0= ruleSuffixExpression ) )? ) ;
+ public final EObject ruleIsUniqueOperation() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_1=null;
+ Token lv_name_2_0=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ EObject lv_expr_4_0 = null;
+
+ EObject lv_suffix_6_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3204:28: ( (otherlv_0= '->' otherlv_1= 'isUnique' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '(' ( (lv_expr_4_0= ruleExpression ) ) otherlv_5= ')' ( (lv_suffix_6_0= ruleSuffixExpression ) )? ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3205:1: (otherlv_0= '->' otherlv_1= 'isUnique' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '(' ( (lv_expr_4_0= ruleExpression ) ) otherlv_5= ')' ( (lv_suffix_6_0= ruleSuffixExpression ) )? )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3205:1: (otherlv_0= '->' otherlv_1= 'isUnique' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '(' ( (lv_expr_4_0= ruleExpression ) ) otherlv_5= ')' ( (lv_suffix_6_0= ruleSuffixExpression ) )? )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3205:3: otherlv_0= '->' otherlv_1= 'isUnique' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '(' ( (lv_expr_4_0= ruleExpression ) ) otherlv_5= ')' ( (lv_suffix_6_0= ruleSuffixExpression ) )?
+ {
+ otherlv_0=(Token)match(input,52,FOLLOW_52_in_ruleIsUniqueOperation6781);
+
+ newLeafNode(otherlv_0, grammarAccess.getIsUniqueOperationAccess().getHyphenMinusGreaterThanSignKeyword_0());
+
+ otherlv_1=(Token)match(input,55,FOLLOW_55_in_ruleIsUniqueOperation6793);
+
+ newLeafNode(otherlv_1, grammarAccess.getIsUniqueOperationAccess().getIsUniqueKeyword_1());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3213:1: ( (lv_name_2_0= RULE_ID ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3214:1: (lv_name_2_0= RULE_ID )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3214:1: (lv_name_2_0= RULE_ID )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3215:3: lv_name_2_0= RULE_ID
+ {
+ lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleIsUniqueOperation6810);
+
+ newLeafNode(lv_name_2_0, grammarAccess.getIsUniqueOperationAccess().getNameIDTerminalRuleCall_2_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getIsUniqueOperationRule());
+ }
+ setWithLastConsumed(
+ current,
+ "name",
+ lv_name_2_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,24,FOLLOW_24_in_ruleIsUniqueOperation6827);
+
+ newLeafNode(otherlv_3, grammarAccess.getIsUniqueOperationAccess().getLeftParenthesisKeyword_3());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3235:1: ( (lv_expr_4_0= ruleExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3236:1: (lv_expr_4_0= ruleExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3236:1: (lv_expr_4_0= ruleExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3237:3: lv_expr_4_0= ruleExpression
+ {
+
+ newCompositeNode(grammarAccess.getIsUniqueOperationAccess().getExprExpressionParserRuleCall_4_0());
+
+ pushFollow(FOLLOW_ruleExpression_in_ruleIsUniqueOperation6848);
+ lv_expr_4_0=ruleExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getIsUniqueOperationRule());
+ }
+ set(
+ current,
+ "expr",
+ lv_expr_4_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_5=(Token)match(input,25,FOLLOW_25_in_ruleIsUniqueOperation6860);
+
+ newLeafNode(otherlv_5, grammarAccess.getIsUniqueOperationAccess().getRightParenthesisKeyword_5());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3257:1: ( (lv_suffix_6_0= ruleSuffixExpression ) )?
+ int alt53=2;
+ int LA53_0 = input.LA(1);
+
+ if ( (LA53_0==49||LA53_0==52) ) {
+ alt53=1;
+ }
+ switch (alt53) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3258:1: (lv_suffix_6_0= ruleSuffixExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3258:1: (lv_suffix_6_0= ruleSuffixExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3259:3: lv_suffix_6_0= ruleSuffixExpression
+ {
+
+ newCompositeNode(grammarAccess.getIsUniqueOperationAccess().getSuffixSuffixExpressionParserRuleCall_6_0());
+
+ pushFollow(FOLLOW_ruleSuffixExpression_in_ruleIsUniqueOperation6881);
+ lv_suffix_6_0=ruleSuffixExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getIsUniqueOperationRule());
+ }
+ set(
+ current,
+ "suffix",
+ lv_suffix_6_0,
+ "SuffixExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleIsUniqueOperation"
+
+
+ // $ANTLR start "entryRuleValueSpecification"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3283:1: entryRuleValueSpecification returns [EObject current=null] : iv_ruleValueSpecification= ruleValueSpecification EOF ;
+ public final EObject entryRuleValueSpecification() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleValueSpecification = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3284:2: (iv_ruleValueSpecification= ruleValueSpecification EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3285:2: iv_ruleValueSpecification= ruleValueSpecification EOF
+ {
+ newCompositeNode(grammarAccess.getValueSpecificationRule());
+ pushFollow(FOLLOW_ruleValueSpecification_in_entryRuleValueSpecification6918);
+ iv_ruleValueSpecification=ruleValueSpecification();
+
+ state._fsp--;
+
+ current =iv_ruleValueSpecification;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleValueSpecification6928);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleValueSpecification"
+
+
+ // $ANTLR start "ruleValueSpecification"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3292:1: ruleValueSpecification returns [EObject current=null] : (this_NameExpression_0= ruleNameExpression | this_LITERAL_1= ruleLITERAL | this_ThisExpression_2= ruleThisExpression | this_SuperInvocationExpression_3= ruleSuperInvocationExpression | this_InstanceCreationExpression_4= ruleInstanceCreationExpression | this_ParenthesizedExpression_5= ruleParenthesizedExpression | this_NullExpression_6= ruleNullExpression ) ;
+ public final EObject ruleValueSpecification() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_NameExpression_0 = null;
+
+ EObject this_LITERAL_1 = null;
+
+ EObject this_ThisExpression_2 = null;
+
+ EObject this_SuperInvocationExpression_3 = null;
+
+ EObject this_InstanceCreationExpression_4 = null;
+
+ EObject this_ParenthesizedExpression_5 = null;
+
+ EObject this_NullExpression_6 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3295:28: ( (this_NameExpression_0= ruleNameExpression | this_LITERAL_1= ruleLITERAL | this_ThisExpression_2= ruleThisExpression | this_SuperInvocationExpression_3= ruleSuperInvocationExpression | this_InstanceCreationExpression_4= ruleInstanceCreationExpression | this_ParenthesizedExpression_5= ruleParenthesizedExpression | this_NullExpression_6= ruleNullExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3296:1: (this_NameExpression_0= ruleNameExpression | this_LITERAL_1= ruleLITERAL | this_ThisExpression_2= ruleThisExpression | this_SuperInvocationExpression_3= ruleSuperInvocationExpression | this_InstanceCreationExpression_4= ruleInstanceCreationExpression | this_ParenthesizedExpression_5= ruleParenthesizedExpression | this_NullExpression_6= ruleNullExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3296:1: (this_NameExpression_0= ruleNameExpression | this_LITERAL_1= ruleLITERAL | this_ThisExpression_2= ruleThisExpression | this_SuperInvocationExpression_3= ruleSuperInvocationExpression | this_InstanceCreationExpression_4= ruleInstanceCreationExpression | this_ParenthesizedExpression_5= ruleParenthesizedExpression | this_NullExpression_6= ruleNullExpression )
+ int alt54=7;
+ switch ( input.LA(1) ) {
+ case RULE_ID:
+ case 17:
+ case 18:
+ {
+ alt54=1;
+ }
+ break;
+ case RULE_INTEGERVALUE:
+ case RULE_STRING:
+ case 16:
+ case 87:
+ case 88:
+ {
+ alt54=2;
+ }
+ break;
+ case 57:
+ {
+ alt54=3;
+ }
+ break;
+ case 58:
+ {
+ alt54=4;
+ }
+ break;
+ case 59:
+ {
+ alt54=5;
+ }
+ break;
+ case 24:
+ {
+ alt54=6;
+ }
+ break;
+ case 56:
+ {
+ alt54=7;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 54, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt54) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3297:5: this_NameExpression_0= ruleNameExpression
+ {
+
+ newCompositeNode(grammarAccess.getValueSpecificationAccess().getNameExpressionParserRuleCall_0());
+
+ pushFollow(FOLLOW_ruleNameExpression_in_ruleValueSpecification6975);
+ this_NameExpression_0=ruleNameExpression();
+
+ state._fsp--;
+
+
+ current = this_NameExpression_0;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3307:5: this_LITERAL_1= ruleLITERAL
+ {
+
+ newCompositeNode(grammarAccess.getValueSpecificationAccess().getLITERALParserRuleCall_1());
+
+ pushFollow(FOLLOW_ruleLITERAL_in_ruleValueSpecification7002);
+ this_LITERAL_1=ruleLITERAL();
+
+ state._fsp--;
+
+
+ current = this_LITERAL_1;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3317:5: this_ThisExpression_2= ruleThisExpression
+ {
+
+ newCompositeNode(grammarAccess.getValueSpecificationAccess().getThisExpressionParserRuleCall_2());
+
+ pushFollow(FOLLOW_ruleThisExpression_in_ruleValueSpecification7029);
+ this_ThisExpression_2=ruleThisExpression();
+
+ state._fsp--;
+
+
+ current = this_ThisExpression_2;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3327:5: this_SuperInvocationExpression_3= ruleSuperInvocationExpression
+ {
+
+ newCompositeNode(grammarAccess.getValueSpecificationAccess().getSuperInvocationExpressionParserRuleCall_3());
+
+ pushFollow(FOLLOW_ruleSuperInvocationExpression_in_ruleValueSpecification7056);
+ this_SuperInvocationExpression_3=ruleSuperInvocationExpression();
+
+ state._fsp--;
+
+
+ current = this_SuperInvocationExpression_3;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3337:5: this_InstanceCreationExpression_4= ruleInstanceCreationExpression
+ {
+
+ newCompositeNode(grammarAccess.getValueSpecificationAccess().getInstanceCreationExpressionParserRuleCall_4());
+
+ pushFollow(FOLLOW_ruleInstanceCreationExpression_in_ruleValueSpecification7083);
+ this_InstanceCreationExpression_4=ruleInstanceCreationExpression();
+
+ state._fsp--;
+
+
+ current = this_InstanceCreationExpression_4;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 6 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3347:5: this_ParenthesizedExpression_5= ruleParenthesizedExpression
+ {
+
+ newCompositeNode(grammarAccess.getValueSpecificationAccess().getParenthesizedExpressionParserRuleCall_5());
+
+ pushFollow(FOLLOW_ruleParenthesizedExpression_in_ruleValueSpecification7110);
+ this_ParenthesizedExpression_5=ruleParenthesizedExpression();
+
+ state._fsp--;
+
+
+ current = this_ParenthesizedExpression_5;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 7 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3357:5: this_NullExpression_6= ruleNullExpression
+ {
+
+ newCompositeNode(grammarAccess.getValueSpecificationAccess().getNullExpressionParserRuleCall_6());
+
+ pushFollow(FOLLOW_ruleNullExpression_in_ruleValueSpecification7137);
+ this_NullExpression_6=ruleNullExpression();
+
+ state._fsp--;
+
+
+ current = this_NullExpression_6;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleValueSpecification"
+
+
+ // $ANTLR start "entryRuleNonLiteralValueSpecification"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3373:1: entryRuleNonLiteralValueSpecification returns [EObject current=null] : iv_ruleNonLiteralValueSpecification= ruleNonLiteralValueSpecification EOF ;
+ public final EObject entryRuleNonLiteralValueSpecification() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleNonLiteralValueSpecification = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3374:2: (iv_ruleNonLiteralValueSpecification= ruleNonLiteralValueSpecification EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3375:2: iv_ruleNonLiteralValueSpecification= ruleNonLiteralValueSpecification EOF
+ {
+ newCompositeNode(grammarAccess.getNonLiteralValueSpecificationRule());
+ pushFollow(FOLLOW_ruleNonLiteralValueSpecification_in_entryRuleNonLiteralValueSpecification7172);
+ iv_ruleNonLiteralValueSpecification=ruleNonLiteralValueSpecification();
+
+ state._fsp--;
+
+ current =iv_ruleNonLiteralValueSpecification;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleNonLiteralValueSpecification7182);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleNonLiteralValueSpecification"
+
+
+ // $ANTLR start "ruleNonLiteralValueSpecification"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3382:1: ruleNonLiteralValueSpecification returns [EObject current=null] : (this_NameExpression_0= ruleNameExpression | this_ParenthesizedExpression_1= ruleParenthesizedExpression | this_InstanceCreationExpression_2= ruleInstanceCreationExpression | this_ThisExpression_3= ruleThisExpression | this_SuperInvocationExpression_4= ruleSuperInvocationExpression ) ;
+ public final EObject ruleNonLiteralValueSpecification() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_NameExpression_0 = null;
+
+ EObject this_ParenthesizedExpression_1 = null;
+
+ EObject this_InstanceCreationExpression_2 = null;
+
+ EObject this_ThisExpression_3 = null;
+
+ EObject this_SuperInvocationExpression_4 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3385:28: ( (this_NameExpression_0= ruleNameExpression | this_ParenthesizedExpression_1= ruleParenthesizedExpression | this_InstanceCreationExpression_2= ruleInstanceCreationExpression | this_ThisExpression_3= ruleThisExpression | this_SuperInvocationExpression_4= ruleSuperInvocationExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3386:1: (this_NameExpression_0= ruleNameExpression | this_ParenthesizedExpression_1= ruleParenthesizedExpression | this_InstanceCreationExpression_2= ruleInstanceCreationExpression | this_ThisExpression_3= ruleThisExpression | this_SuperInvocationExpression_4= ruleSuperInvocationExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3386:1: (this_NameExpression_0= ruleNameExpression | this_ParenthesizedExpression_1= ruleParenthesizedExpression | this_InstanceCreationExpression_2= ruleInstanceCreationExpression | this_ThisExpression_3= ruleThisExpression | this_SuperInvocationExpression_4= ruleSuperInvocationExpression )
+ int alt55=5;
+ switch ( input.LA(1) ) {
+ case RULE_ID:
+ case 17:
+ case 18:
+ {
+ alt55=1;
+ }
+ break;
+ case 24:
+ {
+ alt55=2;
+ }
+ break;
+ case 59:
+ {
+ alt55=3;
+ }
+ break;
+ case 57:
+ {
+ alt55=4;
+ }
+ break;
+ case 58:
+ {
+ alt55=5;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 55, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt55) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3387:5: this_NameExpression_0= ruleNameExpression
+ {
+
+ newCompositeNode(grammarAccess.getNonLiteralValueSpecificationAccess().getNameExpressionParserRuleCall_0());
+
+ pushFollow(FOLLOW_ruleNameExpression_in_ruleNonLiteralValueSpecification7229);
+ this_NameExpression_0=ruleNameExpression();
+
+ state._fsp--;
+
+
+ current = this_NameExpression_0;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3397:5: this_ParenthesizedExpression_1= ruleParenthesizedExpression
+ {
+
+ newCompositeNode(grammarAccess.getNonLiteralValueSpecificationAccess().getParenthesizedExpressionParserRuleCall_1());
+
+ pushFollow(FOLLOW_ruleParenthesizedExpression_in_ruleNonLiteralValueSpecification7256);
+ this_ParenthesizedExpression_1=ruleParenthesizedExpression();
+
+ state._fsp--;
+
+
+ current = this_ParenthesizedExpression_1;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3407:5: this_InstanceCreationExpression_2= ruleInstanceCreationExpression
+ {
+
+ newCompositeNode(grammarAccess.getNonLiteralValueSpecificationAccess().getInstanceCreationExpressionParserRuleCall_2());
+
+ pushFollow(FOLLOW_ruleInstanceCreationExpression_in_ruleNonLiteralValueSpecification7283);
+ this_InstanceCreationExpression_2=ruleInstanceCreationExpression();
+
+ state._fsp--;
+
+
+ current = this_InstanceCreationExpression_2;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3417:5: this_ThisExpression_3= ruleThisExpression
+ {
+
+ newCompositeNode(grammarAccess.getNonLiteralValueSpecificationAccess().getThisExpressionParserRuleCall_3());
+
+ pushFollow(FOLLOW_ruleThisExpression_in_ruleNonLiteralValueSpecification7310);
+ this_ThisExpression_3=ruleThisExpression();
+
+ state._fsp--;
+
+
+ current = this_ThisExpression_3;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3427:5: this_SuperInvocationExpression_4= ruleSuperInvocationExpression
+ {
+
+ newCompositeNode(grammarAccess.getNonLiteralValueSpecificationAccess().getSuperInvocationExpressionParserRuleCall_4());
+
+ pushFollow(FOLLOW_ruleSuperInvocationExpression_in_ruleNonLiteralValueSpecification7337);
+ this_SuperInvocationExpression_4=ruleSuperInvocationExpression();
+
+ state._fsp--;
+
+
+ current = this_SuperInvocationExpression_4;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleNonLiteralValueSpecification"
+
+
+ // $ANTLR start "entryRuleParenthesizedExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3443:1: entryRuleParenthesizedExpression returns [EObject current=null] : iv_ruleParenthesizedExpression= ruleParenthesizedExpression EOF ;
+ public final EObject entryRuleParenthesizedExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleParenthesizedExpression = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3444:2: (iv_ruleParenthesizedExpression= ruleParenthesizedExpression EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3445:2: iv_ruleParenthesizedExpression= ruleParenthesizedExpression EOF
+ {
+ newCompositeNode(grammarAccess.getParenthesizedExpressionRule());
+ pushFollow(FOLLOW_ruleParenthesizedExpression_in_entryRuleParenthesizedExpression7372);
+ iv_ruleParenthesizedExpression=ruleParenthesizedExpression();
+
+ state._fsp--;
+
+ current =iv_ruleParenthesizedExpression;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleParenthesizedExpression7382);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleParenthesizedExpression"
+
+
+ // $ANTLR start "ruleParenthesizedExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3452:1: ruleParenthesizedExpression returns [EObject current=null] : (otherlv_0= '(' ( (lv_expOrTypeCast_1_0= ruleExpression ) ) otherlv_2= ')' ( ( (lv_casted_3_0= ruleNonLiteralValueSpecification ) ) | ( (lv_suffix_4_0= ruleSuffixExpression ) ) )? ) ;
+ public final EObject ruleParenthesizedExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_2=null;
+ EObject lv_expOrTypeCast_1_0 = null;
+
+ EObject lv_casted_3_0 = null;
+
+ EObject lv_suffix_4_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3455:28: ( (otherlv_0= '(' ( (lv_expOrTypeCast_1_0= ruleExpression ) ) otherlv_2= ')' ( ( (lv_casted_3_0= ruleNonLiteralValueSpecification ) ) | ( (lv_suffix_4_0= ruleSuffixExpression ) ) )? ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3456:1: (otherlv_0= '(' ( (lv_expOrTypeCast_1_0= ruleExpression ) ) otherlv_2= ')' ( ( (lv_casted_3_0= ruleNonLiteralValueSpecification ) ) | ( (lv_suffix_4_0= ruleSuffixExpression ) ) )? )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3456:1: (otherlv_0= '(' ( (lv_expOrTypeCast_1_0= ruleExpression ) ) otherlv_2= ')' ( ( (lv_casted_3_0= ruleNonLiteralValueSpecification ) ) | ( (lv_suffix_4_0= ruleSuffixExpression ) ) )? )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3456:3: otherlv_0= '(' ( (lv_expOrTypeCast_1_0= ruleExpression ) ) otherlv_2= ')' ( ( (lv_casted_3_0= ruleNonLiteralValueSpecification ) ) | ( (lv_suffix_4_0= ruleSuffixExpression ) ) )?
+ {
+ otherlv_0=(Token)match(input,24,FOLLOW_24_in_ruleParenthesizedExpression7419);
+
+ newLeafNode(otherlv_0, grammarAccess.getParenthesizedExpressionAccess().getLeftParenthesisKeyword_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3460:1: ( (lv_expOrTypeCast_1_0= ruleExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3461:1: (lv_expOrTypeCast_1_0= ruleExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3461:1: (lv_expOrTypeCast_1_0= ruleExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3462:3: lv_expOrTypeCast_1_0= ruleExpression
+ {
+
+ newCompositeNode(grammarAccess.getParenthesizedExpressionAccess().getExpOrTypeCastExpressionParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_ruleExpression_in_ruleParenthesizedExpression7440);
+ lv_expOrTypeCast_1_0=ruleExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getParenthesizedExpressionRule());
+ }
+ set(
+ current,
+ "expOrTypeCast",
+ lv_expOrTypeCast_1_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_2=(Token)match(input,25,FOLLOW_25_in_ruleParenthesizedExpression7452);
+
+ newLeafNode(otherlv_2, grammarAccess.getParenthesizedExpressionAccess().getRightParenthesisKeyword_2());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3482:1: ( ( (lv_casted_3_0= ruleNonLiteralValueSpecification ) ) | ( (lv_suffix_4_0= ruleSuffixExpression ) ) )?
+ int alt56=3;
+ int LA56_0 = input.LA(1);
+
+ if ( (LA56_0==RULE_ID||(LA56_0>=17 && LA56_0<=18)||LA56_0==24||(LA56_0>=57 && LA56_0<=59)) ) {
+ alt56=1;
+ }
+ else if ( (LA56_0==49||LA56_0==52) ) {
+ alt56=2;
+ }
+ switch (alt56) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3482:2: ( (lv_casted_3_0= ruleNonLiteralValueSpecification ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3482:2: ( (lv_casted_3_0= ruleNonLiteralValueSpecification ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3483:1: (lv_casted_3_0= ruleNonLiteralValueSpecification )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3483:1: (lv_casted_3_0= ruleNonLiteralValueSpecification )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3484:3: lv_casted_3_0= ruleNonLiteralValueSpecification
+ {
+
+ newCompositeNode(grammarAccess.getParenthesizedExpressionAccess().getCastedNonLiteralValueSpecificationParserRuleCall_3_0_0());
+
+ pushFollow(FOLLOW_ruleNonLiteralValueSpecification_in_ruleParenthesizedExpression7474);
+ lv_casted_3_0=ruleNonLiteralValueSpecification();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getParenthesizedExpressionRule());
+ }
+ set(
+ current,
+ "casted",
+ lv_casted_3_0,
+ "NonLiteralValueSpecification");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3501:6: ( (lv_suffix_4_0= ruleSuffixExpression ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3501:6: ( (lv_suffix_4_0= ruleSuffixExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3502:1: (lv_suffix_4_0= ruleSuffixExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3502:1: (lv_suffix_4_0= ruleSuffixExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3503:3: lv_suffix_4_0= ruleSuffixExpression
+ {
+
+ newCompositeNode(grammarAccess.getParenthesizedExpressionAccess().getSuffixSuffixExpressionParserRuleCall_3_1_0());
+
+ pushFollow(FOLLOW_ruleSuffixExpression_in_ruleParenthesizedExpression7501);
+ lv_suffix_4_0=ruleSuffixExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getParenthesizedExpressionRule());
+ }
+ set(
+ current,
+ "suffix",
+ lv_suffix_4_0,
+ "SuffixExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleParenthesizedExpression"
+
+
+ // $ANTLR start "entryRuleNullExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3527:1: entryRuleNullExpression returns [EObject current=null] : iv_ruleNullExpression= ruleNullExpression EOF ;
+ public final EObject entryRuleNullExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleNullExpression = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3528:2: (iv_ruleNullExpression= ruleNullExpression EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3529:2: iv_ruleNullExpression= ruleNullExpression EOF
+ {
+ newCompositeNode(grammarAccess.getNullExpressionRule());
+ pushFollow(FOLLOW_ruleNullExpression_in_entryRuleNullExpression7539);
+ iv_ruleNullExpression=ruleNullExpression();
+
+ state._fsp--;
+
+ current =iv_ruleNullExpression;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleNullExpression7549);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleNullExpression"
+
+
+ // $ANTLR start "ruleNullExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3536:1: ruleNullExpression returns [EObject current=null] : ( () otherlv_1= 'null' ) ;
+ public final EObject ruleNullExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3539:28: ( ( () otherlv_1= 'null' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3540:1: ( () otherlv_1= 'null' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3540:1: ( () otherlv_1= 'null' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3540:2: () otherlv_1= 'null'
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3540:2: ()
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3541:5:
+ {
+
+ current = forceCreateModelElement(
+ grammarAccess.getNullExpressionAccess().getNullExpressionAction_0(),
+ current);
+
+
+ }
+
+ otherlv_1=(Token)match(input,56,FOLLOW_56_in_ruleNullExpression7595);
+
+ newLeafNode(otherlv_1, grammarAccess.getNullExpressionAccess().getNullKeyword_1());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleNullExpression"
+
+
+ // $ANTLR start "entryRuleThisExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3558:1: entryRuleThisExpression returns [EObject current=null] : iv_ruleThisExpression= ruleThisExpression EOF ;
+ public final EObject entryRuleThisExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleThisExpression = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3559:2: (iv_ruleThisExpression= ruleThisExpression EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3560:2: iv_ruleThisExpression= ruleThisExpression EOF
+ {
+ newCompositeNode(grammarAccess.getThisExpressionRule());
+ pushFollow(FOLLOW_ruleThisExpression_in_entryRuleThisExpression7631);
+ iv_ruleThisExpression=ruleThisExpression();
+
+ state._fsp--;
+
+ current =iv_ruleThisExpression;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleThisExpression7641);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleThisExpression"
+
+
+ // $ANTLR start "ruleThisExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3567:1: ruleThisExpression returns [EObject current=null] : ( () otherlv_1= 'this' ( (lv_suffix_2_0= ruleSuffixExpression ) )? ) ;
+ public final EObject ruleThisExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ EObject lv_suffix_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3570:28: ( ( () otherlv_1= 'this' ( (lv_suffix_2_0= ruleSuffixExpression ) )? ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3571:1: ( () otherlv_1= 'this' ( (lv_suffix_2_0= ruleSuffixExpression ) )? )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3571:1: ( () otherlv_1= 'this' ( (lv_suffix_2_0= ruleSuffixExpression ) )? )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3571:2: () otherlv_1= 'this' ( (lv_suffix_2_0= ruleSuffixExpression ) )?
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3571:2: ()
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3572:5:
+ {
+
+ current = forceCreateModelElement(
+ grammarAccess.getThisExpressionAccess().getThisExpressionAction_0(),
+ current);
+
+
+ }
+
+ otherlv_1=(Token)match(input,57,FOLLOW_57_in_ruleThisExpression7687);
+
+ newLeafNode(otherlv_1, grammarAccess.getThisExpressionAccess().getThisKeyword_1());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3581:1: ( (lv_suffix_2_0= ruleSuffixExpression ) )?
+ int alt57=2;
+ int LA57_0 = input.LA(1);
+
+ if ( (LA57_0==49||LA57_0==52) ) {
+ alt57=1;
+ }
+ switch (alt57) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3582:1: (lv_suffix_2_0= ruleSuffixExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3582:1: (lv_suffix_2_0= ruleSuffixExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3583:3: lv_suffix_2_0= ruleSuffixExpression
+ {
+
+ newCompositeNode(grammarAccess.getThisExpressionAccess().getSuffixSuffixExpressionParserRuleCall_2_0());
+
+ pushFollow(FOLLOW_ruleSuffixExpression_in_ruleThisExpression7708);
+ lv_suffix_2_0=ruleSuffixExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getThisExpressionRule());
+ }
+ set(
+ current,
+ "suffix",
+ lv_suffix_2_0,
+ "SuffixExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleThisExpression"
+
+
+ // $ANTLR start "entryRuleSuperInvocationExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3607:1: entryRuleSuperInvocationExpression returns [EObject current=null] : iv_ruleSuperInvocationExpression= ruleSuperInvocationExpression EOF ;
+ public final EObject entryRuleSuperInvocationExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleSuperInvocationExpression = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3608:2: (iv_ruleSuperInvocationExpression= ruleSuperInvocationExpression EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3609:2: iv_ruleSuperInvocationExpression= ruleSuperInvocationExpression EOF
+ {
+ newCompositeNode(grammarAccess.getSuperInvocationExpressionRule());
+ pushFollow(FOLLOW_ruleSuperInvocationExpression_in_entryRuleSuperInvocationExpression7745);
+ iv_ruleSuperInvocationExpression=ruleSuperInvocationExpression();
+
+ state._fsp--;
+
+ current =iv_ruleSuperInvocationExpression;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleSuperInvocationExpression7755);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleSuperInvocationExpression"
+
+
+ // $ANTLR start "ruleSuperInvocationExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3616:1: ruleSuperInvocationExpression returns [EObject current=null] : (otherlv_0= 'super' ( ( (lv_tuple_1_0= ruleTuple ) ) | (otherlv_2= '.' ( (lv_operationName_3_0= ruleQualifiedNameWithBinding ) ) ( (lv_tuple_4_0= ruleTuple ) ) ) ) ) ;
+ public final EObject ruleSuperInvocationExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_2=null;
+ EObject lv_tuple_1_0 = null;
+
+ EObject lv_operationName_3_0 = null;
+
+ EObject lv_tuple_4_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3619:28: ( (otherlv_0= 'super' ( ( (lv_tuple_1_0= ruleTuple ) ) | (otherlv_2= '.' ( (lv_operationName_3_0= ruleQualifiedNameWithBinding ) ) ( (lv_tuple_4_0= ruleTuple ) ) ) ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3620:1: (otherlv_0= 'super' ( ( (lv_tuple_1_0= ruleTuple ) ) | (otherlv_2= '.' ( (lv_operationName_3_0= ruleQualifiedNameWithBinding ) ) ( (lv_tuple_4_0= ruleTuple ) ) ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3620:1: (otherlv_0= 'super' ( ( (lv_tuple_1_0= ruleTuple ) ) | (otherlv_2= '.' ( (lv_operationName_3_0= ruleQualifiedNameWithBinding ) ) ( (lv_tuple_4_0= ruleTuple ) ) ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3620:3: otherlv_0= 'super' ( ( (lv_tuple_1_0= ruleTuple ) ) | (otherlv_2= '.' ( (lv_operationName_3_0= ruleQualifiedNameWithBinding ) ) ( (lv_tuple_4_0= ruleTuple ) ) ) )
+ {
+ otherlv_0=(Token)match(input,58,FOLLOW_58_in_ruleSuperInvocationExpression7792);
+
+ newLeafNode(otherlv_0, grammarAccess.getSuperInvocationExpressionAccess().getSuperKeyword_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3624:1: ( ( (lv_tuple_1_0= ruleTuple ) ) | (otherlv_2= '.' ( (lv_operationName_3_0= ruleQualifiedNameWithBinding ) ) ( (lv_tuple_4_0= ruleTuple ) ) ) )
+ int alt58=2;
+ int LA58_0 = input.LA(1);
+
+ if ( (LA58_0==24) ) {
+ alt58=1;
+ }
+ else if ( (LA58_0==49) ) {
+ alt58=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 58, 0, input);
+
+ throw nvae;
+ }
+ switch (alt58) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3624:2: ( (lv_tuple_1_0= ruleTuple ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3624:2: ( (lv_tuple_1_0= ruleTuple ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3625:1: (lv_tuple_1_0= ruleTuple )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3625:1: (lv_tuple_1_0= ruleTuple )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3626:3: lv_tuple_1_0= ruleTuple
+ {
+
+ newCompositeNode(grammarAccess.getSuperInvocationExpressionAccess().getTupleTupleParserRuleCall_1_0_0());
+
+ pushFollow(FOLLOW_ruleTuple_in_ruleSuperInvocationExpression7814);
+ lv_tuple_1_0=ruleTuple();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSuperInvocationExpressionRule());
+ }
+ set(
+ current,
+ "tuple",
+ lv_tuple_1_0,
+ "Tuple");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3643:6: (otherlv_2= '.' ( (lv_operationName_3_0= ruleQualifiedNameWithBinding ) ) ( (lv_tuple_4_0= ruleTuple ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3643:6: (otherlv_2= '.' ( (lv_operationName_3_0= ruleQualifiedNameWithBinding ) ) ( (lv_tuple_4_0= ruleTuple ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3643:8: otherlv_2= '.' ( (lv_operationName_3_0= ruleQualifiedNameWithBinding ) ) ( (lv_tuple_4_0= ruleTuple ) )
+ {
+ otherlv_2=(Token)match(input,49,FOLLOW_49_in_ruleSuperInvocationExpression7833);
+
+ newLeafNode(otherlv_2, grammarAccess.getSuperInvocationExpressionAccess().getFullStopKeyword_1_1_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3647:1: ( (lv_operationName_3_0= ruleQualifiedNameWithBinding ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3648:1: (lv_operationName_3_0= ruleQualifiedNameWithBinding )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3648:1: (lv_operationName_3_0= ruleQualifiedNameWithBinding )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3649:3: lv_operationName_3_0= ruleQualifiedNameWithBinding
+ {
+
+ newCompositeNode(grammarAccess.getSuperInvocationExpressionAccess().getOperationNameQualifiedNameWithBindingParserRuleCall_1_1_1_0());
+
+ pushFollow(FOLLOW_ruleQualifiedNameWithBinding_in_ruleSuperInvocationExpression7854);
+ lv_operationName_3_0=ruleQualifiedNameWithBinding();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSuperInvocationExpressionRule());
+ }
+ set(
+ current,
+ "operationName",
+ lv_operationName_3_0,
+ "QualifiedNameWithBinding");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3665:2: ( (lv_tuple_4_0= ruleTuple ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3666:1: (lv_tuple_4_0= ruleTuple )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3666:1: (lv_tuple_4_0= ruleTuple )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3667:3: lv_tuple_4_0= ruleTuple
+ {
+
+ newCompositeNode(grammarAccess.getSuperInvocationExpressionAccess().getTupleTupleParserRuleCall_1_1_2_0());
+
+ pushFollow(FOLLOW_ruleTuple_in_ruleSuperInvocationExpression7875);
+ lv_tuple_4_0=ruleTuple();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSuperInvocationExpressionRule());
+ }
+ set(
+ current,
+ "tuple",
+ lv_tuple_4_0,
+ "Tuple");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleSuperInvocationExpression"
+
+
+ // $ANTLR start "entryRuleInstanceCreationExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3691:1: entryRuleInstanceCreationExpression returns [EObject current=null] : iv_ruleInstanceCreationExpression= ruleInstanceCreationExpression EOF ;
+ public final EObject entryRuleInstanceCreationExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleInstanceCreationExpression = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3692:2: (iv_ruleInstanceCreationExpression= ruleInstanceCreationExpression EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3693:2: iv_ruleInstanceCreationExpression= ruleInstanceCreationExpression EOF
+ {
+ newCompositeNode(grammarAccess.getInstanceCreationExpressionRule());
+ pushFollow(FOLLOW_ruleInstanceCreationExpression_in_entryRuleInstanceCreationExpression7913);
+ iv_ruleInstanceCreationExpression=ruleInstanceCreationExpression();
+
+ state._fsp--;
+
+ current =iv_ruleInstanceCreationExpression;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleInstanceCreationExpression7923);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleInstanceCreationExpression"
+
+
+ // $ANTLR start "ruleInstanceCreationExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3700:1: ruleInstanceCreationExpression returns [EObject current=null] : (otherlv_0= 'new' ( (lv_constructor_1_0= ruleQualifiedNameWithBinding ) ) ( (lv_tuple_2_0= ruleInstanceCreationTuple ) ) ( (lv_suffix_3_0= ruleSuffixExpression ) )? ) ;
+ public final EObject ruleInstanceCreationExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ EObject lv_constructor_1_0 = null;
+
+ EObject lv_tuple_2_0 = null;
+
+ EObject lv_suffix_3_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3703:28: ( (otherlv_0= 'new' ( (lv_constructor_1_0= ruleQualifiedNameWithBinding ) ) ( (lv_tuple_2_0= ruleInstanceCreationTuple ) ) ( (lv_suffix_3_0= ruleSuffixExpression ) )? ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3704:1: (otherlv_0= 'new' ( (lv_constructor_1_0= ruleQualifiedNameWithBinding ) ) ( (lv_tuple_2_0= ruleInstanceCreationTuple ) ) ( (lv_suffix_3_0= ruleSuffixExpression ) )? )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3704:1: (otherlv_0= 'new' ( (lv_constructor_1_0= ruleQualifiedNameWithBinding ) ) ( (lv_tuple_2_0= ruleInstanceCreationTuple ) ) ( (lv_suffix_3_0= ruleSuffixExpression ) )? )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3704:3: otherlv_0= 'new' ( (lv_constructor_1_0= ruleQualifiedNameWithBinding ) ) ( (lv_tuple_2_0= ruleInstanceCreationTuple ) ) ( (lv_suffix_3_0= ruleSuffixExpression ) )?
+ {
+ otherlv_0=(Token)match(input,59,FOLLOW_59_in_ruleInstanceCreationExpression7960);
+
+ newLeafNode(otherlv_0, grammarAccess.getInstanceCreationExpressionAccess().getNewKeyword_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3708:1: ( (lv_constructor_1_0= ruleQualifiedNameWithBinding ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3709:1: (lv_constructor_1_0= ruleQualifiedNameWithBinding )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3709:1: (lv_constructor_1_0= ruleQualifiedNameWithBinding )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3710:3: lv_constructor_1_0= ruleQualifiedNameWithBinding
+ {
+
+ newCompositeNode(grammarAccess.getInstanceCreationExpressionAccess().getConstructorQualifiedNameWithBindingParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_ruleQualifiedNameWithBinding_in_ruleInstanceCreationExpression7981);
+ lv_constructor_1_0=ruleQualifiedNameWithBinding();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getInstanceCreationExpressionRule());
+ }
+ set(
+ current,
+ "constructor",
+ lv_constructor_1_0,
+ "QualifiedNameWithBinding");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3726:2: ( (lv_tuple_2_0= ruleInstanceCreationTuple ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3727:1: (lv_tuple_2_0= ruleInstanceCreationTuple )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3727:1: (lv_tuple_2_0= ruleInstanceCreationTuple )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3728:3: lv_tuple_2_0= ruleInstanceCreationTuple
+ {
+
+ newCompositeNode(grammarAccess.getInstanceCreationExpressionAccess().getTupleInstanceCreationTupleParserRuleCall_2_0());
+
+ pushFollow(FOLLOW_ruleInstanceCreationTuple_in_ruleInstanceCreationExpression8002);
+ lv_tuple_2_0=ruleInstanceCreationTuple();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getInstanceCreationExpressionRule());
+ }
+ set(
+ current,
+ "tuple",
+ lv_tuple_2_0,
+ "InstanceCreationTuple");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3744:2: ( (lv_suffix_3_0= ruleSuffixExpression ) )?
+ int alt59=2;
+ int LA59_0 = input.LA(1);
+
+ if ( (LA59_0==49||LA59_0==52) ) {
+ alt59=1;
+ }
+ switch (alt59) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3745:1: (lv_suffix_3_0= ruleSuffixExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3745:1: (lv_suffix_3_0= ruleSuffixExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3746:3: lv_suffix_3_0= ruleSuffixExpression
+ {
+
+ newCompositeNode(grammarAccess.getInstanceCreationExpressionAccess().getSuffixSuffixExpressionParserRuleCall_3_0());
+
+ pushFollow(FOLLOW_ruleSuffixExpression_in_ruleInstanceCreationExpression8023);
+ lv_suffix_3_0=ruleSuffixExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getInstanceCreationExpressionRule());
+ }
+ set(
+ current,
+ "suffix",
+ lv_suffix_3_0,
+ "SuffixExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleInstanceCreationExpression"
+
+
+ // $ANTLR start "entryRuleInstanceCreationTuple"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3770:1: entryRuleInstanceCreationTuple returns [EObject current=null] : iv_ruleInstanceCreationTuple= ruleInstanceCreationTuple EOF ;
+ public final EObject entryRuleInstanceCreationTuple() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleInstanceCreationTuple = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3771:2: (iv_ruleInstanceCreationTuple= ruleInstanceCreationTuple EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3772:2: iv_ruleInstanceCreationTuple= ruleInstanceCreationTuple EOF
+ {
+ newCompositeNode(grammarAccess.getInstanceCreationTupleRule());
+ pushFollow(FOLLOW_ruleInstanceCreationTuple_in_entryRuleInstanceCreationTuple8060);
+ iv_ruleInstanceCreationTuple=ruleInstanceCreationTuple();
+
+ state._fsp--;
+
+ current =iv_ruleInstanceCreationTuple;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleInstanceCreationTuple8070);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleInstanceCreationTuple"
+
+
+ // $ANTLR start "ruleInstanceCreationTuple"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3779:1: ruleInstanceCreationTuple returns [EObject current=null] : ( () otherlv_1= '(' ( ( (lv_instanceCreationTupleElement_2_0= ruleInstanceCreationTupleElement ) ) (otherlv_3= ',' ( (lv_instanceCreationTupleElement_4_0= ruleInstanceCreationTupleElement ) ) )* )? otherlv_5= ')' ) ;
+ public final EObject ruleInstanceCreationTuple() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ EObject lv_instanceCreationTupleElement_2_0 = null;
+
+ EObject lv_instanceCreationTupleElement_4_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3782:28: ( ( () otherlv_1= '(' ( ( (lv_instanceCreationTupleElement_2_0= ruleInstanceCreationTupleElement ) ) (otherlv_3= ',' ( (lv_instanceCreationTupleElement_4_0= ruleInstanceCreationTupleElement ) ) )* )? otherlv_5= ')' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3783:1: ( () otherlv_1= '(' ( ( (lv_instanceCreationTupleElement_2_0= ruleInstanceCreationTupleElement ) ) (otherlv_3= ',' ( (lv_instanceCreationTupleElement_4_0= ruleInstanceCreationTupleElement ) ) )* )? otherlv_5= ')' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3783:1: ( () otherlv_1= '(' ( ( (lv_instanceCreationTupleElement_2_0= ruleInstanceCreationTupleElement ) ) (otherlv_3= ',' ( (lv_instanceCreationTupleElement_4_0= ruleInstanceCreationTupleElement ) ) )* )? otherlv_5= ')' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3783:2: () otherlv_1= '(' ( ( (lv_instanceCreationTupleElement_2_0= ruleInstanceCreationTupleElement ) ) (otherlv_3= ',' ( (lv_instanceCreationTupleElement_4_0= ruleInstanceCreationTupleElement ) ) )* )? otherlv_5= ')'
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3783:2: ()
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3784:5:
+ {
+
+ current = forceCreateModelElement(
+ grammarAccess.getInstanceCreationTupleAccess().getInstanceCreationTupleAction_0(),
+ current);
+
+
+ }
+
+ otherlv_1=(Token)match(input,24,FOLLOW_24_in_ruleInstanceCreationTuple8116);
+
+ newLeafNode(otherlv_1, grammarAccess.getInstanceCreationTupleAccess().getLeftParenthesisKeyword_1());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3793:1: ( ( (lv_instanceCreationTupleElement_2_0= ruleInstanceCreationTupleElement ) ) (otherlv_3= ',' ( (lv_instanceCreationTupleElement_4_0= ruleInstanceCreationTupleElement ) ) )* )?
+ int alt61=2;
+ int LA61_0 = input.LA(1);
+
+ if ( (LA61_0==RULE_ID) ) {
+ alt61=1;
+ }
+ switch (alt61) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3793:2: ( (lv_instanceCreationTupleElement_2_0= ruleInstanceCreationTupleElement ) ) (otherlv_3= ',' ( (lv_instanceCreationTupleElement_4_0= ruleInstanceCreationTupleElement ) ) )*
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3793:2: ( (lv_instanceCreationTupleElement_2_0= ruleInstanceCreationTupleElement ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3794:1: (lv_instanceCreationTupleElement_2_0= ruleInstanceCreationTupleElement )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3794:1: (lv_instanceCreationTupleElement_2_0= ruleInstanceCreationTupleElement )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3795:3: lv_instanceCreationTupleElement_2_0= ruleInstanceCreationTupleElement
+ {
+
+ newCompositeNode(grammarAccess.getInstanceCreationTupleAccess().getInstanceCreationTupleElementInstanceCreationTupleElementParserRuleCall_2_0_0());
+
+ pushFollow(FOLLOW_ruleInstanceCreationTupleElement_in_ruleInstanceCreationTuple8138);
+ lv_instanceCreationTupleElement_2_0=ruleInstanceCreationTupleElement();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getInstanceCreationTupleRule());
+ }
+ add(
+ current,
+ "instanceCreationTupleElement",
+ lv_instanceCreationTupleElement_2_0,
+ "InstanceCreationTupleElement");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3811:2: (otherlv_3= ',' ( (lv_instanceCreationTupleElement_4_0= ruleInstanceCreationTupleElement ) ) )*
+ loop60:
+ do {
+ int alt60=2;
+ int LA60_0 = input.LA(1);
+
+ if ( (LA60_0==21) ) {
+ alt60=1;
+ }
+
+
+ switch (alt60) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3811:4: otherlv_3= ',' ( (lv_instanceCreationTupleElement_4_0= ruleInstanceCreationTupleElement ) )
+ {
+ otherlv_3=(Token)match(input,21,FOLLOW_21_in_ruleInstanceCreationTuple8151);
+
+ newLeafNode(otherlv_3, grammarAccess.getInstanceCreationTupleAccess().getCommaKeyword_2_1_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3815:1: ( (lv_instanceCreationTupleElement_4_0= ruleInstanceCreationTupleElement ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3816:1: (lv_instanceCreationTupleElement_4_0= ruleInstanceCreationTupleElement )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3816:1: (lv_instanceCreationTupleElement_4_0= ruleInstanceCreationTupleElement )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3817:3: lv_instanceCreationTupleElement_4_0= ruleInstanceCreationTupleElement
+ {
+
+ newCompositeNode(grammarAccess.getInstanceCreationTupleAccess().getInstanceCreationTupleElementInstanceCreationTupleElementParserRuleCall_2_1_1_0());
+
+ pushFollow(FOLLOW_ruleInstanceCreationTupleElement_in_ruleInstanceCreationTuple8172);
+ lv_instanceCreationTupleElement_4_0=ruleInstanceCreationTupleElement();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getInstanceCreationTupleRule());
+ }
+ add(
+ current,
+ "instanceCreationTupleElement",
+ lv_instanceCreationTupleElement_4_0,
+ "InstanceCreationTupleElement");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop60;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+ otherlv_5=(Token)match(input,25,FOLLOW_25_in_ruleInstanceCreationTuple8188);
+
+ newLeafNode(otherlv_5, grammarAccess.getInstanceCreationTupleAccess().getRightParenthesisKeyword_3());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleInstanceCreationTuple"
+
+
+ // $ANTLR start "entryRuleInstanceCreationTupleElement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3845:1: entryRuleInstanceCreationTupleElement returns [EObject current=null] : iv_ruleInstanceCreationTupleElement= ruleInstanceCreationTupleElement EOF ;
+ public final EObject entryRuleInstanceCreationTupleElement() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleInstanceCreationTupleElement = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3846:2: (iv_ruleInstanceCreationTupleElement= ruleInstanceCreationTupleElement EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3847:2: iv_ruleInstanceCreationTupleElement= ruleInstanceCreationTupleElement EOF
+ {
+ newCompositeNode(grammarAccess.getInstanceCreationTupleElementRule());
+ pushFollow(FOLLOW_ruleInstanceCreationTupleElement_in_entryRuleInstanceCreationTupleElement8224);
+ iv_ruleInstanceCreationTupleElement=ruleInstanceCreationTupleElement();
+
+ state._fsp--;
+
+ current =iv_ruleInstanceCreationTupleElement;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleInstanceCreationTupleElement8234);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleInstanceCreationTupleElement"
+
+
+ // $ANTLR start "ruleInstanceCreationTupleElement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3854:1: ruleInstanceCreationTupleElement returns [EObject current=null] : ( ( (lv_role_0_0= RULE_ID ) ) otherlv_1= '=>' ( (lv_object_2_0= ruleExpression ) ) ) ;
+ public final EObject ruleInstanceCreationTupleElement() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_role_0_0=null;
+ Token otherlv_1=null;
+ EObject lv_object_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3857:28: ( ( ( (lv_role_0_0= RULE_ID ) ) otherlv_1= '=>' ( (lv_object_2_0= ruleExpression ) ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3858:1: ( ( (lv_role_0_0= RULE_ID ) ) otherlv_1= '=>' ( (lv_object_2_0= ruleExpression ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3858:1: ( ( (lv_role_0_0= RULE_ID ) ) otherlv_1= '=>' ( (lv_object_2_0= ruleExpression ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3858:2: ( (lv_role_0_0= RULE_ID ) ) otherlv_1= '=>' ( (lv_object_2_0= ruleExpression ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3858:2: ( (lv_role_0_0= RULE_ID ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3859:1: (lv_role_0_0= RULE_ID )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3859:1: (lv_role_0_0= RULE_ID )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3860:3: lv_role_0_0= RULE_ID
+ {
+ lv_role_0_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleInstanceCreationTupleElement8276);
+
+ newLeafNode(lv_role_0_0, grammarAccess.getInstanceCreationTupleElementAccess().getRoleIDTerminalRuleCall_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getInstanceCreationTupleElementRule());
+ }
+ setWithLastConsumed(
+ current,
+ "role",
+ lv_role_0_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+ otherlv_1=(Token)match(input,23,FOLLOW_23_in_ruleInstanceCreationTupleElement8293);
+
+ newLeafNode(otherlv_1, grammarAccess.getInstanceCreationTupleElementAccess().getEqualsSignGreaterThanSignKeyword_1());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3880:1: ( (lv_object_2_0= ruleExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3881:1: (lv_object_2_0= ruleExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3881:1: (lv_object_2_0= ruleExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3882:3: lv_object_2_0= ruleExpression
+ {
+
+ newCompositeNode(grammarAccess.getInstanceCreationTupleElementAccess().getObjectExpressionParserRuleCall_2_0());
+
+ pushFollow(FOLLOW_ruleExpression_in_ruleInstanceCreationTupleElement8314);
+ lv_object_2_0=ruleExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getInstanceCreationTupleElementRule());
+ }
+ set(
+ current,
+ "object",
+ lv_object_2_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleInstanceCreationTupleElement"
+
+
+ // $ANTLR start "entryRuleSequenceConstructionOrAccessCompletion"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3906:1: entryRuleSequenceConstructionOrAccessCompletion returns [EObject current=null] : iv_ruleSequenceConstructionOrAccessCompletion= ruleSequenceConstructionOrAccessCompletion EOF ;
+ public final EObject entryRuleSequenceConstructionOrAccessCompletion() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleSequenceConstructionOrAccessCompletion = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3907:2: (iv_ruleSequenceConstructionOrAccessCompletion= ruleSequenceConstructionOrAccessCompletion EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3908:2: iv_ruleSequenceConstructionOrAccessCompletion= ruleSequenceConstructionOrAccessCompletion EOF
+ {
+ newCompositeNode(grammarAccess.getSequenceConstructionOrAccessCompletionRule());
+ pushFollow(FOLLOW_ruleSequenceConstructionOrAccessCompletion_in_entryRuleSequenceConstructionOrAccessCompletion8350);
+ iv_ruleSequenceConstructionOrAccessCompletion=ruleSequenceConstructionOrAccessCompletion();
+
+ state._fsp--;
+
+ current =iv_ruleSequenceConstructionOrAccessCompletion;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleSequenceConstructionOrAccessCompletion8360);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleSequenceConstructionOrAccessCompletion"
+
+
+ // $ANTLR start "ruleSequenceConstructionOrAccessCompletion"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3915:1: ruleSequenceConstructionOrAccessCompletion returns [EObject current=null] : ( ( ( (lv_multiplicityIndicator_0_0= '[' ) ) ( ( (lv_accessCompletion_1_0= ruleAccessCompletion ) ) | ( (lv_sequenceCompletion_2_0= rulePartialSequenceConstructionCompletion ) ) ) ) | ( (lv_expression_3_0= ruleSequenceConstructionExpression ) ) ) ;
+ public final EObject ruleSequenceConstructionOrAccessCompletion() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_multiplicityIndicator_0_0=null;
+ EObject lv_accessCompletion_1_0 = null;
+
+ EObject lv_sequenceCompletion_2_0 = null;
+
+ EObject lv_expression_3_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3918:28: ( ( ( ( (lv_multiplicityIndicator_0_0= '[' ) ) ( ( (lv_accessCompletion_1_0= ruleAccessCompletion ) ) | ( (lv_sequenceCompletion_2_0= rulePartialSequenceConstructionCompletion ) ) ) ) | ( (lv_expression_3_0= ruleSequenceConstructionExpression ) ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3919:1: ( ( ( (lv_multiplicityIndicator_0_0= '[' ) ) ( ( (lv_accessCompletion_1_0= ruleAccessCompletion ) ) | ( (lv_sequenceCompletion_2_0= rulePartialSequenceConstructionCompletion ) ) ) ) | ( (lv_expression_3_0= ruleSequenceConstructionExpression ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3919:1: ( ( ( (lv_multiplicityIndicator_0_0= '[' ) ) ( ( (lv_accessCompletion_1_0= ruleAccessCompletion ) ) | ( (lv_sequenceCompletion_2_0= rulePartialSequenceConstructionCompletion ) ) ) ) | ( (lv_expression_3_0= ruleSequenceConstructionExpression ) ) )
+ int alt63=2;
+ int LA63_0 = input.LA(1);
+
+ if ( (LA63_0==50) ) {
+ alt63=1;
+ }
+ else if ( (LA63_0==60) ) {
+ alt63=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 63, 0, input);
+
+ throw nvae;
+ }
+ switch (alt63) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3919:2: ( ( (lv_multiplicityIndicator_0_0= '[' ) ) ( ( (lv_accessCompletion_1_0= ruleAccessCompletion ) ) | ( (lv_sequenceCompletion_2_0= rulePartialSequenceConstructionCompletion ) ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3919:2: ( ( (lv_multiplicityIndicator_0_0= '[' ) ) ( ( (lv_accessCompletion_1_0= ruleAccessCompletion ) ) | ( (lv_sequenceCompletion_2_0= rulePartialSequenceConstructionCompletion ) ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3919:3: ( (lv_multiplicityIndicator_0_0= '[' ) ) ( ( (lv_accessCompletion_1_0= ruleAccessCompletion ) ) | ( (lv_sequenceCompletion_2_0= rulePartialSequenceConstructionCompletion ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3919:3: ( (lv_multiplicityIndicator_0_0= '[' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3920:1: (lv_multiplicityIndicator_0_0= '[' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3920:1: (lv_multiplicityIndicator_0_0= '[' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3921:3: lv_multiplicityIndicator_0_0= '['
+ {
+ lv_multiplicityIndicator_0_0=(Token)match(input,50,FOLLOW_50_in_ruleSequenceConstructionOrAccessCompletion8404);
+
+ newLeafNode(lv_multiplicityIndicator_0_0, grammarAccess.getSequenceConstructionOrAccessCompletionAccess().getMultiplicityIndicatorLeftSquareBracketKeyword_0_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getSequenceConstructionOrAccessCompletionRule());
+ }
+ setWithLastConsumed(current, "multiplicityIndicator", true, "[");
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3934:2: ( ( (lv_accessCompletion_1_0= ruleAccessCompletion ) ) | ( (lv_sequenceCompletion_2_0= rulePartialSequenceConstructionCompletion ) ) )
+ int alt62=2;
+ int LA62_0 = input.LA(1);
+
+ if ( ((LA62_0>=RULE_INTEGERVALUE && LA62_0<=RULE_ID)||(LA62_0>=16 && LA62_0<=18)||LA62_0==24||(LA62_0>=42 && LA62_0<=43)||(LA62_0>=46 && LA62_0<=48)||(LA62_0>=56 && LA62_0<=59)||(LA62_0>=87 && LA62_0<=88)) ) {
+ alt62=1;
+ }
+ else if ( (LA62_0==51) ) {
+ alt62=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 62, 0, input);
+
+ throw nvae;
+ }
+ switch (alt62) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3934:3: ( (lv_accessCompletion_1_0= ruleAccessCompletion ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3934:3: ( (lv_accessCompletion_1_0= ruleAccessCompletion ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3935:1: (lv_accessCompletion_1_0= ruleAccessCompletion )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3935:1: (lv_accessCompletion_1_0= ruleAccessCompletion )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3936:3: lv_accessCompletion_1_0= ruleAccessCompletion
+ {
+
+ newCompositeNode(grammarAccess.getSequenceConstructionOrAccessCompletionAccess().getAccessCompletionAccessCompletionParserRuleCall_0_1_0_0());
+
+ pushFollow(FOLLOW_ruleAccessCompletion_in_ruleSequenceConstructionOrAccessCompletion8439);
+ lv_accessCompletion_1_0=ruleAccessCompletion();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSequenceConstructionOrAccessCompletionRule());
+ }
+ set(
+ current,
+ "accessCompletion",
+ lv_accessCompletion_1_0,
+ "AccessCompletion");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3953:6: ( (lv_sequenceCompletion_2_0= rulePartialSequenceConstructionCompletion ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3953:6: ( (lv_sequenceCompletion_2_0= rulePartialSequenceConstructionCompletion ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3954:1: (lv_sequenceCompletion_2_0= rulePartialSequenceConstructionCompletion )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3954:1: (lv_sequenceCompletion_2_0= rulePartialSequenceConstructionCompletion )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3955:3: lv_sequenceCompletion_2_0= rulePartialSequenceConstructionCompletion
+ {
+
+ newCompositeNode(grammarAccess.getSequenceConstructionOrAccessCompletionAccess().getSequenceCompletionPartialSequenceConstructionCompletionParserRuleCall_0_1_1_0());
+
+ pushFollow(FOLLOW_rulePartialSequenceConstructionCompletion_in_ruleSequenceConstructionOrAccessCompletion8466);
+ lv_sequenceCompletion_2_0=rulePartialSequenceConstructionCompletion();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSequenceConstructionOrAccessCompletionRule());
+ }
+ set(
+ current,
+ "sequenceCompletion",
+ lv_sequenceCompletion_2_0,
+ "PartialSequenceConstructionCompletion");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3972:6: ( (lv_expression_3_0= ruleSequenceConstructionExpression ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3972:6: ( (lv_expression_3_0= ruleSequenceConstructionExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3973:1: (lv_expression_3_0= ruleSequenceConstructionExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3973:1: (lv_expression_3_0= ruleSequenceConstructionExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3974:3: lv_expression_3_0= ruleSequenceConstructionExpression
+ {
+
+ newCompositeNode(grammarAccess.getSequenceConstructionOrAccessCompletionAccess().getExpressionSequenceConstructionExpressionParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_ruleSequenceConstructionExpression_in_ruleSequenceConstructionOrAccessCompletion8495);
+ lv_expression_3_0=ruleSequenceConstructionExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSequenceConstructionOrAccessCompletionRule());
+ }
+ set(
+ current,
+ "expression",
+ lv_expression_3_0,
+ "SequenceConstructionExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleSequenceConstructionOrAccessCompletion"
+
+
+ // $ANTLR start "entryRuleAccessCompletion"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3998:1: entryRuleAccessCompletion returns [EObject current=null] : iv_ruleAccessCompletion= ruleAccessCompletion EOF ;
+ public final EObject entryRuleAccessCompletion() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleAccessCompletion = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:3999:2: (iv_ruleAccessCompletion= ruleAccessCompletion EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4000:2: iv_ruleAccessCompletion= ruleAccessCompletion EOF
+ {
+ newCompositeNode(grammarAccess.getAccessCompletionRule());
+ pushFollow(FOLLOW_ruleAccessCompletion_in_entryRuleAccessCompletion8531);
+ iv_ruleAccessCompletion=ruleAccessCompletion();
+
+ state._fsp--;
+
+ current =iv_ruleAccessCompletion;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleAccessCompletion8541);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleAccessCompletion"
+
+
+ // $ANTLR start "ruleAccessCompletion"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4007:1: ruleAccessCompletion returns [EObject current=null] : ( ( (lv_accessIndex_0_0= ruleExpression ) ) otherlv_1= ']' ) ;
+ public final EObject ruleAccessCompletion() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ EObject lv_accessIndex_0_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4010:28: ( ( ( (lv_accessIndex_0_0= ruleExpression ) ) otherlv_1= ']' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4011:1: ( ( (lv_accessIndex_0_0= ruleExpression ) ) otherlv_1= ']' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4011:1: ( ( (lv_accessIndex_0_0= ruleExpression ) ) otherlv_1= ']' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4011:2: ( (lv_accessIndex_0_0= ruleExpression ) ) otherlv_1= ']'
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4011:2: ( (lv_accessIndex_0_0= ruleExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4012:1: (lv_accessIndex_0_0= ruleExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4012:1: (lv_accessIndex_0_0= ruleExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4013:3: lv_accessIndex_0_0= ruleExpression
+ {
+
+ newCompositeNode(grammarAccess.getAccessCompletionAccess().getAccessIndexExpressionParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_ruleExpression_in_ruleAccessCompletion8587);
+ lv_accessIndex_0_0=ruleExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getAccessCompletionRule());
+ }
+ set(
+ current,
+ "accessIndex",
+ lv_accessIndex_0_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_1=(Token)match(input,51,FOLLOW_51_in_ruleAccessCompletion8599);
+
+ newLeafNode(otherlv_1, grammarAccess.getAccessCompletionAccess().getRightSquareBracketKeyword_1());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleAccessCompletion"
+
+
+ // $ANTLR start "entryRulePartialSequenceConstructionCompletion"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4041:1: entryRulePartialSequenceConstructionCompletion returns [EObject current=null] : iv_rulePartialSequenceConstructionCompletion= rulePartialSequenceConstructionCompletion EOF ;
+ public final EObject entryRulePartialSequenceConstructionCompletion() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_rulePartialSequenceConstructionCompletion = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4042:2: (iv_rulePartialSequenceConstructionCompletion= rulePartialSequenceConstructionCompletion EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4043:2: iv_rulePartialSequenceConstructionCompletion= rulePartialSequenceConstructionCompletion EOF
+ {
+ newCompositeNode(grammarAccess.getPartialSequenceConstructionCompletionRule());
+ pushFollow(FOLLOW_rulePartialSequenceConstructionCompletion_in_entryRulePartialSequenceConstructionCompletion8635);
+ iv_rulePartialSequenceConstructionCompletion=rulePartialSequenceConstructionCompletion();
+
+ state._fsp--;
+
+ current =iv_rulePartialSequenceConstructionCompletion;
+ match(input,EOF,FOLLOW_EOF_in_entryRulePartialSequenceConstructionCompletion8645);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRulePartialSequenceConstructionCompletion"
+
+
+ // $ANTLR start "rulePartialSequenceConstructionCompletion"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4050:1: rulePartialSequenceConstructionCompletion returns [EObject current=null] : (otherlv_0= ']' ( (lv_expression_1_0= ruleSequenceConstructionExpression ) ) ) ;
+ public final EObject rulePartialSequenceConstructionCompletion() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ EObject lv_expression_1_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4053:28: ( (otherlv_0= ']' ( (lv_expression_1_0= ruleSequenceConstructionExpression ) ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4054:1: (otherlv_0= ']' ( (lv_expression_1_0= ruleSequenceConstructionExpression ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4054:1: (otherlv_0= ']' ( (lv_expression_1_0= ruleSequenceConstructionExpression ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4054:3: otherlv_0= ']' ( (lv_expression_1_0= ruleSequenceConstructionExpression ) )
+ {
+ otherlv_0=(Token)match(input,51,FOLLOW_51_in_rulePartialSequenceConstructionCompletion8682);
+
+ newLeafNode(otherlv_0, grammarAccess.getPartialSequenceConstructionCompletionAccess().getRightSquareBracketKeyword_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4058:1: ( (lv_expression_1_0= ruleSequenceConstructionExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4059:1: (lv_expression_1_0= ruleSequenceConstructionExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4059:1: (lv_expression_1_0= ruleSequenceConstructionExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4060:3: lv_expression_1_0= ruleSequenceConstructionExpression
+ {
+
+ newCompositeNode(grammarAccess.getPartialSequenceConstructionCompletionAccess().getExpressionSequenceConstructionExpressionParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_ruleSequenceConstructionExpression_in_rulePartialSequenceConstructionCompletion8703);
+ lv_expression_1_0=ruleSequenceConstructionExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getPartialSequenceConstructionCompletionRule());
+ }
+ set(
+ current,
+ "expression",
+ lv_expression_1_0,
+ "SequenceConstructionExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "rulePartialSequenceConstructionCompletion"
+
+
+ // $ANTLR start "entryRuleSequenceConstructionExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4084:1: entryRuleSequenceConstructionExpression returns [EObject current=null] : iv_ruleSequenceConstructionExpression= ruleSequenceConstructionExpression EOF ;
+ public final EObject entryRuleSequenceConstructionExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleSequenceConstructionExpression = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4085:2: (iv_ruleSequenceConstructionExpression= ruleSequenceConstructionExpression EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4086:2: iv_ruleSequenceConstructionExpression= ruleSequenceConstructionExpression EOF
+ {
+ newCompositeNode(grammarAccess.getSequenceConstructionExpressionRule());
+ pushFollow(FOLLOW_ruleSequenceConstructionExpression_in_entryRuleSequenceConstructionExpression8739);
+ iv_ruleSequenceConstructionExpression=ruleSequenceConstructionExpression();
+
+ state._fsp--;
+
+ current =iv_ruleSequenceConstructionExpression;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleSequenceConstructionExpression8749);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleSequenceConstructionExpression"
+
+
+ // $ANTLR start "ruleSequenceConstructionExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4093:1: ruleSequenceConstructionExpression returns [EObject current=null] : (otherlv_0= '{' ( (lv_sequenceElement_1_0= ruleSequenceElement ) ) ( (otherlv_2= ',' ( (lv_sequenceElement_3_0= ruleSequenceElement ) ) )* | (otherlv_4= '..' ( (lv_rangeUpper_5_0= ruleExpression ) ) ) ) otherlv_6= '}' ) ;
+ public final EObject ruleSequenceConstructionExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_2=null;
+ Token otherlv_4=null;
+ Token otherlv_6=null;
+ EObject lv_sequenceElement_1_0 = null;
+
+ EObject lv_sequenceElement_3_0 = null;
+
+ EObject lv_rangeUpper_5_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4096:28: ( (otherlv_0= '{' ( (lv_sequenceElement_1_0= ruleSequenceElement ) ) ( (otherlv_2= ',' ( (lv_sequenceElement_3_0= ruleSequenceElement ) ) )* | (otherlv_4= '..' ( (lv_rangeUpper_5_0= ruleExpression ) ) ) ) otherlv_6= '}' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4097:1: (otherlv_0= '{' ( (lv_sequenceElement_1_0= ruleSequenceElement ) ) ( (otherlv_2= ',' ( (lv_sequenceElement_3_0= ruleSequenceElement ) ) )* | (otherlv_4= '..' ( (lv_rangeUpper_5_0= ruleExpression ) ) ) ) otherlv_6= '}' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4097:1: (otherlv_0= '{' ( (lv_sequenceElement_1_0= ruleSequenceElement ) ) ( (otherlv_2= ',' ( (lv_sequenceElement_3_0= ruleSequenceElement ) ) )* | (otherlv_4= '..' ( (lv_rangeUpper_5_0= ruleExpression ) ) ) ) otherlv_6= '}' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4097:3: otherlv_0= '{' ( (lv_sequenceElement_1_0= ruleSequenceElement ) ) ( (otherlv_2= ',' ( (lv_sequenceElement_3_0= ruleSequenceElement ) ) )* | (otherlv_4= '..' ( (lv_rangeUpper_5_0= ruleExpression ) ) ) ) otherlv_6= '}'
+ {
+ otherlv_0=(Token)match(input,60,FOLLOW_60_in_ruleSequenceConstructionExpression8786);
+
+ newLeafNode(otherlv_0, grammarAccess.getSequenceConstructionExpressionAccess().getLeftCurlyBracketKeyword_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4101:1: ( (lv_sequenceElement_1_0= ruleSequenceElement ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4102:1: (lv_sequenceElement_1_0= ruleSequenceElement )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4102:1: (lv_sequenceElement_1_0= ruleSequenceElement )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4103:3: lv_sequenceElement_1_0= ruleSequenceElement
+ {
+
+ newCompositeNode(grammarAccess.getSequenceConstructionExpressionAccess().getSequenceElementSequenceElementParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_ruleSequenceElement_in_ruleSequenceConstructionExpression8807);
+ lv_sequenceElement_1_0=ruleSequenceElement();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSequenceConstructionExpressionRule());
+ }
+ add(
+ current,
+ "sequenceElement",
+ lv_sequenceElement_1_0,
+ "SequenceElement");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4119:2: ( (otherlv_2= ',' ( (lv_sequenceElement_3_0= ruleSequenceElement ) ) )* | (otherlv_4= '..' ( (lv_rangeUpper_5_0= ruleExpression ) ) ) )
+ int alt65=2;
+ int LA65_0 = input.LA(1);
+
+ if ( (LA65_0==21||LA65_0==62) ) {
+ alt65=1;
+ }
+ else if ( (LA65_0==61) ) {
+ alt65=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 65, 0, input);
+
+ throw nvae;
+ }
+ switch (alt65) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4119:3: (otherlv_2= ',' ( (lv_sequenceElement_3_0= ruleSequenceElement ) ) )*
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4119:3: (otherlv_2= ',' ( (lv_sequenceElement_3_0= ruleSequenceElement ) ) )*
+ loop64:
+ do {
+ int alt64=2;
+ int LA64_0 = input.LA(1);
+
+ if ( (LA64_0==21) ) {
+ alt64=1;
+ }
+
+
+ switch (alt64) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4119:5: otherlv_2= ',' ( (lv_sequenceElement_3_0= ruleSequenceElement ) )
+ {
+ otherlv_2=(Token)match(input,21,FOLLOW_21_in_ruleSequenceConstructionExpression8821);
+
+ newLeafNode(otherlv_2, grammarAccess.getSequenceConstructionExpressionAccess().getCommaKeyword_2_0_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4123:1: ( (lv_sequenceElement_3_0= ruleSequenceElement ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4124:1: (lv_sequenceElement_3_0= ruleSequenceElement )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4124:1: (lv_sequenceElement_3_0= ruleSequenceElement )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4125:3: lv_sequenceElement_3_0= ruleSequenceElement
+ {
+
+ newCompositeNode(grammarAccess.getSequenceConstructionExpressionAccess().getSequenceElementSequenceElementParserRuleCall_2_0_1_0());
+
+ pushFollow(FOLLOW_ruleSequenceElement_in_ruleSequenceConstructionExpression8842);
+ lv_sequenceElement_3_0=ruleSequenceElement();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSequenceConstructionExpressionRule());
+ }
+ add(
+ current,
+ "sequenceElement",
+ lv_sequenceElement_3_0,
+ "SequenceElement");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop64;
+ }
+ } while (true);
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4142:6: (otherlv_4= '..' ( (lv_rangeUpper_5_0= ruleExpression ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4142:6: (otherlv_4= '..' ( (lv_rangeUpper_5_0= ruleExpression ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4142:8: otherlv_4= '..' ( (lv_rangeUpper_5_0= ruleExpression ) )
+ {
+ otherlv_4=(Token)match(input,61,FOLLOW_61_in_ruleSequenceConstructionExpression8863);
+
+ newLeafNode(otherlv_4, grammarAccess.getSequenceConstructionExpressionAccess().getFullStopFullStopKeyword_2_1_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4146:1: ( (lv_rangeUpper_5_0= ruleExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4147:1: (lv_rangeUpper_5_0= ruleExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4147:1: (lv_rangeUpper_5_0= ruleExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4148:3: lv_rangeUpper_5_0= ruleExpression
+ {
+
+ newCompositeNode(grammarAccess.getSequenceConstructionExpressionAccess().getRangeUpperExpressionParserRuleCall_2_1_1_0());
+
+ pushFollow(FOLLOW_ruleExpression_in_ruleSequenceConstructionExpression8884);
+ lv_rangeUpper_5_0=ruleExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSequenceConstructionExpressionRule());
+ }
+ set(
+ current,
+ "rangeUpper",
+ lv_rangeUpper_5_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ otherlv_6=(Token)match(input,62,FOLLOW_62_in_ruleSequenceConstructionExpression8898);
+
+ newLeafNode(otherlv_6, grammarAccess.getSequenceConstructionExpressionAccess().getRightCurlyBracketKeyword_3());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleSequenceConstructionExpression"
+
+
+ // $ANTLR start "entryRuleSequenceElement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4176:1: entryRuleSequenceElement returns [EObject current=null] : iv_ruleSequenceElement= ruleSequenceElement EOF ;
+ public final EObject entryRuleSequenceElement() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleSequenceElement = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4177:2: (iv_ruleSequenceElement= ruleSequenceElement EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4178:2: iv_ruleSequenceElement= ruleSequenceElement EOF
+ {
+ newCompositeNode(grammarAccess.getSequenceElementRule());
+ pushFollow(FOLLOW_ruleSequenceElement_in_entryRuleSequenceElement8934);
+ iv_ruleSequenceElement=ruleSequenceElement();
+
+ state._fsp--;
+
+ current =iv_ruleSequenceElement;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleSequenceElement8944);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleSequenceElement"
+
+
+ // $ANTLR start "ruleSequenceElement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4185:1: ruleSequenceElement returns [EObject current=null] : (this_Expression_0= ruleExpression | this_SequenceConstructionExpression_1= ruleSequenceConstructionExpression ) ;
+ public final EObject ruleSequenceElement() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_Expression_0 = null;
+
+ EObject this_SequenceConstructionExpression_1 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4188:28: ( (this_Expression_0= ruleExpression | this_SequenceConstructionExpression_1= ruleSequenceConstructionExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4189:1: (this_Expression_0= ruleExpression | this_SequenceConstructionExpression_1= ruleSequenceConstructionExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4189:1: (this_Expression_0= ruleExpression | this_SequenceConstructionExpression_1= ruleSequenceConstructionExpression )
+ int alt66=2;
+ int LA66_0 = input.LA(1);
+
+ if ( ((LA66_0>=RULE_INTEGERVALUE && LA66_0<=RULE_ID)||(LA66_0>=16 && LA66_0<=18)||LA66_0==24||(LA66_0>=42 && LA66_0<=43)||(LA66_0>=46 && LA66_0<=48)||(LA66_0>=56 && LA66_0<=59)||(LA66_0>=87 && LA66_0<=88)) ) {
+ alt66=1;
+ }
+ else if ( (LA66_0==60) ) {
+ alt66=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 66, 0, input);
+
+ throw nvae;
+ }
+ switch (alt66) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4190:5: this_Expression_0= ruleExpression
+ {
+
+ newCompositeNode(grammarAccess.getSequenceElementAccess().getExpressionParserRuleCall_0());
+
+ pushFollow(FOLLOW_ruleExpression_in_ruleSequenceElement8991);
+ this_Expression_0=ruleExpression();
+
+ state._fsp--;
+
+
+ current = this_Expression_0;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4200:5: this_SequenceConstructionExpression_1= ruleSequenceConstructionExpression
+ {
+
+ newCompositeNode(grammarAccess.getSequenceElementAccess().getSequenceConstructionExpressionParserRuleCall_1());
+
+ pushFollow(FOLLOW_ruleSequenceConstructionExpression_in_ruleSequenceElement9018);
+ this_SequenceConstructionExpression_1=ruleSequenceConstructionExpression();
+
+ state._fsp--;
+
+
+ current = this_SequenceConstructionExpression_1;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleSequenceElement"
+
+
+ // $ANTLR start "entryRuleClassExtentExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4216:1: entryRuleClassExtentExpression returns [EObject current=null] : iv_ruleClassExtentExpression= ruleClassExtentExpression EOF ;
+ public final EObject entryRuleClassExtentExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleClassExtentExpression = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4217:2: (iv_ruleClassExtentExpression= ruleClassExtentExpression EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4218:2: iv_ruleClassExtentExpression= ruleClassExtentExpression EOF
+ {
+ newCompositeNode(grammarAccess.getClassExtentExpressionRule());
+ pushFollow(FOLLOW_ruleClassExtentExpression_in_entryRuleClassExtentExpression9053);
+ iv_ruleClassExtentExpression=ruleClassExtentExpression();
+
+ state._fsp--;
+
+ current =iv_ruleClassExtentExpression;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleClassExtentExpression9063);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleClassExtentExpression"
+
+
+ // $ANTLR start "ruleClassExtentExpression"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4225:1: ruleClassExtentExpression returns [EObject current=null] : ( () otherlv_1= '.' otherlv_2= 'allInstances' otherlv_3= '(' otherlv_4= ')' ) ;
+ public final EObject ruleClassExtentExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ Token otherlv_3=null;
+ Token otherlv_4=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4228:28: ( ( () otherlv_1= '.' otherlv_2= 'allInstances' otherlv_3= '(' otherlv_4= ')' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4229:1: ( () otherlv_1= '.' otherlv_2= 'allInstances' otherlv_3= '(' otherlv_4= ')' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4229:1: ( () otherlv_1= '.' otherlv_2= 'allInstances' otherlv_3= '(' otherlv_4= ')' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4229:2: () otherlv_1= '.' otherlv_2= 'allInstances' otherlv_3= '(' otherlv_4= ')'
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4229:2: ()
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4230:5:
+ {
+
+ current = forceCreateModelElement(
+ grammarAccess.getClassExtentExpressionAccess().getClassExtentExpressionAction_0(),
+ current);
+
+
+ }
+
+ otherlv_1=(Token)match(input,49,FOLLOW_49_in_ruleClassExtentExpression9109);
+
+ newLeafNode(otherlv_1, grammarAccess.getClassExtentExpressionAccess().getFullStopKeyword_1());
+
+ otherlv_2=(Token)match(input,63,FOLLOW_63_in_ruleClassExtentExpression9121);
+
+ newLeafNode(otherlv_2, grammarAccess.getClassExtentExpressionAccess().getAllInstancesKeyword_2());
+
+ otherlv_3=(Token)match(input,24,FOLLOW_24_in_ruleClassExtentExpression9133);
+
+ newLeafNode(otherlv_3, grammarAccess.getClassExtentExpressionAccess().getLeftParenthesisKeyword_3());
+
+ otherlv_4=(Token)match(input,25,FOLLOW_25_in_ruleClassExtentExpression9145);
+
+ newLeafNode(otherlv_4, grammarAccess.getClassExtentExpressionAccess().getRightParenthesisKeyword_4());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleClassExtentExpression"
+
+
+ // $ANTLR start "entryRuleBlock"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4259:1: entryRuleBlock returns [EObject current=null] : iv_ruleBlock= ruleBlock EOF ;
+ public final EObject entryRuleBlock() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleBlock = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4260:2: (iv_ruleBlock= ruleBlock EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4261:2: iv_ruleBlock= ruleBlock EOF
+ {
+ newCompositeNode(grammarAccess.getBlockRule());
+ pushFollow(FOLLOW_ruleBlock_in_entryRuleBlock9181);
+ iv_ruleBlock=ruleBlock();
+
+ state._fsp--;
+
+ current =iv_ruleBlock;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleBlock9191);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleBlock"
+
+
+ // $ANTLR start "ruleBlock"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4268:1: ruleBlock returns [EObject current=null] : (otherlv_0= '{' () ( (lv_sequence_2_0= ruleStatementSequence ) )? otherlv_3= '}' ) ;
+ public final EObject ruleBlock() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_3=null;
+ EObject lv_sequence_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4271:28: ( (otherlv_0= '{' () ( (lv_sequence_2_0= ruleStatementSequence ) )? otherlv_3= '}' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4272:1: (otherlv_0= '{' () ( (lv_sequence_2_0= ruleStatementSequence ) )? otherlv_3= '}' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4272:1: (otherlv_0= '{' () ( (lv_sequence_2_0= ruleStatementSequence ) )? otherlv_3= '}' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4272:3: otherlv_0= '{' () ( (lv_sequence_2_0= ruleStatementSequence ) )? otherlv_3= '}'
+ {
+ otherlv_0=(Token)match(input,60,FOLLOW_60_in_ruleBlock9228);
+
+ newLeafNode(otherlv_0, grammarAccess.getBlockAccess().getLeftCurlyBracketKeyword_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4276:1: ()
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4277:5:
+ {
+
+ current = forceCreateModelElement(
+ grammarAccess.getBlockAccess().getBlockAction_1(),
+ current);
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4282:2: ( (lv_sequence_2_0= ruleStatementSequence ) )?
+ int alt67=2;
+ int LA67_0 = input.LA(1);
+
+ if ( ((LA67_0>=RULE_ID && LA67_0<=RULE_SL_COMMENT)||(LA67_0>=17 && LA67_0<=18)||(LA67_0>=57 && LA67_0<=60)||LA67_0==64||(LA67_0>=67 && LA67_0<=69)||LA67_0==71||LA67_0==74||(LA67_0>=77 && LA67_0<=79)||(LA67_0>=81 && LA67_0<=84)) ) {
+ alt67=1;
+ }
+ switch (alt67) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4283:1: (lv_sequence_2_0= ruleStatementSequence )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4283:1: (lv_sequence_2_0= ruleStatementSequence )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4284:3: lv_sequence_2_0= ruleStatementSequence
+ {
+
+ newCompositeNode(grammarAccess.getBlockAccess().getSequenceStatementSequenceParserRuleCall_2_0());
+
+ pushFollow(FOLLOW_ruleStatementSequence_in_ruleBlock9258);
+ lv_sequence_2_0=ruleStatementSequence();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getBlockRule());
+ }
+ set(
+ current,
+ "sequence",
+ lv_sequence_2_0,
+ "StatementSequence");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ otherlv_3=(Token)match(input,62,FOLLOW_62_in_ruleBlock9271);
+
+ newLeafNode(otherlv_3, grammarAccess.getBlockAccess().getRightCurlyBracketKeyword_3());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleBlock"
+
+
+ // $ANTLR start "entryRuleStatementSequence"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4312:1: entryRuleStatementSequence returns [EObject current=null] : iv_ruleStatementSequence= ruleStatementSequence EOF ;
+ public final EObject entryRuleStatementSequence() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleStatementSequence = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4313:2: (iv_ruleStatementSequence= ruleStatementSequence EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4314:2: iv_ruleStatementSequence= ruleStatementSequence EOF
+ {
+ newCompositeNode(grammarAccess.getStatementSequenceRule());
+ pushFollow(FOLLOW_ruleStatementSequence_in_entryRuleStatementSequence9307);
+ iv_ruleStatementSequence=ruleStatementSequence();
+
+ state._fsp--;
+
+ current =iv_ruleStatementSequence;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleStatementSequence9317);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleStatementSequence"
+
+
+ // $ANTLR start "ruleStatementSequence"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4321:1: ruleStatementSequence returns [EObject current=null] : ( (lv_statements_0_0= ruleDocumentedStatement ) )+ ;
+ public final EObject ruleStatementSequence() throws RecognitionException {
+ EObject current = null;
+
+ EObject lv_statements_0_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4324:28: ( ( (lv_statements_0_0= ruleDocumentedStatement ) )+ )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4325:1: ( (lv_statements_0_0= ruleDocumentedStatement ) )+
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4325:1: ( (lv_statements_0_0= ruleDocumentedStatement ) )+
+ int cnt68=0;
+ loop68:
+ do {
+ int alt68=2;
+ int LA68_0 = input.LA(1);
+
+ if ( ((LA68_0>=RULE_ID && LA68_0<=RULE_SL_COMMENT)||(LA68_0>=17 && LA68_0<=18)||(LA68_0>=57 && LA68_0<=60)||LA68_0==64||(LA68_0>=67 && LA68_0<=69)||LA68_0==71||LA68_0==74||(LA68_0>=77 && LA68_0<=79)||(LA68_0>=81 && LA68_0<=84)) ) {
+ alt68=1;
+ }
+
+
+ switch (alt68) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4326:1: (lv_statements_0_0= ruleDocumentedStatement )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4326:1: (lv_statements_0_0= ruleDocumentedStatement )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4327:3: lv_statements_0_0= ruleDocumentedStatement
+ {
+
+ newCompositeNode(grammarAccess.getStatementSequenceAccess().getStatementsDocumentedStatementParserRuleCall_0());
+
+ pushFollow(FOLLOW_ruleDocumentedStatement_in_ruleStatementSequence9362);
+ lv_statements_0_0=ruleDocumentedStatement();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getStatementSequenceRule());
+ }
+ add(
+ current,
+ "statements",
+ lv_statements_0_0,
+ "DocumentedStatement");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ if ( cnt68 >= 1 ) break loop68;
+ EarlyExitException eee =
+ new EarlyExitException(68, input);
+ throw eee;
+ }
+ cnt68++;
+ } while (true);
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleStatementSequence"
+
+
+ // $ANTLR start "entryRuleDocumentedStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4351:1: entryRuleDocumentedStatement returns [EObject current=null] : iv_ruleDocumentedStatement= ruleDocumentedStatement EOF ;
+ public final EObject entryRuleDocumentedStatement() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleDocumentedStatement = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4352:2: (iv_ruleDocumentedStatement= ruleDocumentedStatement EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4353:2: iv_ruleDocumentedStatement= ruleDocumentedStatement EOF
+ {
+ newCompositeNode(grammarAccess.getDocumentedStatementRule());
+ pushFollow(FOLLOW_ruleDocumentedStatement_in_entryRuleDocumentedStatement9398);
+ iv_ruleDocumentedStatement=ruleDocumentedStatement();
+
+ state._fsp--;
+
+ current =iv_ruleDocumentedStatement;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleDocumentedStatement9408);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleDocumentedStatement"
+
+
+ // $ANTLR start "ruleDocumentedStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4360:1: ruleDocumentedStatement returns [EObject current=null] : ( ( ( (lv_comment_0_1= RULE_ML_COMMENT | lv_comment_0_2= RULE_SL_COMMENT ) ) )? ( (lv_statement_1_0= ruleStatement ) ) ) ;
+ public final EObject ruleDocumentedStatement() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_comment_0_1=null;
+ Token lv_comment_0_2=null;
+ EObject lv_statement_1_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4363:28: ( ( ( ( (lv_comment_0_1= RULE_ML_COMMENT | lv_comment_0_2= RULE_SL_COMMENT ) ) )? ( (lv_statement_1_0= ruleStatement ) ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4364:1: ( ( ( (lv_comment_0_1= RULE_ML_COMMENT | lv_comment_0_2= RULE_SL_COMMENT ) ) )? ( (lv_statement_1_0= ruleStatement ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4364:1: ( ( ( (lv_comment_0_1= RULE_ML_COMMENT | lv_comment_0_2= RULE_SL_COMMENT ) ) )? ( (lv_statement_1_0= ruleStatement ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4364:2: ( ( (lv_comment_0_1= RULE_ML_COMMENT | lv_comment_0_2= RULE_SL_COMMENT ) ) )? ( (lv_statement_1_0= ruleStatement ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4364:2: ( ( (lv_comment_0_1= RULE_ML_COMMENT | lv_comment_0_2= RULE_SL_COMMENT ) ) )?
+ int alt70=2;
+ int LA70_0 = input.LA(1);
+
+ if ( ((LA70_0>=RULE_ML_COMMENT && LA70_0<=RULE_SL_COMMENT)) ) {
+ alt70=1;
+ }
+ switch (alt70) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4365:1: ( (lv_comment_0_1= RULE_ML_COMMENT | lv_comment_0_2= RULE_SL_COMMENT ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4365:1: ( (lv_comment_0_1= RULE_ML_COMMENT | lv_comment_0_2= RULE_SL_COMMENT ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4366:1: (lv_comment_0_1= RULE_ML_COMMENT | lv_comment_0_2= RULE_SL_COMMENT )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4366:1: (lv_comment_0_1= RULE_ML_COMMENT | lv_comment_0_2= RULE_SL_COMMENT )
+ int alt69=2;
+ int LA69_0 = input.LA(1);
+
+ if ( (LA69_0==RULE_ML_COMMENT) ) {
+ alt69=1;
+ }
+ else if ( (LA69_0==RULE_SL_COMMENT) ) {
+ alt69=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 69, 0, input);
+
+ throw nvae;
+ }
+ switch (alt69) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4367:3: lv_comment_0_1= RULE_ML_COMMENT
+ {
+ lv_comment_0_1=(Token)match(input,RULE_ML_COMMENT,FOLLOW_RULE_ML_COMMENT_in_ruleDocumentedStatement9452);
+
+ newLeafNode(lv_comment_0_1, grammarAccess.getDocumentedStatementAccess().getCommentML_COMMENTTerminalRuleCall_0_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getDocumentedStatementRule());
+ }
+ setWithLastConsumed(
+ current,
+ "comment",
+ lv_comment_0_1,
+ "ML_COMMENT");
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4382:8: lv_comment_0_2= RULE_SL_COMMENT
+ {
+ lv_comment_0_2=(Token)match(input,RULE_SL_COMMENT,FOLLOW_RULE_SL_COMMENT_in_ruleDocumentedStatement9472);
+
+ newLeafNode(lv_comment_0_2, grammarAccess.getDocumentedStatementAccess().getCommentSL_COMMENTTerminalRuleCall_0_0_1());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getDocumentedStatementRule());
+ }
+ setWithLastConsumed(
+ current,
+ "comment",
+ lv_comment_0_2,
+ "SL_COMMENT");
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4400:3: ( (lv_statement_1_0= ruleStatement ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4401:1: (lv_statement_1_0= ruleStatement )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4401:1: (lv_statement_1_0= ruleStatement )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4402:3: lv_statement_1_0= ruleStatement
+ {
+
+ newCompositeNode(grammarAccess.getDocumentedStatementAccess().getStatementStatementParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_ruleStatement_in_ruleDocumentedStatement9502);
+ lv_statement_1_0=ruleStatement();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getDocumentedStatementRule());
+ }
+ set(
+ current,
+ "statement",
+ lv_statement_1_0,
+ "Statement");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleDocumentedStatement"
+
+
+ // $ANTLR start "entryRuleInlineStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4426:1: entryRuleInlineStatement returns [EObject current=null] : iv_ruleInlineStatement= ruleInlineStatement EOF ;
+ public final EObject entryRuleInlineStatement() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleInlineStatement = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4427:2: (iv_ruleInlineStatement= ruleInlineStatement EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4428:2: iv_ruleInlineStatement= ruleInlineStatement EOF
+ {
+ newCompositeNode(grammarAccess.getInlineStatementRule());
+ pushFollow(FOLLOW_ruleInlineStatement_in_entryRuleInlineStatement9538);
+ iv_ruleInlineStatement=ruleInlineStatement();
+
+ state._fsp--;
+
+ current =iv_ruleInlineStatement;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleInlineStatement9548);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleInlineStatement"
+
+
+ // $ANTLR start "ruleInlineStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4435:1: ruleInlineStatement returns [EObject current=null] : (otherlv_0= '/*@' otherlv_1= 'inline' otherlv_2= '(' ( (lv_langageName_3_0= RULE_ID ) ) otherlv_4= ')' ( (lv_body_5_0= RULE_STRING ) ) otherlv_6= '*/' ) ;
+ public final EObject ruleInlineStatement() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ Token lv_langageName_3_0=null;
+ Token otherlv_4=null;
+ Token lv_body_5_0=null;
+ Token otherlv_6=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4438:28: ( (otherlv_0= '/*@' otherlv_1= 'inline' otherlv_2= '(' ( (lv_langageName_3_0= RULE_ID ) ) otherlv_4= ')' ( (lv_body_5_0= RULE_STRING ) ) otherlv_6= '*/' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4439:1: (otherlv_0= '/*@' otherlv_1= 'inline' otherlv_2= '(' ( (lv_langageName_3_0= RULE_ID ) ) otherlv_4= ')' ( (lv_body_5_0= RULE_STRING ) ) otherlv_6= '*/' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4439:1: (otherlv_0= '/*@' otherlv_1= 'inline' otherlv_2= '(' ( (lv_langageName_3_0= RULE_ID ) ) otherlv_4= ')' ( (lv_body_5_0= RULE_STRING ) ) otherlv_6= '*/' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4439:3: otherlv_0= '/*@' otherlv_1= 'inline' otherlv_2= '(' ( (lv_langageName_3_0= RULE_ID ) ) otherlv_4= ')' ( (lv_body_5_0= RULE_STRING ) ) otherlv_6= '*/'
+ {
+ otherlv_0=(Token)match(input,64,FOLLOW_64_in_ruleInlineStatement9585);
+
+ newLeafNode(otherlv_0, grammarAccess.getInlineStatementAccess().getSolidusAsteriskCommercialAtKeyword_0());
+
+ otherlv_1=(Token)match(input,65,FOLLOW_65_in_ruleInlineStatement9597);
+
+ newLeafNode(otherlv_1, grammarAccess.getInlineStatementAccess().getInlineKeyword_1());
+
+ otherlv_2=(Token)match(input,24,FOLLOW_24_in_ruleInlineStatement9609);
+
+ newLeafNode(otherlv_2, grammarAccess.getInlineStatementAccess().getLeftParenthesisKeyword_2());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4451:1: ( (lv_langageName_3_0= RULE_ID ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4452:1: (lv_langageName_3_0= RULE_ID )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4452:1: (lv_langageName_3_0= RULE_ID )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4453:3: lv_langageName_3_0= RULE_ID
+ {
+ lv_langageName_3_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleInlineStatement9626);
+
+ newLeafNode(lv_langageName_3_0, grammarAccess.getInlineStatementAccess().getLangageNameIDTerminalRuleCall_3_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getInlineStatementRule());
+ }
+ setWithLastConsumed(
+ current,
+ "langageName",
+ lv_langageName_3_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+ otherlv_4=(Token)match(input,25,FOLLOW_25_in_ruleInlineStatement9643);
+
+ newLeafNode(otherlv_4, grammarAccess.getInlineStatementAccess().getRightParenthesisKeyword_4());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4473:1: ( (lv_body_5_0= RULE_STRING ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4474:1: (lv_body_5_0= RULE_STRING )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4474:1: (lv_body_5_0= RULE_STRING )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4475:3: lv_body_5_0= RULE_STRING
+ {
+ lv_body_5_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleInlineStatement9660);
+
+ newLeafNode(lv_body_5_0, grammarAccess.getInlineStatementAccess().getBodySTRINGTerminalRuleCall_5_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getInlineStatementRule());
+ }
+ setWithLastConsumed(
+ current,
+ "body",
+ lv_body_5_0,
+ "STRING");
+
+
+ }
+
+
+ }
+
+ otherlv_6=(Token)match(input,66,FOLLOW_66_in_ruleInlineStatement9677);
+
+ newLeafNode(otherlv_6, grammarAccess.getInlineStatementAccess().getAsteriskSolidusKeyword_6());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleInlineStatement"
+
+
+ // $ANTLR start "entryRuleAnnotatedStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4503:1: entryRuleAnnotatedStatement returns [EObject current=null] : iv_ruleAnnotatedStatement= ruleAnnotatedStatement EOF ;
+ public final EObject entryRuleAnnotatedStatement() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleAnnotatedStatement = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4504:2: (iv_ruleAnnotatedStatement= ruleAnnotatedStatement EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4505:2: iv_ruleAnnotatedStatement= ruleAnnotatedStatement EOF
+ {
+ newCompositeNode(grammarAccess.getAnnotatedStatementRule());
+ pushFollow(FOLLOW_ruleAnnotatedStatement_in_entryRuleAnnotatedStatement9713);
+ iv_ruleAnnotatedStatement=ruleAnnotatedStatement();
+
+ state._fsp--;
+
+ current =iv_ruleAnnotatedStatement;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleAnnotatedStatement9723);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleAnnotatedStatement"
+
+
+ // $ANTLR start "ruleAnnotatedStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4512:1: ruleAnnotatedStatement returns [EObject current=null] : (otherlv_0= '//@' ( (lv_annotation_1_0= ruleAnnotation ) ) ( (lv_statement_2_0= ruleStatement ) ) ) ;
+ public final EObject ruleAnnotatedStatement() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ EObject lv_annotation_1_0 = null;
+
+ EObject lv_statement_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4515:28: ( (otherlv_0= '//@' ( (lv_annotation_1_0= ruleAnnotation ) ) ( (lv_statement_2_0= ruleStatement ) ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4516:1: (otherlv_0= '//@' ( (lv_annotation_1_0= ruleAnnotation ) ) ( (lv_statement_2_0= ruleStatement ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4516:1: (otherlv_0= '//@' ( (lv_annotation_1_0= ruleAnnotation ) ) ( (lv_statement_2_0= ruleStatement ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4516:3: otherlv_0= '//@' ( (lv_annotation_1_0= ruleAnnotation ) ) ( (lv_statement_2_0= ruleStatement ) )
+ {
+ otherlv_0=(Token)match(input,67,FOLLOW_67_in_ruleAnnotatedStatement9760);
+
+ newLeafNode(otherlv_0, grammarAccess.getAnnotatedStatementAccess().getSolidusSolidusCommercialAtKeyword_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4520:1: ( (lv_annotation_1_0= ruleAnnotation ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4521:1: (lv_annotation_1_0= ruleAnnotation )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4521:1: (lv_annotation_1_0= ruleAnnotation )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4522:3: lv_annotation_1_0= ruleAnnotation
+ {
+
+ newCompositeNode(grammarAccess.getAnnotatedStatementAccess().getAnnotationAnnotationParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_ruleAnnotation_in_ruleAnnotatedStatement9781);
+ lv_annotation_1_0=ruleAnnotation();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getAnnotatedStatementRule());
+ }
+ set(
+ current,
+ "annotation",
+ lv_annotation_1_0,
+ "Annotation");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4538:2: ( (lv_statement_2_0= ruleStatement ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4539:1: (lv_statement_2_0= ruleStatement )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4539:1: (lv_statement_2_0= ruleStatement )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4540:3: lv_statement_2_0= ruleStatement
+ {
+
+ newCompositeNode(grammarAccess.getAnnotatedStatementAccess().getStatementStatementParserRuleCall_2_0());
+
+ pushFollow(FOLLOW_ruleStatement_in_ruleAnnotatedStatement9802);
+ lv_statement_2_0=ruleStatement();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getAnnotatedStatementRule());
+ }
+ set(
+ current,
+ "statement",
+ lv_statement_2_0,
+ "Statement");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleAnnotatedStatement"
+
+
+ // $ANTLR start "entryRuleStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4564:1: entryRuleStatement returns [EObject current=null] : iv_ruleStatement= ruleStatement EOF ;
+ public final EObject entryRuleStatement() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleStatement = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4565:2: (iv_ruleStatement= ruleStatement EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4566:2: iv_ruleStatement= ruleStatement EOF
+ {
+ newCompositeNode(grammarAccess.getStatementRule());
+ pushFollow(FOLLOW_ruleStatement_in_entryRuleStatement9838);
+ iv_ruleStatement=ruleStatement();
+
+ state._fsp--;
+
+ current =iv_ruleStatement;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleStatement9848);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleStatement"
+
+
+ // $ANTLR start "ruleStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4573:1: ruleStatement returns [EObject current=null] : (this_AnnotatedStatement_0= ruleAnnotatedStatement | this_InlineStatement_1= ruleInlineStatement | this_BlockStatement_2= ruleBlockStatement | this_EmptyStatement_3= ruleEmptyStatement | this_LocalNameDeclarationStatement_4= ruleLocalNameDeclarationStatement | this_IfStatement_5= ruleIfStatement | this_SwitchStatement_6= ruleSwitchStatement | this_WhileStatement_7= ruleWhileStatement | this_DoStatement_8= ruleDoStatement | this_ForStatement_9= ruleForStatement | this_BreakStatement_10= ruleBreakStatement | this_ReturnStatement_11= ruleReturnStatement | this_AcceptStatement_12= ruleAcceptStatement | this_ClassifyStatement_13= ruleClassifyStatement | this_InvocationOrAssignementOrDeclarationStatement_14= ruleInvocationOrAssignementOrDeclarationStatement | this_SuperInvocationStatement_15= ruleSuperInvocationStatement | this_ThisInvocationStatement_16= ruleThisInvocationStatement | this_InstanceCreationInvocationStatement_17= ruleInstanceCreationInvocationStatement ) ;
+ public final EObject ruleStatement() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_AnnotatedStatement_0 = null;
+
+ EObject this_InlineStatement_1 = null;
+
+ EObject this_BlockStatement_2 = null;
+
+ EObject this_EmptyStatement_3 = null;
+
+ EObject this_LocalNameDeclarationStatement_4 = null;
+
+ EObject this_IfStatement_5 = null;
+
+ EObject this_SwitchStatement_6 = null;
+
+ EObject this_WhileStatement_7 = null;
+
+ EObject this_DoStatement_8 = null;
+
+ EObject this_ForStatement_9 = null;
+
+ EObject this_BreakStatement_10 = null;
+
+ EObject this_ReturnStatement_11 = null;
+
+ EObject this_AcceptStatement_12 = null;
+
+ EObject this_ClassifyStatement_13 = null;
+
+ EObject this_InvocationOrAssignementOrDeclarationStatement_14 = null;
+
+ EObject this_SuperInvocationStatement_15 = null;
+
+ EObject this_ThisInvocationStatement_16 = null;
+
+ EObject this_InstanceCreationInvocationStatement_17 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4576:28: ( (this_AnnotatedStatement_0= ruleAnnotatedStatement | this_InlineStatement_1= ruleInlineStatement | this_BlockStatement_2= ruleBlockStatement | this_EmptyStatement_3= ruleEmptyStatement | this_LocalNameDeclarationStatement_4= ruleLocalNameDeclarationStatement | this_IfStatement_5= ruleIfStatement | this_SwitchStatement_6= ruleSwitchStatement | this_WhileStatement_7= ruleWhileStatement | this_DoStatement_8= ruleDoStatement | this_ForStatement_9= ruleForStatement | this_BreakStatement_10= ruleBreakStatement | this_ReturnStatement_11= ruleReturnStatement | this_AcceptStatement_12= ruleAcceptStatement | this_ClassifyStatement_13= ruleClassifyStatement | this_InvocationOrAssignementOrDeclarationStatement_14= ruleInvocationOrAssignementOrDeclarationStatement | this_SuperInvocationStatement_15= ruleSuperInvocationStatement | this_ThisInvocationStatement_16= ruleThisInvocationStatement | this_InstanceCreationInvocationStatement_17= ruleInstanceCreationInvocationStatement ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4577:1: (this_AnnotatedStatement_0= ruleAnnotatedStatement | this_InlineStatement_1= ruleInlineStatement | this_BlockStatement_2= ruleBlockStatement | this_EmptyStatement_3= ruleEmptyStatement | this_LocalNameDeclarationStatement_4= ruleLocalNameDeclarationStatement | this_IfStatement_5= ruleIfStatement | this_SwitchStatement_6= ruleSwitchStatement | this_WhileStatement_7= ruleWhileStatement | this_DoStatement_8= ruleDoStatement | this_ForStatement_9= ruleForStatement | this_BreakStatement_10= ruleBreakStatement | this_ReturnStatement_11= ruleReturnStatement | this_AcceptStatement_12= ruleAcceptStatement | this_ClassifyStatement_13= ruleClassifyStatement | this_InvocationOrAssignementOrDeclarationStatement_14= ruleInvocationOrAssignementOrDeclarationStatement | this_SuperInvocationStatement_15= ruleSuperInvocationStatement | this_ThisInvocationStatement_16= ruleThisInvocationStatement | this_InstanceCreationInvocationStatement_17= ruleInstanceCreationInvocationStatement )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4577:1: (this_AnnotatedStatement_0= ruleAnnotatedStatement | this_InlineStatement_1= ruleInlineStatement | this_BlockStatement_2= ruleBlockStatement | this_EmptyStatement_3= ruleEmptyStatement | this_LocalNameDeclarationStatement_4= ruleLocalNameDeclarationStatement | this_IfStatement_5= ruleIfStatement | this_SwitchStatement_6= ruleSwitchStatement | this_WhileStatement_7= ruleWhileStatement | this_DoStatement_8= ruleDoStatement | this_ForStatement_9= ruleForStatement | this_BreakStatement_10= ruleBreakStatement | this_ReturnStatement_11= ruleReturnStatement | this_AcceptStatement_12= ruleAcceptStatement | this_ClassifyStatement_13= ruleClassifyStatement | this_InvocationOrAssignementOrDeclarationStatement_14= ruleInvocationOrAssignementOrDeclarationStatement | this_SuperInvocationStatement_15= ruleSuperInvocationStatement | this_ThisInvocationStatement_16= ruleThisInvocationStatement | this_InstanceCreationInvocationStatement_17= ruleInstanceCreationInvocationStatement )
+ int alt71=18;
+ switch ( input.LA(1) ) {
+ case 67:
+ {
+ alt71=1;
+ }
+ break;
+ case 64:
+ {
+ alt71=2;
+ }
+ break;
+ case 60:
+ {
+ alt71=3;
+ }
+ break;
+ case 68:
+ {
+ alt71=4;
+ }
+ break;
+ case 69:
+ {
+ alt71=5;
+ }
+ break;
+ case 71:
+ {
+ alt71=6;
+ }
+ break;
+ case 74:
+ {
+ alt71=7;
+ }
+ break;
+ case 77:
+ {
+ alt71=8;
+ }
+ break;
+ case 78:
+ {
+ alt71=9;
+ }
+ break;
+ case 79:
+ {
+ alt71=10;
+ }
+ break;
+ case 81:
+ {
+ alt71=11;
+ }
+ break;
+ case 82:
+ {
+ alt71=12;
+ }
+ break;
+ case 83:
+ {
+ alt71=13;
+ }
+ break;
+ case 84:
+ {
+ alt71=14;
+ }
+ break;
+ case RULE_ID:
+ case 17:
+ case 18:
+ {
+ alt71=15;
+ }
+ break;
+ case 58:
+ {
+ alt71=16;
+ }
+ break;
+ case 57:
+ {
+ alt71=17;
+ }
+ break;
+ case 59:
+ {
+ alt71=18;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 71, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt71) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4578:5: this_AnnotatedStatement_0= ruleAnnotatedStatement
+ {
+
+ newCompositeNode(grammarAccess.getStatementAccess().getAnnotatedStatementParserRuleCall_0());
+
+ pushFollow(FOLLOW_ruleAnnotatedStatement_in_ruleStatement9895);
+ this_AnnotatedStatement_0=ruleAnnotatedStatement();
+
+ state._fsp--;
+
+
+ current = this_AnnotatedStatement_0;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4588:5: this_InlineStatement_1= ruleInlineStatement
+ {
+
+ newCompositeNode(grammarAccess.getStatementAccess().getInlineStatementParserRuleCall_1());
+
+ pushFollow(FOLLOW_ruleInlineStatement_in_ruleStatement9922);
+ this_InlineStatement_1=ruleInlineStatement();
+
+ state._fsp--;
+
+
+ current = this_InlineStatement_1;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4598:5: this_BlockStatement_2= ruleBlockStatement
+ {
+
+ newCompositeNode(grammarAccess.getStatementAccess().getBlockStatementParserRuleCall_2());
+
+ pushFollow(FOLLOW_ruleBlockStatement_in_ruleStatement9949);
+ this_BlockStatement_2=ruleBlockStatement();
+
+ state._fsp--;
+
+
+ current = this_BlockStatement_2;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4608:5: this_EmptyStatement_3= ruleEmptyStatement
+ {
+
+ newCompositeNode(grammarAccess.getStatementAccess().getEmptyStatementParserRuleCall_3());
+
+ pushFollow(FOLLOW_ruleEmptyStatement_in_ruleStatement9976);
+ this_EmptyStatement_3=ruleEmptyStatement();
+
+ state._fsp--;
+
+
+ current = this_EmptyStatement_3;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4618:5: this_LocalNameDeclarationStatement_4= ruleLocalNameDeclarationStatement
+ {
+
+ newCompositeNode(grammarAccess.getStatementAccess().getLocalNameDeclarationStatementParserRuleCall_4());
+
+ pushFollow(FOLLOW_ruleLocalNameDeclarationStatement_in_ruleStatement10003);
+ this_LocalNameDeclarationStatement_4=ruleLocalNameDeclarationStatement();
+
+ state._fsp--;
+
+
+ current = this_LocalNameDeclarationStatement_4;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 6 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4628:5: this_IfStatement_5= ruleIfStatement
+ {
+
+ newCompositeNode(grammarAccess.getStatementAccess().getIfStatementParserRuleCall_5());
+
+ pushFollow(FOLLOW_ruleIfStatement_in_ruleStatement10030);
+ this_IfStatement_5=ruleIfStatement();
+
+ state._fsp--;
+
+
+ current = this_IfStatement_5;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 7 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4638:5: this_SwitchStatement_6= ruleSwitchStatement
+ {
+
+ newCompositeNode(grammarAccess.getStatementAccess().getSwitchStatementParserRuleCall_6());
+
+ pushFollow(FOLLOW_ruleSwitchStatement_in_ruleStatement10057);
+ this_SwitchStatement_6=ruleSwitchStatement();
+
+ state._fsp--;
+
+
+ current = this_SwitchStatement_6;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 8 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4648:5: this_WhileStatement_7= ruleWhileStatement
+ {
+
+ newCompositeNode(grammarAccess.getStatementAccess().getWhileStatementParserRuleCall_7());
+
+ pushFollow(FOLLOW_ruleWhileStatement_in_ruleStatement10084);
+ this_WhileStatement_7=ruleWhileStatement();
+
+ state._fsp--;
+
+
+ current = this_WhileStatement_7;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 9 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4658:5: this_DoStatement_8= ruleDoStatement
+ {
+
+ newCompositeNode(grammarAccess.getStatementAccess().getDoStatementParserRuleCall_8());
+
+ pushFollow(FOLLOW_ruleDoStatement_in_ruleStatement10111);
+ this_DoStatement_8=ruleDoStatement();
+
+ state._fsp--;
+
+
+ current = this_DoStatement_8;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 10 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4668:5: this_ForStatement_9= ruleForStatement
+ {
+
+ newCompositeNode(grammarAccess.getStatementAccess().getForStatementParserRuleCall_9());
+
+ pushFollow(FOLLOW_ruleForStatement_in_ruleStatement10138);
+ this_ForStatement_9=ruleForStatement();
+
+ state._fsp--;
+
+
+ current = this_ForStatement_9;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 11 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4678:5: this_BreakStatement_10= ruleBreakStatement
+ {
+
+ newCompositeNode(grammarAccess.getStatementAccess().getBreakStatementParserRuleCall_10());
+
+ pushFollow(FOLLOW_ruleBreakStatement_in_ruleStatement10165);
+ this_BreakStatement_10=ruleBreakStatement();
+
+ state._fsp--;
+
+
+ current = this_BreakStatement_10;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 12 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4688:5: this_ReturnStatement_11= ruleReturnStatement
+ {
+
+ newCompositeNode(grammarAccess.getStatementAccess().getReturnStatementParserRuleCall_11());
+
+ pushFollow(FOLLOW_ruleReturnStatement_in_ruleStatement10192);
+ this_ReturnStatement_11=ruleReturnStatement();
+
+ state._fsp--;
+
+
+ current = this_ReturnStatement_11;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 13 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4698:5: this_AcceptStatement_12= ruleAcceptStatement
+ {
+
+ newCompositeNode(grammarAccess.getStatementAccess().getAcceptStatementParserRuleCall_12());
+
+ pushFollow(FOLLOW_ruleAcceptStatement_in_ruleStatement10219);
+ this_AcceptStatement_12=ruleAcceptStatement();
+
+ state._fsp--;
+
+
+ current = this_AcceptStatement_12;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 14 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4708:5: this_ClassifyStatement_13= ruleClassifyStatement
+ {
+
+ newCompositeNode(grammarAccess.getStatementAccess().getClassifyStatementParserRuleCall_13());
+
+ pushFollow(FOLLOW_ruleClassifyStatement_in_ruleStatement10246);
+ this_ClassifyStatement_13=ruleClassifyStatement();
+
+ state._fsp--;
+
+
+ current = this_ClassifyStatement_13;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 15 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4718:5: this_InvocationOrAssignementOrDeclarationStatement_14= ruleInvocationOrAssignementOrDeclarationStatement
+ {
+
+ newCompositeNode(grammarAccess.getStatementAccess().getInvocationOrAssignementOrDeclarationStatementParserRuleCall_14());
+
+ pushFollow(FOLLOW_ruleInvocationOrAssignementOrDeclarationStatement_in_ruleStatement10273);
+ this_InvocationOrAssignementOrDeclarationStatement_14=ruleInvocationOrAssignementOrDeclarationStatement();
+
+ state._fsp--;
+
+
+ current = this_InvocationOrAssignementOrDeclarationStatement_14;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 16 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4728:5: this_SuperInvocationStatement_15= ruleSuperInvocationStatement
+ {
+
+ newCompositeNode(grammarAccess.getStatementAccess().getSuperInvocationStatementParserRuleCall_15());
+
+ pushFollow(FOLLOW_ruleSuperInvocationStatement_in_ruleStatement10300);
+ this_SuperInvocationStatement_15=ruleSuperInvocationStatement();
+
+ state._fsp--;
+
+
+ current = this_SuperInvocationStatement_15;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 17 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4738:5: this_ThisInvocationStatement_16= ruleThisInvocationStatement
+ {
+
+ newCompositeNode(grammarAccess.getStatementAccess().getThisInvocationStatementParserRuleCall_16());
+
+ pushFollow(FOLLOW_ruleThisInvocationStatement_in_ruleStatement10327);
+ this_ThisInvocationStatement_16=ruleThisInvocationStatement();
+
+ state._fsp--;
+
+
+ current = this_ThisInvocationStatement_16;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 18 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4748:5: this_InstanceCreationInvocationStatement_17= ruleInstanceCreationInvocationStatement
+ {
+
+ newCompositeNode(grammarAccess.getStatementAccess().getInstanceCreationInvocationStatementParserRuleCall_17());
+
+ pushFollow(FOLLOW_ruleInstanceCreationInvocationStatement_in_ruleStatement10354);
+ this_InstanceCreationInvocationStatement_17=ruleInstanceCreationInvocationStatement();
+
+ state._fsp--;
+
+
+ current = this_InstanceCreationInvocationStatement_17;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleStatement"
+
+
+ // $ANTLR start "entryRuleAnnotation"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4764:1: entryRuleAnnotation returns [EObject current=null] : iv_ruleAnnotation= ruleAnnotation EOF ;
+ public final EObject entryRuleAnnotation() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleAnnotation = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4765:2: (iv_ruleAnnotation= ruleAnnotation EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4766:2: iv_ruleAnnotation= ruleAnnotation EOF
+ {
+ newCompositeNode(grammarAccess.getAnnotationRule());
+ pushFollow(FOLLOW_ruleAnnotation_in_entryRuleAnnotation10389);
+ iv_ruleAnnotation=ruleAnnotation();
+
+ state._fsp--;
+
+ current =iv_ruleAnnotation;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleAnnotation10399);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleAnnotation"
+
+
+ // $ANTLR start "ruleAnnotation"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4773:1: ruleAnnotation returns [EObject current=null] : ( ( (lv_kind_0_0= ruleAnnotationKind ) ) (otherlv_1= '(' ( (lv_args_2_0= RULE_ID ) ) (otherlv_3= ',' ( (lv_args_4_0= RULE_ID ) ) )* otherlv_5= ')' )? ) ;
+ public final EObject ruleAnnotation() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token lv_args_2_0=null;
+ Token otherlv_3=null;
+ Token lv_args_4_0=null;
+ Token otherlv_5=null;
+ Enumerator lv_kind_0_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4776:28: ( ( ( (lv_kind_0_0= ruleAnnotationKind ) ) (otherlv_1= '(' ( (lv_args_2_0= RULE_ID ) ) (otherlv_3= ',' ( (lv_args_4_0= RULE_ID ) ) )* otherlv_5= ')' )? ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4777:1: ( ( (lv_kind_0_0= ruleAnnotationKind ) ) (otherlv_1= '(' ( (lv_args_2_0= RULE_ID ) ) (otherlv_3= ',' ( (lv_args_4_0= RULE_ID ) ) )* otherlv_5= ')' )? )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4777:1: ( ( (lv_kind_0_0= ruleAnnotationKind ) ) (otherlv_1= '(' ( (lv_args_2_0= RULE_ID ) ) (otherlv_3= ',' ( (lv_args_4_0= RULE_ID ) ) )* otherlv_5= ')' )? )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4777:2: ( (lv_kind_0_0= ruleAnnotationKind ) ) (otherlv_1= '(' ( (lv_args_2_0= RULE_ID ) ) (otherlv_3= ',' ( (lv_args_4_0= RULE_ID ) ) )* otherlv_5= ')' )?
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4777:2: ( (lv_kind_0_0= ruleAnnotationKind ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4778:1: (lv_kind_0_0= ruleAnnotationKind )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4778:1: (lv_kind_0_0= ruleAnnotationKind )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4779:3: lv_kind_0_0= ruleAnnotationKind
+ {
+
+ newCompositeNode(grammarAccess.getAnnotationAccess().getKindAnnotationKindEnumRuleCall_0_0());
+
+ pushFollow(FOLLOW_ruleAnnotationKind_in_ruleAnnotation10445);
+ lv_kind_0_0=ruleAnnotationKind();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getAnnotationRule());
+ }
+ set(
+ current,
+ "kind",
+ lv_kind_0_0,
+ "AnnotationKind");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4795:2: (otherlv_1= '(' ( (lv_args_2_0= RULE_ID ) ) (otherlv_3= ',' ( (lv_args_4_0= RULE_ID ) ) )* otherlv_5= ')' )?
+ int alt73=2;
+ int LA73_0 = input.LA(1);
+
+ if ( (LA73_0==24) ) {
+ alt73=1;
+ }
+ switch (alt73) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4795:4: otherlv_1= '(' ( (lv_args_2_0= RULE_ID ) ) (otherlv_3= ',' ( (lv_args_4_0= RULE_ID ) ) )* otherlv_5= ')'
+ {
+ otherlv_1=(Token)match(input,24,FOLLOW_24_in_ruleAnnotation10458);
+
+ newLeafNode(otherlv_1, grammarAccess.getAnnotationAccess().getLeftParenthesisKeyword_1_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4799:1: ( (lv_args_2_0= RULE_ID ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4800:1: (lv_args_2_0= RULE_ID )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4800:1: (lv_args_2_0= RULE_ID )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4801:3: lv_args_2_0= RULE_ID
+ {
+ lv_args_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleAnnotation10475);
+
+ newLeafNode(lv_args_2_0, grammarAccess.getAnnotationAccess().getArgsIDTerminalRuleCall_1_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getAnnotationRule());
+ }
+ addWithLastConsumed(
+ current,
+ "args",
+ lv_args_2_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4817:2: (otherlv_3= ',' ( (lv_args_4_0= RULE_ID ) ) )*
+ loop72:
+ do {
+ int alt72=2;
+ int LA72_0 = input.LA(1);
+
+ if ( (LA72_0==21) ) {
+ alt72=1;
+ }
+
+
+ switch (alt72) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4817:4: otherlv_3= ',' ( (lv_args_4_0= RULE_ID ) )
+ {
+ otherlv_3=(Token)match(input,21,FOLLOW_21_in_ruleAnnotation10493);
+
+ newLeafNode(otherlv_3, grammarAccess.getAnnotationAccess().getCommaKeyword_1_2_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4821:1: ( (lv_args_4_0= RULE_ID ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4822:1: (lv_args_4_0= RULE_ID )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4822:1: (lv_args_4_0= RULE_ID )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4823:3: lv_args_4_0= RULE_ID
+ {
+ lv_args_4_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleAnnotation10510);
+
+ newLeafNode(lv_args_4_0, grammarAccess.getAnnotationAccess().getArgsIDTerminalRuleCall_1_2_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getAnnotationRule());
+ }
+ addWithLastConsumed(
+ current,
+ "args",
+ lv_args_4_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop72;
+ }
+ } while (true);
+
+ otherlv_5=(Token)match(input,25,FOLLOW_25_in_ruleAnnotation10529);
+
+ newLeafNode(otherlv_5, grammarAccess.getAnnotationAccess().getRightParenthesisKeyword_1_3());
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleAnnotation"
+
+
+ // $ANTLR start "entryRuleBlockStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4851:1: entryRuleBlockStatement returns [EObject current=null] : iv_ruleBlockStatement= ruleBlockStatement EOF ;
+ public final EObject entryRuleBlockStatement() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleBlockStatement = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4852:2: (iv_ruleBlockStatement= ruleBlockStatement EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4853:2: iv_ruleBlockStatement= ruleBlockStatement EOF
+ {
+ newCompositeNode(grammarAccess.getBlockStatementRule());
+ pushFollow(FOLLOW_ruleBlockStatement_in_entryRuleBlockStatement10567);
+ iv_ruleBlockStatement=ruleBlockStatement();
+
+ state._fsp--;
+
+ current =iv_ruleBlockStatement;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleBlockStatement10577);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleBlockStatement"
+
+
+ // $ANTLR start "ruleBlockStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4860:1: ruleBlockStatement returns [EObject current=null] : ( (lv_block_0_0= ruleBlock ) ) ;
+ public final EObject ruleBlockStatement() throws RecognitionException {
+ EObject current = null;
+
+ EObject lv_block_0_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4863:28: ( ( (lv_block_0_0= ruleBlock ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4864:1: ( (lv_block_0_0= ruleBlock ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4864:1: ( (lv_block_0_0= ruleBlock ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4865:1: (lv_block_0_0= ruleBlock )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4865:1: (lv_block_0_0= ruleBlock )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4866:3: lv_block_0_0= ruleBlock
+ {
+
+ newCompositeNode(grammarAccess.getBlockStatementAccess().getBlockBlockParserRuleCall_0());
+
+ pushFollow(FOLLOW_ruleBlock_in_ruleBlockStatement10622);
+ lv_block_0_0=ruleBlock();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getBlockStatementRule());
+ }
+ set(
+ current,
+ "block",
+ lv_block_0_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleBlockStatement"
+
+
+ // $ANTLR start "entryRuleEmptyStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4890:1: entryRuleEmptyStatement returns [EObject current=null] : iv_ruleEmptyStatement= ruleEmptyStatement EOF ;
+ public final EObject entryRuleEmptyStatement() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleEmptyStatement = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4891:2: (iv_ruleEmptyStatement= ruleEmptyStatement EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4892:2: iv_ruleEmptyStatement= ruleEmptyStatement EOF
+ {
+ newCompositeNode(grammarAccess.getEmptyStatementRule());
+ pushFollow(FOLLOW_ruleEmptyStatement_in_entryRuleEmptyStatement10657);
+ iv_ruleEmptyStatement=ruleEmptyStatement();
+
+ state._fsp--;
+
+ current =iv_ruleEmptyStatement;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleEmptyStatement10667);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleEmptyStatement"
+
+
+ // $ANTLR start "ruleEmptyStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4899:1: ruleEmptyStatement returns [EObject current=null] : ( () otherlv_1= ';' ) ;
+ public final EObject ruleEmptyStatement() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4902:28: ( ( () otherlv_1= ';' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4903:1: ( () otherlv_1= ';' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4903:1: ( () otherlv_1= ';' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4903:2: () otherlv_1= ';'
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4903:2: ()
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4904:5:
+ {
+
+ current = forceCreateModelElement(
+ grammarAccess.getEmptyStatementAccess().getEmptyStatementAction_0(),
+ current);
+
+
+ }
+
+ otherlv_1=(Token)match(input,68,FOLLOW_68_in_ruleEmptyStatement10713);
+
+ newLeafNode(otherlv_1, grammarAccess.getEmptyStatementAccess().getSemicolonKeyword_1());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleEmptyStatement"
+
+
+ // $ANTLR start "entryRuleLocalNameDeclarationStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4921:1: entryRuleLocalNameDeclarationStatement returns [EObject current=null] : iv_ruleLocalNameDeclarationStatement= ruleLocalNameDeclarationStatement EOF ;
+ public final EObject entryRuleLocalNameDeclarationStatement() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleLocalNameDeclarationStatement = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4922:2: (iv_ruleLocalNameDeclarationStatement= ruleLocalNameDeclarationStatement EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4923:2: iv_ruleLocalNameDeclarationStatement= ruleLocalNameDeclarationStatement EOF
+ {
+ newCompositeNode(grammarAccess.getLocalNameDeclarationStatementRule());
+ pushFollow(FOLLOW_ruleLocalNameDeclarationStatement_in_entryRuleLocalNameDeclarationStatement10749);
+ iv_ruleLocalNameDeclarationStatement=ruleLocalNameDeclarationStatement();
+
+ state._fsp--;
+
+ current =iv_ruleLocalNameDeclarationStatement;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleLocalNameDeclarationStatement10759);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleLocalNameDeclarationStatement"
+
+
+ // $ANTLR start "ruleLocalNameDeclarationStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4930:1: ruleLocalNameDeclarationStatement returns [EObject current=null] : (otherlv_0= 'let' ( (lv_varName_1_0= RULE_ID ) ) otherlv_2= ':' ( (lv_type_3_0= ruleQualifiedNameWithBinding ) ) ( ( (lv_multiplicityIndicator_4_0= '[' ) ) otherlv_5= ']' )? otherlv_6= '=' ( (lv_init_7_0= ruleSequenceElement ) ) otherlv_8= ';' ) ;
+ public final EObject ruleLocalNameDeclarationStatement() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token lv_varName_1_0=null;
+ Token otherlv_2=null;
+ Token lv_multiplicityIndicator_4_0=null;
+ Token otherlv_5=null;
+ Token otherlv_6=null;
+ Token otherlv_8=null;
+ EObject lv_type_3_0 = null;
+
+ EObject lv_init_7_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4933:28: ( (otherlv_0= 'let' ( (lv_varName_1_0= RULE_ID ) ) otherlv_2= ':' ( (lv_type_3_0= ruleQualifiedNameWithBinding ) ) ( ( (lv_multiplicityIndicator_4_0= '[' ) ) otherlv_5= ']' )? otherlv_6= '=' ( (lv_init_7_0= ruleSequenceElement ) ) otherlv_8= ';' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4934:1: (otherlv_0= 'let' ( (lv_varName_1_0= RULE_ID ) ) otherlv_2= ':' ( (lv_type_3_0= ruleQualifiedNameWithBinding ) ) ( ( (lv_multiplicityIndicator_4_0= '[' ) ) otherlv_5= ']' )? otherlv_6= '=' ( (lv_init_7_0= ruleSequenceElement ) ) otherlv_8= ';' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4934:1: (otherlv_0= 'let' ( (lv_varName_1_0= RULE_ID ) ) otherlv_2= ':' ( (lv_type_3_0= ruleQualifiedNameWithBinding ) ) ( ( (lv_multiplicityIndicator_4_0= '[' ) ) otherlv_5= ']' )? otherlv_6= '=' ( (lv_init_7_0= ruleSequenceElement ) ) otherlv_8= ';' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4934:3: otherlv_0= 'let' ( (lv_varName_1_0= RULE_ID ) ) otherlv_2= ':' ( (lv_type_3_0= ruleQualifiedNameWithBinding ) ) ( ( (lv_multiplicityIndicator_4_0= '[' ) ) otherlv_5= ']' )? otherlv_6= '=' ( (lv_init_7_0= ruleSequenceElement ) ) otherlv_8= ';'
+ {
+ otherlv_0=(Token)match(input,69,FOLLOW_69_in_ruleLocalNameDeclarationStatement10796);
+
+ newLeafNode(otherlv_0, grammarAccess.getLocalNameDeclarationStatementAccess().getLetKeyword_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4938:1: ( (lv_varName_1_0= RULE_ID ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4939:1: (lv_varName_1_0= RULE_ID )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4939:1: (lv_varName_1_0= RULE_ID )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4940:3: lv_varName_1_0= RULE_ID
+ {
+ lv_varName_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleLocalNameDeclarationStatement10813);
+
+ newLeafNode(lv_varName_1_0, grammarAccess.getLocalNameDeclarationStatementAccess().getVarNameIDTerminalRuleCall_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getLocalNameDeclarationStatementRule());
+ }
+ setWithLastConsumed(
+ current,
+ "varName",
+ lv_varName_1_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+ otherlv_2=(Token)match(input,27,FOLLOW_27_in_ruleLocalNameDeclarationStatement10830);
+
+ newLeafNode(otherlv_2, grammarAccess.getLocalNameDeclarationStatementAccess().getColonKeyword_2());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4960:1: ( (lv_type_3_0= ruleQualifiedNameWithBinding ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4961:1: (lv_type_3_0= ruleQualifiedNameWithBinding )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4961:1: (lv_type_3_0= ruleQualifiedNameWithBinding )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4962:3: lv_type_3_0= ruleQualifiedNameWithBinding
+ {
+
+ newCompositeNode(grammarAccess.getLocalNameDeclarationStatementAccess().getTypeQualifiedNameWithBindingParserRuleCall_3_0());
+
+ pushFollow(FOLLOW_ruleQualifiedNameWithBinding_in_ruleLocalNameDeclarationStatement10851);
+ lv_type_3_0=ruleQualifiedNameWithBinding();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getLocalNameDeclarationStatementRule());
+ }
+ set(
+ current,
+ "type",
+ lv_type_3_0,
+ "QualifiedNameWithBinding");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4978:2: ( ( (lv_multiplicityIndicator_4_0= '[' ) ) otherlv_5= ']' )?
+ int alt74=2;
+ int LA74_0 = input.LA(1);
+
+ if ( (LA74_0==50) ) {
+ alt74=1;
+ }
+ switch (alt74) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4978:3: ( (lv_multiplicityIndicator_4_0= '[' ) ) otherlv_5= ']'
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4978:3: ( (lv_multiplicityIndicator_4_0= '[' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4979:1: (lv_multiplicityIndicator_4_0= '[' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4979:1: (lv_multiplicityIndicator_4_0= '[' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:4980:3: lv_multiplicityIndicator_4_0= '['
+ {
+ lv_multiplicityIndicator_4_0=(Token)match(input,50,FOLLOW_50_in_ruleLocalNameDeclarationStatement10870);
+
+ newLeafNode(lv_multiplicityIndicator_4_0, grammarAccess.getLocalNameDeclarationStatementAccess().getMultiplicityIndicatorLeftSquareBracketKeyword_4_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getLocalNameDeclarationStatementRule());
+ }
+ setWithLastConsumed(current, "multiplicityIndicator", true, "[");
+
+
+ }
+
+
+ }
+
+ otherlv_5=(Token)match(input,51,FOLLOW_51_in_ruleLocalNameDeclarationStatement10895);
+
+ newLeafNode(otherlv_5, grammarAccess.getLocalNameDeclarationStatementAccess().getRightSquareBracketKeyword_4_1());
+
+
+ }
+ break;
+
+ }
+
+ otherlv_6=(Token)match(input,70,FOLLOW_70_in_ruleLocalNameDeclarationStatement10909);
+
+ newLeafNode(otherlv_6, grammarAccess.getLocalNameDeclarationStatementAccess().getEqualsSignKeyword_5());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5001:1: ( (lv_init_7_0= ruleSequenceElement ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5002:1: (lv_init_7_0= ruleSequenceElement )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5002:1: (lv_init_7_0= ruleSequenceElement )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5003:3: lv_init_7_0= ruleSequenceElement
+ {
+
+ newCompositeNode(grammarAccess.getLocalNameDeclarationStatementAccess().getInitSequenceElementParserRuleCall_6_0());
+
+ pushFollow(FOLLOW_ruleSequenceElement_in_ruleLocalNameDeclarationStatement10930);
+ lv_init_7_0=ruleSequenceElement();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getLocalNameDeclarationStatementRule());
+ }
+ set(
+ current,
+ "init",
+ lv_init_7_0,
+ "SequenceElement");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_8=(Token)match(input,68,FOLLOW_68_in_ruleLocalNameDeclarationStatement10942);
+
+ newLeafNode(otherlv_8, grammarAccess.getLocalNameDeclarationStatementAccess().getSemicolonKeyword_7());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleLocalNameDeclarationStatement"
+
+
+ // $ANTLR start "entryRuleIfStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5031:1: entryRuleIfStatement returns [EObject current=null] : iv_ruleIfStatement= ruleIfStatement EOF ;
+ public final EObject entryRuleIfStatement() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleIfStatement = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5032:2: (iv_ruleIfStatement= ruleIfStatement EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5033:2: iv_ruleIfStatement= ruleIfStatement EOF
+ {
+ newCompositeNode(grammarAccess.getIfStatementRule());
+ pushFollow(FOLLOW_ruleIfStatement_in_entryRuleIfStatement10978);
+ iv_ruleIfStatement=ruleIfStatement();
+
+ state._fsp--;
+
+ current =iv_ruleIfStatement;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleIfStatement10988);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleIfStatement"
+
+
+ // $ANTLR start "ruleIfStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5040:1: ruleIfStatement returns [EObject current=null] : (otherlv_0= 'if' ( (lv_sequentialClausses_1_0= ruleSequentialClauses ) ) ( (lv_finalClause_2_0= ruleFinalClause ) )? ) ;
+ public final EObject ruleIfStatement() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ EObject lv_sequentialClausses_1_0 = null;
+
+ EObject lv_finalClause_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5043:28: ( (otherlv_0= 'if' ( (lv_sequentialClausses_1_0= ruleSequentialClauses ) ) ( (lv_finalClause_2_0= ruleFinalClause ) )? ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5044:1: (otherlv_0= 'if' ( (lv_sequentialClausses_1_0= ruleSequentialClauses ) ) ( (lv_finalClause_2_0= ruleFinalClause ) )? )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5044:1: (otherlv_0= 'if' ( (lv_sequentialClausses_1_0= ruleSequentialClauses ) ) ( (lv_finalClause_2_0= ruleFinalClause ) )? )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5044:3: otherlv_0= 'if' ( (lv_sequentialClausses_1_0= ruleSequentialClauses ) ) ( (lv_finalClause_2_0= ruleFinalClause ) )?
+ {
+ otherlv_0=(Token)match(input,71,FOLLOW_71_in_ruleIfStatement11025);
+
+ newLeafNode(otherlv_0, grammarAccess.getIfStatementAccess().getIfKeyword_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5048:1: ( (lv_sequentialClausses_1_0= ruleSequentialClauses ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5049:1: (lv_sequentialClausses_1_0= ruleSequentialClauses )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5049:1: (lv_sequentialClausses_1_0= ruleSequentialClauses )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5050:3: lv_sequentialClausses_1_0= ruleSequentialClauses
+ {
+
+ newCompositeNode(grammarAccess.getIfStatementAccess().getSequentialClaussesSequentialClausesParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_ruleSequentialClauses_in_ruleIfStatement11046);
+ lv_sequentialClausses_1_0=ruleSequentialClauses();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getIfStatementRule());
+ }
+ set(
+ current,
+ "sequentialClausses",
+ lv_sequentialClausses_1_0,
+ "SequentialClauses");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5066:2: ( (lv_finalClause_2_0= ruleFinalClause ) )?
+ int alt75=2;
+ int LA75_0 = input.LA(1);
+
+ if ( (LA75_0==72) ) {
+ alt75=1;
+ }
+ switch (alt75) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5067:1: (lv_finalClause_2_0= ruleFinalClause )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5067:1: (lv_finalClause_2_0= ruleFinalClause )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5068:3: lv_finalClause_2_0= ruleFinalClause
+ {
+
+ newCompositeNode(grammarAccess.getIfStatementAccess().getFinalClauseFinalClauseParserRuleCall_2_0());
+
+ pushFollow(FOLLOW_ruleFinalClause_in_ruleIfStatement11067);
+ lv_finalClause_2_0=ruleFinalClause();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getIfStatementRule());
+ }
+ set(
+ current,
+ "finalClause",
+ lv_finalClause_2_0,
+ "FinalClause");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleIfStatement"
+
+
+ // $ANTLR start "entryRuleSequentialClauses"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5092:1: entryRuleSequentialClauses returns [EObject current=null] : iv_ruleSequentialClauses= ruleSequentialClauses EOF ;
+ public final EObject entryRuleSequentialClauses() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleSequentialClauses = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5093:2: (iv_ruleSequentialClauses= ruleSequentialClauses EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5094:2: iv_ruleSequentialClauses= ruleSequentialClauses EOF
+ {
+ newCompositeNode(grammarAccess.getSequentialClausesRule());
+ pushFollow(FOLLOW_ruleSequentialClauses_in_entryRuleSequentialClauses11104);
+ iv_ruleSequentialClauses=ruleSequentialClauses();
+
+ state._fsp--;
+
+ current =iv_ruleSequentialClauses;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleSequentialClauses11114);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleSequentialClauses"
+
+
+ // $ANTLR start "ruleSequentialClauses"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5101:1: ruleSequentialClauses returns [EObject current=null] : ( ( (lv_conccurentClauses_0_0= ruleConcurrentClauses ) ) (otherlv_1= 'else' otherlv_2= 'if' ( (lv_conccurentClauses_3_0= ruleConcurrentClauses ) ) )* ) ;
+ public final EObject ruleSequentialClauses() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ EObject lv_conccurentClauses_0_0 = null;
+
+ EObject lv_conccurentClauses_3_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5104:28: ( ( ( (lv_conccurentClauses_0_0= ruleConcurrentClauses ) ) (otherlv_1= 'else' otherlv_2= 'if' ( (lv_conccurentClauses_3_0= ruleConcurrentClauses ) ) )* ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5105:1: ( ( (lv_conccurentClauses_0_0= ruleConcurrentClauses ) ) (otherlv_1= 'else' otherlv_2= 'if' ( (lv_conccurentClauses_3_0= ruleConcurrentClauses ) ) )* )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5105:1: ( ( (lv_conccurentClauses_0_0= ruleConcurrentClauses ) ) (otherlv_1= 'else' otherlv_2= 'if' ( (lv_conccurentClauses_3_0= ruleConcurrentClauses ) ) )* )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5105:2: ( (lv_conccurentClauses_0_0= ruleConcurrentClauses ) ) (otherlv_1= 'else' otherlv_2= 'if' ( (lv_conccurentClauses_3_0= ruleConcurrentClauses ) ) )*
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5105:2: ( (lv_conccurentClauses_0_0= ruleConcurrentClauses ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5106:1: (lv_conccurentClauses_0_0= ruleConcurrentClauses )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5106:1: (lv_conccurentClauses_0_0= ruleConcurrentClauses )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5107:3: lv_conccurentClauses_0_0= ruleConcurrentClauses
+ {
+
+ newCompositeNode(grammarAccess.getSequentialClausesAccess().getConccurentClausesConcurrentClausesParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_ruleConcurrentClauses_in_ruleSequentialClauses11160);
+ lv_conccurentClauses_0_0=ruleConcurrentClauses();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSequentialClausesRule());
+ }
+ add(
+ current,
+ "conccurentClauses",
+ lv_conccurentClauses_0_0,
+ "ConcurrentClauses");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5123:2: (otherlv_1= 'else' otherlv_2= 'if' ( (lv_conccurentClauses_3_0= ruleConcurrentClauses ) ) )*
+ loop76:
+ do {
+ int alt76=2;
+ int LA76_0 = input.LA(1);
+
+ if ( (LA76_0==72) ) {
+ int LA76_1 = input.LA(2);
+
+ if ( (LA76_1==71) ) {
+ alt76=1;
+ }
+
+
+ }
+
+
+ switch (alt76) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5123:4: otherlv_1= 'else' otherlv_2= 'if' ( (lv_conccurentClauses_3_0= ruleConcurrentClauses ) )
+ {
+ otherlv_1=(Token)match(input,72,FOLLOW_72_in_ruleSequentialClauses11173);
+
+ newLeafNode(otherlv_1, grammarAccess.getSequentialClausesAccess().getElseKeyword_1_0());
+
+ otherlv_2=(Token)match(input,71,FOLLOW_71_in_ruleSequentialClauses11185);
+
+ newLeafNode(otherlv_2, grammarAccess.getSequentialClausesAccess().getIfKeyword_1_1());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5131:1: ( (lv_conccurentClauses_3_0= ruleConcurrentClauses ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5132:1: (lv_conccurentClauses_3_0= ruleConcurrentClauses )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5132:1: (lv_conccurentClauses_3_0= ruleConcurrentClauses )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5133:3: lv_conccurentClauses_3_0= ruleConcurrentClauses
+ {
+
+ newCompositeNode(grammarAccess.getSequentialClausesAccess().getConccurentClausesConcurrentClausesParserRuleCall_1_2_0());
+
+ pushFollow(FOLLOW_ruleConcurrentClauses_in_ruleSequentialClauses11206);
+ lv_conccurentClauses_3_0=ruleConcurrentClauses();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSequentialClausesRule());
+ }
+ add(
+ current,
+ "conccurentClauses",
+ lv_conccurentClauses_3_0,
+ "ConcurrentClauses");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop76;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleSequentialClauses"
+
+
+ // $ANTLR start "entryRuleConcurrentClauses"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5157:1: entryRuleConcurrentClauses returns [EObject current=null] : iv_ruleConcurrentClauses= ruleConcurrentClauses EOF ;
+ public final EObject entryRuleConcurrentClauses() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleConcurrentClauses = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5158:2: (iv_ruleConcurrentClauses= ruleConcurrentClauses EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5159:2: iv_ruleConcurrentClauses= ruleConcurrentClauses EOF
+ {
+ newCompositeNode(grammarAccess.getConcurrentClausesRule());
+ pushFollow(FOLLOW_ruleConcurrentClauses_in_entryRuleConcurrentClauses11244);
+ iv_ruleConcurrentClauses=ruleConcurrentClauses();
+
+ state._fsp--;
+
+ current =iv_ruleConcurrentClauses;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleConcurrentClauses11254);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleConcurrentClauses"
+
+
+ // $ANTLR start "ruleConcurrentClauses"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5166:1: ruleConcurrentClauses returns [EObject current=null] : ( ( (lv_nonFinalClause_0_0= ruleNonFinalClause ) ) (otherlv_1= 'or' otherlv_2= 'if' ( (lv_nonFinalClause_3_0= ruleNonFinalClause ) ) )* ) ;
+ public final EObject ruleConcurrentClauses() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ EObject lv_nonFinalClause_0_0 = null;
+
+ EObject lv_nonFinalClause_3_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5169:28: ( ( ( (lv_nonFinalClause_0_0= ruleNonFinalClause ) ) (otherlv_1= 'or' otherlv_2= 'if' ( (lv_nonFinalClause_3_0= ruleNonFinalClause ) ) )* ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5170:1: ( ( (lv_nonFinalClause_0_0= ruleNonFinalClause ) ) (otherlv_1= 'or' otherlv_2= 'if' ( (lv_nonFinalClause_3_0= ruleNonFinalClause ) ) )* )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5170:1: ( ( (lv_nonFinalClause_0_0= ruleNonFinalClause ) ) (otherlv_1= 'or' otherlv_2= 'if' ( (lv_nonFinalClause_3_0= ruleNonFinalClause ) ) )* )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5170:2: ( (lv_nonFinalClause_0_0= ruleNonFinalClause ) ) (otherlv_1= 'or' otherlv_2= 'if' ( (lv_nonFinalClause_3_0= ruleNonFinalClause ) ) )*
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5170:2: ( (lv_nonFinalClause_0_0= ruleNonFinalClause ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5171:1: (lv_nonFinalClause_0_0= ruleNonFinalClause )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5171:1: (lv_nonFinalClause_0_0= ruleNonFinalClause )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5172:3: lv_nonFinalClause_0_0= ruleNonFinalClause
+ {
+
+ newCompositeNode(grammarAccess.getConcurrentClausesAccess().getNonFinalClauseNonFinalClauseParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_ruleNonFinalClause_in_ruleConcurrentClauses11300);
+ lv_nonFinalClause_0_0=ruleNonFinalClause();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getConcurrentClausesRule());
+ }
+ add(
+ current,
+ "nonFinalClause",
+ lv_nonFinalClause_0_0,
+ "NonFinalClause");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5188:2: (otherlv_1= 'or' otherlv_2= 'if' ( (lv_nonFinalClause_3_0= ruleNonFinalClause ) ) )*
+ loop77:
+ do {
+ int alt77=2;
+ int LA77_0 = input.LA(1);
+
+ if ( (LA77_0==73) ) {
+ alt77=1;
+ }
+
+
+ switch (alt77) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5188:4: otherlv_1= 'or' otherlv_2= 'if' ( (lv_nonFinalClause_3_0= ruleNonFinalClause ) )
+ {
+ otherlv_1=(Token)match(input,73,FOLLOW_73_in_ruleConcurrentClauses11313);
+
+ newLeafNode(otherlv_1, grammarAccess.getConcurrentClausesAccess().getOrKeyword_1_0());
+
+ otherlv_2=(Token)match(input,71,FOLLOW_71_in_ruleConcurrentClauses11325);
+
+ newLeafNode(otherlv_2, grammarAccess.getConcurrentClausesAccess().getIfKeyword_1_1());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5196:1: ( (lv_nonFinalClause_3_0= ruleNonFinalClause ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5197:1: (lv_nonFinalClause_3_0= ruleNonFinalClause )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5197:1: (lv_nonFinalClause_3_0= ruleNonFinalClause )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5198:3: lv_nonFinalClause_3_0= ruleNonFinalClause
+ {
+
+ newCompositeNode(grammarAccess.getConcurrentClausesAccess().getNonFinalClauseNonFinalClauseParserRuleCall_1_2_0());
+
+ pushFollow(FOLLOW_ruleNonFinalClause_in_ruleConcurrentClauses11346);
+ lv_nonFinalClause_3_0=ruleNonFinalClause();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getConcurrentClausesRule());
+ }
+ add(
+ current,
+ "nonFinalClause",
+ lv_nonFinalClause_3_0,
+ "NonFinalClause");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop77;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleConcurrentClauses"
+
+
+ // $ANTLR start "entryRuleNonFinalClause"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5222:1: entryRuleNonFinalClause returns [EObject current=null] : iv_ruleNonFinalClause= ruleNonFinalClause EOF ;
+ public final EObject entryRuleNonFinalClause() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleNonFinalClause = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5223:2: (iv_ruleNonFinalClause= ruleNonFinalClause EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5224:2: iv_ruleNonFinalClause= ruleNonFinalClause EOF
+ {
+ newCompositeNode(grammarAccess.getNonFinalClauseRule());
+ pushFollow(FOLLOW_ruleNonFinalClause_in_entryRuleNonFinalClause11384);
+ iv_ruleNonFinalClause=ruleNonFinalClause();
+
+ state._fsp--;
+
+ current =iv_ruleNonFinalClause;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleNonFinalClause11394);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleNonFinalClause"
+
+
+ // $ANTLR start "ruleNonFinalClause"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5231:1: ruleNonFinalClause returns [EObject current=null] : (otherlv_0= '(' ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= ')' ( (lv_block_3_0= ruleBlock ) ) ) ;
+ public final EObject ruleNonFinalClause() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_2=null;
+ EObject lv_condition_1_0 = null;
+
+ EObject lv_block_3_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5234:28: ( (otherlv_0= '(' ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= ')' ( (lv_block_3_0= ruleBlock ) ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5235:1: (otherlv_0= '(' ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= ')' ( (lv_block_3_0= ruleBlock ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5235:1: (otherlv_0= '(' ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= ')' ( (lv_block_3_0= ruleBlock ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5235:3: otherlv_0= '(' ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= ')' ( (lv_block_3_0= ruleBlock ) )
+ {
+ otherlv_0=(Token)match(input,24,FOLLOW_24_in_ruleNonFinalClause11431);
+
+ newLeafNode(otherlv_0, grammarAccess.getNonFinalClauseAccess().getLeftParenthesisKeyword_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5239:1: ( (lv_condition_1_0= ruleExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5240:1: (lv_condition_1_0= ruleExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5240:1: (lv_condition_1_0= ruleExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5241:3: lv_condition_1_0= ruleExpression
+ {
+
+ newCompositeNode(grammarAccess.getNonFinalClauseAccess().getConditionExpressionParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_ruleExpression_in_ruleNonFinalClause11452);
+ lv_condition_1_0=ruleExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getNonFinalClauseRule());
+ }
+ set(
+ current,
+ "condition",
+ lv_condition_1_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_2=(Token)match(input,25,FOLLOW_25_in_ruleNonFinalClause11464);
+
+ newLeafNode(otherlv_2, grammarAccess.getNonFinalClauseAccess().getRightParenthesisKeyword_2());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5261:1: ( (lv_block_3_0= ruleBlock ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5262:1: (lv_block_3_0= ruleBlock )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5262:1: (lv_block_3_0= ruleBlock )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5263:3: lv_block_3_0= ruleBlock
+ {
+
+ newCompositeNode(grammarAccess.getNonFinalClauseAccess().getBlockBlockParserRuleCall_3_0());
+
+ pushFollow(FOLLOW_ruleBlock_in_ruleNonFinalClause11485);
+ lv_block_3_0=ruleBlock();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getNonFinalClauseRule());
+ }
+ set(
+ current,
+ "block",
+ lv_block_3_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleNonFinalClause"
+
+
+ // $ANTLR start "entryRuleFinalClause"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5287:1: entryRuleFinalClause returns [EObject current=null] : iv_ruleFinalClause= ruleFinalClause EOF ;
+ public final EObject entryRuleFinalClause() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleFinalClause = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5288:2: (iv_ruleFinalClause= ruleFinalClause EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5289:2: iv_ruleFinalClause= ruleFinalClause EOF
+ {
+ newCompositeNode(grammarAccess.getFinalClauseRule());
+ pushFollow(FOLLOW_ruleFinalClause_in_entryRuleFinalClause11521);
+ iv_ruleFinalClause=ruleFinalClause();
+
+ state._fsp--;
+
+ current =iv_ruleFinalClause;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleFinalClause11531);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleFinalClause"
+
+
+ // $ANTLR start "ruleFinalClause"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5296:1: ruleFinalClause returns [EObject current=null] : (otherlv_0= 'else' ( (lv_block_1_0= ruleBlock ) ) ) ;
+ public final EObject ruleFinalClause() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ EObject lv_block_1_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5299:28: ( (otherlv_0= 'else' ( (lv_block_1_0= ruleBlock ) ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5300:1: (otherlv_0= 'else' ( (lv_block_1_0= ruleBlock ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5300:1: (otherlv_0= 'else' ( (lv_block_1_0= ruleBlock ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5300:3: otherlv_0= 'else' ( (lv_block_1_0= ruleBlock ) )
+ {
+ otherlv_0=(Token)match(input,72,FOLLOW_72_in_ruleFinalClause11568);
+
+ newLeafNode(otherlv_0, grammarAccess.getFinalClauseAccess().getElseKeyword_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5304:1: ( (lv_block_1_0= ruleBlock ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5305:1: (lv_block_1_0= ruleBlock )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5305:1: (lv_block_1_0= ruleBlock )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5306:3: lv_block_1_0= ruleBlock
+ {
+
+ newCompositeNode(grammarAccess.getFinalClauseAccess().getBlockBlockParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_ruleBlock_in_ruleFinalClause11589);
+ lv_block_1_0=ruleBlock();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getFinalClauseRule());
+ }
+ set(
+ current,
+ "block",
+ lv_block_1_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleFinalClause"
+
+
+ // $ANTLR start "entryRuleSwitchStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5330:1: entryRuleSwitchStatement returns [EObject current=null] : iv_ruleSwitchStatement= ruleSwitchStatement EOF ;
+ public final EObject entryRuleSwitchStatement() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleSwitchStatement = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5331:2: (iv_ruleSwitchStatement= ruleSwitchStatement EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5332:2: iv_ruleSwitchStatement= ruleSwitchStatement EOF
+ {
+ newCompositeNode(grammarAccess.getSwitchStatementRule());
+ pushFollow(FOLLOW_ruleSwitchStatement_in_entryRuleSwitchStatement11625);
+ iv_ruleSwitchStatement=ruleSwitchStatement();
+
+ state._fsp--;
+
+ current =iv_ruleSwitchStatement;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleSwitchStatement11635);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleSwitchStatement"
+
+
+ // $ANTLR start "ruleSwitchStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5339:1: ruleSwitchStatement returns [EObject current=null] : (otherlv_0= 'switch' otherlv_1= '(' ( (lv_expression_2_0= ruleExpression ) ) otherlv_3= ')' otherlv_4= '{' ( (lv_switchClause_5_0= ruleSwitchClause ) )* ( (lv_defaultClause_6_0= ruleSwitchDefaultClause ) )? otherlv_7= '}' ) ;
+ public final EObject ruleSwitchStatement() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_4=null;
+ Token otherlv_7=null;
+ EObject lv_expression_2_0 = null;
+
+ EObject lv_switchClause_5_0 = null;
+
+ EObject lv_defaultClause_6_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5342:28: ( (otherlv_0= 'switch' otherlv_1= '(' ( (lv_expression_2_0= ruleExpression ) ) otherlv_3= ')' otherlv_4= '{' ( (lv_switchClause_5_0= ruleSwitchClause ) )* ( (lv_defaultClause_6_0= ruleSwitchDefaultClause ) )? otherlv_7= '}' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5343:1: (otherlv_0= 'switch' otherlv_1= '(' ( (lv_expression_2_0= ruleExpression ) ) otherlv_3= ')' otherlv_4= '{' ( (lv_switchClause_5_0= ruleSwitchClause ) )* ( (lv_defaultClause_6_0= ruleSwitchDefaultClause ) )? otherlv_7= '}' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5343:1: (otherlv_0= 'switch' otherlv_1= '(' ( (lv_expression_2_0= ruleExpression ) ) otherlv_3= ')' otherlv_4= '{' ( (lv_switchClause_5_0= ruleSwitchClause ) )* ( (lv_defaultClause_6_0= ruleSwitchDefaultClause ) )? otherlv_7= '}' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5343:3: otherlv_0= 'switch' otherlv_1= '(' ( (lv_expression_2_0= ruleExpression ) ) otherlv_3= ')' otherlv_4= '{' ( (lv_switchClause_5_0= ruleSwitchClause ) )* ( (lv_defaultClause_6_0= ruleSwitchDefaultClause ) )? otherlv_7= '}'
+ {
+ otherlv_0=(Token)match(input,74,FOLLOW_74_in_ruleSwitchStatement11672);
+
+ newLeafNode(otherlv_0, grammarAccess.getSwitchStatementAccess().getSwitchKeyword_0());
+
+ otherlv_1=(Token)match(input,24,FOLLOW_24_in_ruleSwitchStatement11684);
+
+ newLeafNode(otherlv_1, grammarAccess.getSwitchStatementAccess().getLeftParenthesisKeyword_1());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5351:1: ( (lv_expression_2_0= ruleExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5352:1: (lv_expression_2_0= ruleExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5352:1: (lv_expression_2_0= ruleExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5353:3: lv_expression_2_0= ruleExpression
+ {
+
+ newCompositeNode(grammarAccess.getSwitchStatementAccess().getExpressionExpressionParserRuleCall_2_0());
+
+ pushFollow(FOLLOW_ruleExpression_in_ruleSwitchStatement11705);
+ lv_expression_2_0=ruleExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSwitchStatementRule());
+ }
+ set(
+ current,
+ "expression",
+ lv_expression_2_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,25,FOLLOW_25_in_ruleSwitchStatement11717);
+
+ newLeafNode(otherlv_3, grammarAccess.getSwitchStatementAccess().getRightParenthesisKeyword_3());
+
+ otherlv_4=(Token)match(input,60,FOLLOW_60_in_ruleSwitchStatement11729);
+
+ newLeafNode(otherlv_4, grammarAccess.getSwitchStatementAccess().getLeftCurlyBracketKeyword_4());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5377:1: ( (lv_switchClause_5_0= ruleSwitchClause ) )*
+ loop78:
+ do {
+ int alt78=2;
+ int LA78_0 = input.LA(1);
+
+ if ( (LA78_0==75) ) {
+ alt78=1;
+ }
+
+
+ switch (alt78) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5378:1: (lv_switchClause_5_0= ruleSwitchClause )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5378:1: (lv_switchClause_5_0= ruleSwitchClause )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5379:3: lv_switchClause_5_0= ruleSwitchClause
+ {
+
+ newCompositeNode(grammarAccess.getSwitchStatementAccess().getSwitchClauseSwitchClauseParserRuleCall_5_0());
+
+ pushFollow(FOLLOW_ruleSwitchClause_in_ruleSwitchStatement11750);
+ lv_switchClause_5_0=ruleSwitchClause();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSwitchStatementRule());
+ }
+ add(
+ current,
+ "switchClause",
+ lv_switchClause_5_0,
+ "SwitchClause");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop78;
+ }
+ } while (true);
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5395:3: ( (lv_defaultClause_6_0= ruleSwitchDefaultClause ) )?
+ int alt79=2;
+ int LA79_0 = input.LA(1);
+
+ if ( (LA79_0==76) ) {
+ alt79=1;
+ }
+ switch (alt79) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5396:1: (lv_defaultClause_6_0= ruleSwitchDefaultClause )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5396:1: (lv_defaultClause_6_0= ruleSwitchDefaultClause )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5397:3: lv_defaultClause_6_0= ruleSwitchDefaultClause
+ {
+
+ newCompositeNode(grammarAccess.getSwitchStatementAccess().getDefaultClauseSwitchDefaultClauseParserRuleCall_6_0());
+
+ pushFollow(FOLLOW_ruleSwitchDefaultClause_in_ruleSwitchStatement11772);
+ lv_defaultClause_6_0=ruleSwitchDefaultClause();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSwitchStatementRule());
+ }
+ set(
+ current,
+ "defaultClause",
+ lv_defaultClause_6_0,
+ "SwitchDefaultClause");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ otherlv_7=(Token)match(input,62,FOLLOW_62_in_ruleSwitchStatement11785);
+
+ newLeafNode(otherlv_7, grammarAccess.getSwitchStatementAccess().getRightCurlyBracketKeyword_7());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleSwitchStatement"
+
+
+ // $ANTLR start "entryRuleSwitchClause"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5425:1: entryRuleSwitchClause returns [EObject current=null] : iv_ruleSwitchClause= ruleSwitchClause EOF ;
+ public final EObject entryRuleSwitchClause() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleSwitchClause = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5426:2: (iv_ruleSwitchClause= ruleSwitchClause EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5427:2: iv_ruleSwitchClause= ruleSwitchClause EOF
+ {
+ newCompositeNode(grammarAccess.getSwitchClauseRule());
+ pushFollow(FOLLOW_ruleSwitchClause_in_entryRuleSwitchClause11821);
+ iv_ruleSwitchClause=ruleSwitchClause();
+
+ state._fsp--;
+
+ current =iv_ruleSwitchClause;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleSwitchClause11831);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleSwitchClause"
+
+
+ // $ANTLR start "ruleSwitchClause"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5434:1: ruleSwitchClause returns [EObject current=null] : ( ( (lv_switchCase_0_0= ruleSwitchCase ) ) ( (lv_switchCase_1_0= ruleSwitchCase ) )* ( (lv_statementSequence_2_0= ruleNonEmptyStatementSequence ) ) ) ;
+ public final EObject ruleSwitchClause() throws RecognitionException {
+ EObject current = null;
+
+ EObject lv_switchCase_0_0 = null;
+
+ EObject lv_switchCase_1_0 = null;
+
+ EObject lv_statementSequence_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5437:28: ( ( ( (lv_switchCase_0_0= ruleSwitchCase ) ) ( (lv_switchCase_1_0= ruleSwitchCase ) )* ( (lv_statementSequence_2_0= ruleNonEmptyStatementSequence ) ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5438:1: ( ( (lv_switchCase_0_0= ruleSwitchCase ) ) ( (lv_switchCase_1_0= ruleSwitchCase ) )* ( (lv_statementSequence_2_0= ruleNonEmptyStatementSequence ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5438:1: ( ( (lv_switchCase_0_0= ruleSwitchCase ) ) ( (lv_switchCase_1_0= ruleSwitchCase ) )* ( (lv_statementSequence_2_0= ruleNonEmptyStatementSequence ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5438:2: ( (lv_switchCase_0_0= ruleSwitchCase ) ) ( (lv_switchCase_1_0= ruleSwitchCase ) )* ( (lv_statementSequence_2_0= ruleNonEmptyStatementSequence ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5438:2: ( (lv_switchCase_0_0= ruleSwitchCase ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5439:1: (lv_switchCase_0_0= ruleSwitchCase )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5439:1: (lv_switchCase_0_0= ruleSwitchCase )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5440:3: lv_switchCase_0_0= ruleSwitchCase
+ {
+
+ newCompositeNode(grammarAccess.getSwitchClauseAccess().getSwitchCaseSwitchCaseParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_ruleSwitchCase_in_ruleSwitchClause11877);
+ lv_switchCase_0_0=ruleSwitchCase();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSwitchClauseRule());
+ }
+ add(
+ current,
+ "switchCase",
+ lv_switchCase_0_0,
+ "SwitchCase");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5456:2: ( (lv_switchCase_1_0= ruleSwitchCase ) )*
+ loop80:
+ do {
+ int alt80=2;
+ int LA80_0 = input.LA(1);
+
+ if ( (LA80_0==75) ) {
+ alt80=1;
+ }
+
+
+ switch (alt80) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5457:1: (lv_switchCase_1_0= ruleSwitchCase )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5457:1: (lv_switchCase_1_0= ruleSwitchCase )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5458:3: lv_switchCase_1_0= ruleSwitchCase
+ {
+
+ newCompositeNode(grammarAccess.getSwitchClauseAccess().getSwitchCaseSwitchCaseParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_ruleSwitchCase_in_ruleSwitchClause11898);
+ lv_switchCase_1_0=ruleSwitchCase();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSwitchClauseRule());
+ }
+ add(
+ current,
+ "switchCase",
+ lv_switchCase_1_0,
+ "SwitchCase");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop80;
+ }
+ } while (true);
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5474:3: ( (lv_statementSequence_2_0= ruleNonEmptyStatementSequence ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5475:1: (lv_statementSequence_2_0= ruleNonEmptyStatementSequence )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5475:1: (lv_statementSequence_2_0= ruleNonEmptyStatementSequence )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5476:3: lv_statementSequence_2_0= ruleNonEmptyStatementSequence
+ {
+
+ newCompositeNode(grammarAccess.getSwitchClauseAccess().getStatementSequenceNonEmptyStatementSequenceParserRuleCall_2_0());
+
+ pushFollow(FOLLOW_ruleNonEmptyStatementSequence_in_ruleSwitchClause11920);
+ lv_statementSequence_2_0=ruleNonEmptyStatementSequence();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSwitchClauseRule());
+ }
+ set(
+ current,
+ "statementSequence",
+ lv_statementSequence_2_0,
+ "NonEmptyStatementSequence");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleSwitchClause"
+
+
+ // $ANTLR start "entryRuleSwitchCase"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5500:1: entryRuleSwitchCase returns [EObject current=null] : iv_ruleSwitchCase= ruleSwitchCase EOF ;
+ public final EObject entryRuleSwitchCase() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleSwitchCase = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5501:2: (iv_ruleSwitchCase= ruleSwitchCase EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5502:2: iv_ruleSwitchCase= ruleSwitchCase EOF
+ {
+ newCompositeNode(grammarAccess.getSwitchCaseRule());
+ pushFollow(FOLLOW_ruleSwitchCase_in_entryRuleSwitchCase11956);
+ iv_ruleSwitchCase=ruleSwitchCase();
+
+ state._fsp--;
+
+ current =iv_ruleSwitchCase;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleSwitchCase11966);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleSwitchCase"
+
+
+ // $ANTLR start "ruleSwitchCase"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5509:1: ruleSwitchCase returns [EObject current=null] : (otherlv_0= 'case' ( (lv_expression_1_0= ruleExpression ) ) otherlv_2= ':' ) ;
+ public final EObject ruleSwitchCase() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_2=null;
+ EObject lv_expression_1_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5512:28: ( (otherlv_0= 'case' ( (lv_expression_1_0= ruleExpression ) ) otherlv_2= ':' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5513:1: (otherlv_0= 'case' ( (lv_expression_1_0= ruleExpression ) ) otherlv_2= ':' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5513:1: (otherlv_0= 'case' ( (lv_expression_1_0= ruleExpression ) ) otherlv_2= ':' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5513:3: otherlv_0= 'case' ( (lv_expression_1_0= ruleExpression ) ) otherlv_2= ':'
+ {
+ otherlv_0=(Token)match(input,75,FOLLOW_75_in_ruleSwitchCase12003);
+
+ newLeafNode(otherlv_0, grammarAccess.getSwitchCaseAccess().getCaseKeyword_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5517:1: ( (lv_expression_1_0= ruleExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5518:1: (lv_expression_1_0= ruleExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5518:1: (lv_expression_1_0= ruleExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5519:3: lv_expression_1_0= ruleExpression
+ {
+
+ newCompositeNode(grammarAccess.getSwitchCaseAccess().getExpressionExpressionParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_ruleExpression_in_ruleSwitchCase12024);
+ lv_expression_1_0=ruleExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSwitchCaseRule());
+ }
+ set(
+ current,
+ "expression",
+ lv_expression_1_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_2=(Token)match(input,27,FOLLOW_27_in_ruleSwitchCase12036);
+
+ newLeafNode(otherlv_2, grammarAccess.getSwitchCaseAccess().getColonKeyword_2());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleSwitchCase"
+
+
+ // $ANTLR start "entryRuleSwitchDefaultClause"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5547:1: entryRuleSwitchDefaultClause returns [EObject current=null] : iv_ruleSwitchDefaultClause= ruleSwitchDefaultClause EOF ;
+ public final EObject entryRuleSwitchDefaultClause() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleSwitchDefaultClause = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5548:2: (iv_ruleSwitchDefaultClause= ruleSwitchDefaultClause EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5549:2: iv_ruleSwitchDefaultClause= ruleSwitchDefaultClause EOF
+ {
+ newCompositeNode(grammarAccess.getSwitchDefaultClauseRule());
+ pushFollow(FOLLOW_ruleSwitchDefaultClause_in_entryRuleSwitchDefaultClause12072);
+ iv_ruleSwitchDefaultClause=ruleSwitchDefaultClause();
+
+ state._fsp--;
+
+ current =iv_ruleSwitchDefaultClause;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleSwitchDefaultClause12082);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleSwitchDefaultClause"
+
+
+ // $ANTLR start "ruleSwitchDefaultClause"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5556:1: ruleSwitchDefaultClause returns [EObject current=null] : (otherlv_0= 'default' otherlv_1= ':' ( (lv_statementSequence_2_0= ruleNonEmptyStatementSequence ) ) ) ;
+ public final EObject ruleSwitchDefaultClause() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_1=null;
+ EObject lv_statementSequence_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5559:28: ( (otherlv_0= 'default' otherlv_1= ':' ( (lv_statementSequence_2_0= ruleNonEmptyStatementSequence ) ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5560:1: (otherlv_0= 'default' otherlv_1= ':' ( (lv_statementSequence_2_0= ruleNonEmptyStatementSequence ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5560:1: (otherlv_0= 'default' otherlv_1= ':' ( (lv_statementSequence_2_0= ruleNonEmptyStatementSequence ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5560:3: otherlv_0= 'default' otherlv_1= ':' ( (lv_statementSequence_2_0= ruleNonEmptyStatementSequence ) )
+ {
+ otherlv_0=(Token)match(input,76,FOLLOW_76_in_ruleSwitchDefaultClause12119);
+
+ newLeafNode(otherlv_0, grammarAccess.getSwitchDefaultClauseAccess().getDefaultKeyword_0());
+
+ otherlv_1=(Token)match(input,27,FOLLOW_27_in_ruleSwitchDefaultClause12131);
+
+ newLeafNode(otherlv_1, grammarAccess.getSwitchDefaultClauseAccess().getColonKeyword_1());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5568:1: ( (lv_statementSequence_2_0= ruleNonEmptyStatementSequence ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5569:1: (lv_statementSequence_2_0= ruleNonEmptyStatementSequence )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5569:1: (lv_statementSequence_2_0= ruleNonEmptyStatementSequence )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5570:3: lv_statementSequence_2_0= ruleNonEmptyStatementSequence
+ {
+
+ newCompositeNode(grammarAccess.getSwitchDefaultClauseAccess().getStatementSequenceNonEmptyStatementSequenceParserRuleCall_2_0());
+
+ pushFollow(FOLLOW_ruleNonEmptyStatementSequence_in_ruleSwitchDefaultClause12152);
+ lv_statementSequence_2_0=ruleNonEmptyStatementSequence();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSwitchDefaultClauseRule());
+ }
+ set(
+ current,
+ "statementSequence",
+ lv_statementSequence_2_0,
+ "NonEmptyStatementSequence");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleSwitchDefaultClause"
+
+
+ // $ANTLR start "entryRuleNonEmptyStatementSequence"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5594:1: entryRuleNonEmptyStatementSequence returns [EObject current=null] : iv_ruleNonEmptyStatementSequence= ruleNonEmptyStatementSequence EOF ;
+ public final EObject entryRuleNonEmptyStatementSequence() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleNonEmptyStatementSequence = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5595:2: (iv_ruleNonEmptyStatementSequence= ruleNonEmptyStatementSequence EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5596:2: iv_ruleNonEmptyStatementSequence= ruleNonEmptyStatementSequence EOF
+ {
+ newCompositeNode(grammarAccess.getNonEmptyStatementSequenceRule());
+ pushFollow(FOLLOW_ruleNonEmptyStatementSequence_in_entryRuleNonEmptyStatementSequence12188);
+ iv_ruleNonEmptyStatementSequence=ruleNonEmptyStatementSequence();
+
+ state._fsp--;
+
+ current =iv_ruleNonEmptyStatementSequence;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleNonEmptyStatementSequence12198);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleNonEmptyStatementSequence"
+
+
+ // $ANTLR start "ruleNonEmptyStatementSequence"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5603:1: ruleNonEmptyStatementSequence returns [EObject current=null] : ( (lv_statement_0_0= ruleDocumentedStatement ) )+ ;
+ public final EObject ruleNonEmptyStatementSequence() throws RecognitionException {
+ EObject current = null;
+
+ EObject lv_statement_0_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5606:28: ( ( (lv_statement_0_0= ruleDocumentedStatement ) )+ )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5607:1: ( (lv_statement_0_0= ruleDocumentedStatement ) )+
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5607:1: ( (lv_statement_0_0= ruleDocumentedStatement ) )+
+ int cnt81=0;
+ loop81:
+ do {
+ int alt81=2;
+ int LA81_0 = input.LA(1);
+
+ if ( ((LA81_0>=RULE_ID && LA81_0<=RULE_SL_COMMENT)||(LA81_0>=17 && LA81_0<=18)||(LA81_0>=57 && LA81_0<=60)||LA81_0==64||(LA81_0>=67 && LA81_0<=69)||LA81_0==71||LA81_0==74||(LA81_0>=77 && LA81_0<=79)||(LA81_0>=81 && LA81_0<=84)) ) {
+ alt81=1;
+ }
+
+
+ switch (alt81) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5608:1: (lv_statement_0_0= ruleDocumentedStatement )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5608:1: (lv_statement_0_0= ruleDocumentedStatement )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5609:3: lv_statement_0_0= ruleDocumentedStatement
+ {
+
+ newCompositeNode(grammarAccess.getNonEmptyStatementSequenceAccess().getStatementDocumentedStatementParserRuleCall_0());
+
+ pushFollow(FOLLOW_ruleDocumentedStatement_in_ruleNonEmptyStatementSequence12243);
+ lv_statement_0_0=ruleDocumentedStatement();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getNonEmptyStatementSequenceRule());
+ }
+ add(
+ current,
+ "statement",
+ lv_statement_0_0,
+ "DocumentedStatement");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ if ( cnt81 >= 1 ) break loop81;
+ EarlyExitException eee =
+ new EarlyExitException(81, input);
+ throw eee;
+ }
+ cnt81++;
+ } while (true);
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleNonEmptyStatementSequence"
+
+
+ // $ANTLR start "entryRuleWhileStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5633:1: entryRuleWhileStatement returns [EObject current=null] : iv_ruleWhileStatement= ruleWhileStatement EOF ;
+ public final EObject entryRuleWhileStatement() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleWhileStatement = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5634:2: (iv_ruleWhileStatement= ruleWhileStatement EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5635:2: iv_ruleWhileStatement= ruleWhileStatement EOF
+ {
+ newCompositeNode(grammarAccess.getWhileStatementRule());
+ pushFollow(FOLLOW_ruleWhileStatement_in_entryRuleWhileStatement12279);
+ iv_ruleWhileStatement=ruleWhileStatement();
+
+ state._fsp--;
+
+ current =iv_ruleWhileStatement;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleWhileStatement12289);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleWhileStatement"
+
+
+ // $ANTLR start "ruleWhileStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5642:1: ruleWhileStatement returns [EObject current=null] : (otherlv_0= 'while' otherlv_1= '(' ( (lv_condition_2_0= ruleExpression ) ) otherlv_3= ')' ( (lv_block_4_0= ruleBlock ) ) ) ;
+ public final EObject ruleWhileStatement() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ EObject lv_condition_2_0 = null;
+
+ EObject lv_block_4_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5645:28: ( (otherlv_0= 'while' otherlv_1= '(' ( (lv_condition_2_0= ruleExpression ) ) otherlv_3= ')' ( (lv_block_4_0= ruleBlock ) ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5646:1: (otherlv_0= 'while' otherlv_1= '(' ( (lv_condition_2_0= ruleExpression ) ) otherlv_3= ')' ( (lv_block_4_0= ruleBlock ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5646:1: (otherlv_0= 'while' otherlv_1= '(' ( (lv_condition_2_0= ruleExpression ) ) otherlv_3= ')' ( (lv_block_4_0= ruleBlock ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5646:3: otherlv_0= 'while' otherlv_1= '(' ( (lv_condition_2_0= ruleExpression ) ) otherlv_3= ')' ( (lv_block_4_0= ruleBlock ) )
+ {
+ otherlv_0=(Token)match(input,77,FOLLOW_77_in_ruleWhileStatement12326);
+
+ newLeafNode(otherlv_0, grammarAccess.getWhileStatementAccess().getWhileKeyword_0());
+
+ otherlv_1=(Token)match(input,24,FOLLOW_24_in_ruleWhileStatement12338);
+
+ newLeafNode(otherlv_1, grammarAccess.getWhileStatementAccess().getLeftParenthesisKeyword_1());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5654:1: ( (lv_condition_2_0= ruleExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5655:1: (lv_condition_2_0= ruleExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5655:1: (lv_condition_2_0= ruleExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5656:3: lv_condition_2_0= ruleExpression
+ {
+
+ newCompositeNode(grammarAccess.getWhileStatementAccess().getConditionExpressionParserRuleCall_2_0());
+
+ pushFollow(FOLLOW_ruleExpression_in_ruleWhileStatement12359);
+ lv_condition_2_0=ruleExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getWhileStatementRule());
+ }
+ set(
+ current,
+ "condition",
+ lv_condition_2_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,25,FOLLOW_25_in_ruleWhileStatement12371);
+
+ newLeafNode(otherlv_3, grammarAccess.getWhileStatementAccess().getRightParenthesisKeyword_3());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5676:1: ( (lv_block_4_0= ruleBlock ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5677:1: (lv_block_4_0= ruleBlock )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5677:1: (lv_block_4_0= ruleBlock )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5678:3: lv_block_4_0= ruleBlock
+ {
+
+ newCompositeNode(grammarAccess.getWhileStatementAccess().getBlockBlockParserRuleCall_4_0());
+
+ pushFollow(FOLLOW_ruleBlock_in_ruleWhileStatement12392);
+ lv_block_4_0=ruleBlock();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getWhileStatementRule());
+ }
+ set(
+ current,
+ "block",
+ lv_block_4_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleWhileStatement"
+
+
+ // $ANTLR start "entryRuleDoStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5702:1: entryRuleDoStatement returns [EObject current=null] : iv_ruleDoStatement= ruleDoStatement EOF ;
+ public final EObject entryRuleDoStatement() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleDoStatement = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5703:2: (iv_ruleDoStatement= ruleDoStatement EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5704:2: iv_ruleDoStatement= ruleDoStatement EOF
+ {
+ newCompositeNode(grammarAccess.getDoStatementRule());
+ pushFollow(FOLLOW_ruleDoStatement_in_entryRuleDoStatement12428);
+ iv_ruleDoStatement=ruleDoStatement();
+
+ state._fsp--;
+
+ current =iv_ruleDoStatement;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleDoStatement12438);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleDoStatement"
+
+
+ // $ANTLR start "ruleDoStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5711:1: ruleDoStatement returns [EObject current=null] : (otherlv_0= 'do' ( (lv_block_1_0= ruleBlock ) ) otherlv_2= 'while' otherlv_3= '(' ( (lv_condition_4_0= ruleExpression ) ) otherlv_5= ')' otherlv_6= ';' ) ;
+ public final EObject ruleDoStatement() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_2=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ Token otherlv_6=null;
+ EObject lv_block_1_0 = null;
+
+ EObject lv_condition_4_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5714:28: ( (otherlv_0= 'do' ( (lv_block_1_0= ruleBlock ) ) otherlv_2= 'while' otherlv_3= '(' ( (lv_condition_4_0= ruleExpression ) ) otherlv_5= ')' otherlv_6= ';' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5715:1: (otherlv_0= 'do' ( (lv_block_1_0= ruleBlock ) ) otherlv_2= 'while' otherlv_3= '(' ( (lv_condition_4_0= ruleExpression ) ) otherlv_5= ')' otherlv_6= ';' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5715:1: (otherlv_0= 'do' ( (lv_block_1_0= ruleBlock ) ) otherlv_2= 'while' otherlv_3= '(' ( (lv_condition_4_0= ruleExpression ) ) otherlv_5= ')' otherlv_6= ';' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5715:3: otherlv_0= 'do' ( (lv_block_1_0= ruleBlock ) ) otherlv_2= 'while' otherlv_3= '(' ( (lv_condition_4_0= ruleExpression ) ) otherlv_5= ')' otherlv_6= ';'
+ {
+ otherlv_0=(Token)match(input,78,FOLLOW_78_in_ruleDoStatement12475);
+
+ newLeafNode(otherlv_0, grammarAccess.getDoStatementAccess().getDoKeyword_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5719:1: ( (lv_block_1_0= ruleBlock ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5720:1: (lv_block_1_0= ruleBlock )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5720:1: (lv_block_1_0= ruleBlock )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5721:3: lv_block_1_0= ruleBlock
+ {
+
+ newCompositeNode(grammarAccess.getDoStatementAccess().getBlockBlockParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_ruleBlock_in_ruleDoStatement12496);
+ lv_block_1_0=ruleBlock();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getDoStatementRule());
+ }
+ set(
+ current,
+ "block",
+ lv_block_1_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_2=(Token)match(input,77,FOLLOW_77_in_ruleDoStatement12508);
+
+ newLeafNode(otherlv_2, grammarAccess.getDoStatementAccess().getWhileKeyword_2());
+
+ otherlv_3=(Token)match(input,24,FOLLOW_24_in_ruleDoStatement12520);
+
+ newLeafNode(otherlv_3, grammarAccess.getDoStatementAccess().getLeftParenthesisKeyword_3());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5745:1: ( (lv_condition_4_0= ruleExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5746:1: (lv_condition_4_0= ruleExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5746:1: (lv_condition_4_0= ruleExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5747:3: lv_condition_4_0= ruleExpression
+ {
+
+ newCompositeNode(grammarAccess.getDoStatementAccess().getConditionExpressionParserRuleCall_4_0());
+
+ pushFollow(FOLLOW_ruleExpression_in_ruleDoStatement12541);
+ lv_condition_4_0=ruleExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getDoStatementRule());
+ }
+ set(
+ current,
+ "condition",
+ lv_condition_4_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_5=(Token)match(input,25,FOLLOW_25_in_ruleDoStatement12553);
+
+ newLeafNode(otherlv_5, grammarAccess.getDoStatementAccess().getRightParenthesisKeyword_5());
+
+ otherlv_6=(Token)match(input,68,FOLLOW_68_in_ruleDoStatement12565);
+
+ newLeafNode(otherlv_6, grammarAccess.getDoStatementAccess().getSemicolonKeyword_6());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleDoStatement"
+
+
+ // $ANTLR start "entryRuleForStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5779:1: entryRuleForStatement returns [EObject current=null] : iv_ruleForStatement= ruleForStatement EOF ;
+ public final EObject entryRuleForStatement() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleForStatement = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5780:2: (iv_ruleForStatement= ruleForStatement EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5781:2: iv_ruleForStatement= ruleForStatement EOF
+ {
+ newCompositeNode(grammarAccess.getForStatementRule());
+ pushFollow(FOLLOW_ruleForStatement_in_entryRuleForStatement12601);
+ iv_ruleForStatement=ruleForStatement();
+
+ state._fsp--;
+
+ current =iv_ruleForStatement;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleForStatement12611);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleForStatement"
+
+
+ // $ANTLR start "ruleForStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5788:1: ruleForStatement returns [EObject current=null] : (otherlv_0= 'for' otherlv_1= '(' ( (lv_control_2_0= ruleForControl ) ) otherlv_3= ')' ( (lv_block_4_0= ruleBlock ) ) ) ;
+ public final EObject ruleForStatement() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ EObject lv_control_2_0 = null;
+
+ EObject lv_block_4_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5791:28: ( (otherlv_0= 'for' otherlv_1= '(' ( (lv_control_2_0= ruleForControl ) ) otherlv_3= ')' ( (lv_block_4_0= ruleBlock ) ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5792:1: (otherlv_0= 'for' otherlv_1= '(' ( (lv_control_2_0= ruleForControl ) ) otherlv_3= ')' ( (lv_block_4_0= ruleBlock ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5792:1: (otherlv_0= 'for' otherlv_1= '(' ( (lv_control_2_0= ruleForControl ) ) otherlv_3= ')' ( (lv_block_4_0= ruleBlock ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5792:3: otherlv_0= 'for' otherlv_1= '(' ( (lv_control_2_0= ruleForControl ) ) otherlv_3= ')' ( (lv_block_4_0= ruleBlock ) )
+ {
+ otherlv_0=(Token)match(input,79,FOLLOW_79_in_ruleForStatement12648);
+
+ newLeafNode(otherlv_0, grammarAccess.getForStatementAccess().getForKeyword_0());
+
+ otherlv_1=(Token)match(input,24,FOLLOW_24_in_ruleForStatement12660);
+
+ newLeafNode(otherlv_1, grammarAccess.getForStatementAccess().getLeftParenthesisKeyword_1());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5800:1: ( (lv_control_2_0= ruleForControl ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5801:1: (lv_control_2_0= ruleForControl )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5801:1: (lv_control_2_0= ruleForControl )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5802:3: lv_control_2_0= ruleForControl
+ {
+
+ newCompositeNode(grammarAccess.getForStatementAccess().getControlForControlParserRuleCall_2_0());
+
+ pushFollow(FOLLOW_ruleForControl_in_ruleForStatement12681);
+ lv_control_2_0=ruleForControl();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getForStatementRule());
+ }
+ set(
+ current,
+ "control",
+ lv_control_2_0,
+ "ForControl");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,25,FOLLOW_25_in_ruleForStatement12693);
+
+ newLeafNode(otherlv_3, grammarAccess.getForStatementAccess().getRightParenthesisKeyword_3());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5822:1: ( (lv_block_4_0= ruleBlock ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5823:1: (lv_block_4_0= ruleBlock )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5823:1: (lv_block_4_0= ruleBlock )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5824:3: lv_block_4_0= ruleBlock
+ {
+
+ newCompositeNode(grammarAccess.getForStatementAccess().getBlockBlockParserRuleCall_4_0());
+
+ pushFollow(FOLLOW_ruleBlock_in_ruleForStatement12714);
+ lv_block_4_0=ruleBlock();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getForStatementRule());
+ }
+ set(
+ current,
+ "block",
+ lv_block_4_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleForStatement"
+
+
+ // $ANTLR start "entryRuleForControl"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5848:1: entryRuleForControl returns [EObject current=null] : iv_ruleForControl= ruleForControl EOF ;
+ public final EObject entryRuleForControl() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleForControl = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5849:2: (iv_ruleForControl= ruleForControl EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5850:2: iv_ruleForControl= ruleForControl EOF
+ {
+ newCompositeNode(grammarAccess.getForControlRule());
+ pushFollow(FOLLOW_ruleForControl_in_entryRuleForControl12750);
+ iv_ruleForControl=ruleForControl();
+
+ state._fsp--;
+
+ current =iv_ruleForControl;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleForControl12760);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleForControl"
+
+
+ // $ANTLR start "ruleForControl"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5857:1: ruleForControl returns [EObject current=null] : ( ( (lv_loopVariableDefinition_0_0= ruleLoopVariableDefinition ) ) (otherlv_1= ',' ( (lv_loopVariableDefinition_2_0= ruleLoopVariableDefinition ) ) )* ) ;
+ public final EObject ruleForControl() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ EObject lv_loopVariableDefinition_0_0 = null;
+
+ EObject lv_loopVariableDefinition_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5860:28: ( ( ( (lv_loopVariableDefinition_0_0= ruleLoopVariableDefinition ) ) (otherlv_1= ',' ( (lv_loopVariableDefinition_2_0= ruleLoopVariableDefinition ) ) )* ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5861:1: ( ( (lv_loopVariableDefinition_0_0= ruleLoopVariableDefinition ) ) (otherlv_1= ',' ( (lv_loopVariableDefinition_2_0= ruleLoopVariableDefinition ) ) )* )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5861:1: ( ( (lv_loopVariableDefinition_0_0= ruleLoopVariableDefinition ) ) (otherlv_1= ',' ( (lv_loopVariableDefinition_2_0= ruleLoopVariableDefinition ) ) )* )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5861:2: ( (lv_loopVariableDefinition_0_0= ruleLoopVariableDefinition ) ) (otherlv_1= ',' ( (lv_loopVariableDefinition_2_0= ruleLoopVariableDefinition ) ) )*
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5861:2: ( (lv_loopVariableDefinition_0_0= ruleLoopVariableDefinition ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5862:1: (lv_loopVariableDefinition_0_0= ruleLoopVariableDefinition )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5862:1: (lv_loopVariableDefinition_0_0= ruleLoopVariableDefinition )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5863:3: lv_loopVariableDefinition_0_0= ruleLoopVariableDefinition
+ {
+
+ newCompositeNode(grammarAccess.getForControlAccess().getLoopVariableDefinitionLoopVariableDefinitionParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_ruleLoopVariableDefinition_in_ruleForControl12806);
+ lv_loopVariableDefinition_0_0=ruleLoopVariableDefinition();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getForControlRule());
+ }
+ add(
+ current,
+ "loopVariableDefinition",
+ lv_loopVariableDefinition_0_0,
+ "LoopVariableDefinition");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5879:2: (otherlv_1= ',' ( (lv_loopVariableDefinition_2_0= ruleLoopVariableDefinition ) ) )*
+ loop82:
+ do {
+ int alt82=2;
+ int LA82_0 = input.LA(1);
+
+ if ( (LA82_0==21) ) {
+ alt82=1;
+ }
+
+
+ switch (alt82) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5879:4: otherlv_1= ',' ( (lv_loopVariableDefinition_2_0= ruleLoopVariableDefinition ) )
+ {
+ otherlv_1=(Token)match(input,21,FOLLOW_21_in_ruleForControl12819);
+
+ newLeafNode(otherlv_1, grammarAccess.getForControlAccess().getCommaKeyword_1_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5883:1: ( (lv_loopVariableDefinition_2_0= ruleLoopVariableDefinition ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5884:1: (lv_loopVariableDefinition_2_0= ruleLoopVariableDefinition )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5884:1: (lv_loopVariableDefinition_2_0= ruleLoopVariableDefinition )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5885:3: lv_loopVariableDefinition_2_0= ruleLoopVariableDefinition
+ {
+
+ newCompositeNode(grammarAccess.getForControlAccess().getLoopVariableDefinitionLoopVariableDefinitionParserRuleCall_1_1_0());
+
+ pushFollow(FOLLOW_ruleLoopVariableDefinition_in_ruleForControl12840);
+ lv_loopVariableDefinition_2_0=ruleLoopVariableDefinition();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getForControlRule());
+ }
+ add(
+ current,
+ "loopVariableDefinition",
+ lv_loopVariableDefinition_2_0,
+ "LoopVariableDefinition");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop82;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleForControl"
+
+
+ // $ANTLR start "entryRuleLoopVariableDefinition"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5909:1: entryRuleLoopVariableDefinition returns [EObject current=null] : iv_ruleLoopVariableDefinition= ruleLoopVariableDefinition EOF ;
+ public final EObject entryRuleLoopVariableDefinition() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleLoopVariableDefinition = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5910:2: (iv_ruleLoopVariableDefinition= ruleLoopVariableDefinition EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5911:2: iv_ruleLoopVariableDefinition= ruleLoopVariableDefinition EOF
+ {
+ newCompositeNode(grammarAccess.getLoopVariableDefinitionRule());
+ pushFollow(FOLLOW_ruleLoopVariableDefinition_in_entryRuleLoopVariableDefinition12878);
+ iv_ruleLoopVariableDefinition=ruleLoopVariableDefinition();
+
+ state._fsp--;
+
+ current =iv_ruleLoopVariableDefinition;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleLoopVariableDefinition12888);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleLoopVariableDefinition"
+
+
+ // $ANTLR start "ruleLoopVariableDefinition"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5918:1: ruleLoopVariableDefinition returns [EObject current=null] : ( ( ( (lv_name_0_0= RULE_ID ) ) otherlv_1= 'in' ( (lv_expression1_2_0= ruleExpression ) ) (otherlv_3= '..' ( (lv_expression2_4_0= ruleExpression ) ) )? ) | ( ( (lv_type_5_0= ruleQualifiedNameWithBinding ) ) ( (lv_name_6_0= RULE_ID ) ) otherlv_7= ':' ( (lv_expression_8_0= ruleExpression ) ) ) ) ;
+ public final EObject ruleLoopVariableDefinition() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_name_0_0=null;
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token lv_name_6_0=null;
+ Token otherlv_7=null;
+ EObject lv_expression1_2_0 = null;
+
+ EObject lv_expression2_4_0 = null;
+
+ EObject lv_type_5_0 = null;
+
+ EObject lv_expression_8_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5921:28: ( ( ( ( (lv_name_0_0= RULE_ID ) ) otherlv_1= 'in' ( (lv_expression1_2_0= ruleExpression ) ) (otherlv_3= '..' ( (lv_expression2_4_0= ruleExpression ) ) )? ) | ( ( (lv_type_5_0= ruleQualifiedNameWithBinding ) ) ( (lv_name_6_0= RULE_ID ) ) otherlv_7= ':' ( (lv_expression_8_0= ruleExpression ) ) ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5922:1: ( ( ( (lv_name_0_0= RULE_ID ) ) otherlv_1= 'in' ( (lv_expression1_2_0= ruleExpression ) ) (otherlv_3= '..' ( (lv_expression2_4_0= ruleExpression ) ) )? ) | ( ( (lv_type_5_0= ruleQualifiedNameWithBinding ) ) ( (lv_name_6_0= RULE_ID ) ) otherlv_7= ':' ( (lv_expression_8_0= ruleExpression ) ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5922:1: ( ( ( (lv_name_0_0= RULE_ID ) ) otherlv_1= 'in' ( (lv_expression1_2_0= ruleExpression ) ) (otherlv_3= '..' ( (lv_expression2_4_0= ruleExpression ) ) )? ) | ( ( (lv_type_5_0= ruleQualifiedNameWithBinding ) ) ( (lv_name_6_0= RULE_ID ) ) otherlv_7= ':' ( (lv_expression_8_0= ruleExpression ) ) ) )
+ int alt84=2;
+ int LA84_0 = input.LA(1);
+
+ if ( (LA84_0==RULE_ID) ) {
+ int LA84_1 = input.LA(2);
+
+ if ( (LA84_1==80) ) {
+ alt84=1;
+ }
+ else if ( (LA84_1==RULE_ID||(LA84_1>=19 && LA84_1<=20)) ) {
+ alt84=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 84, 1, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 84, 0, input);
+
+ throw nvae;
+ }
+ switch (alt84) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5922:2: ( ( (lv_name_0_0= RULE_ID ) ) otherlv_1= 'in' ( (lv_expression1_2_0= ruleExpression ) ) (otherlv_3= '..' ( (lv_expression2_4_0= ruleExpression ) ) )? )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5922:2: ( ( (lv_name_0_0= RULE_ID ) ) otherlv_1= 'in' ( (lv_expression1_2_0= ruleExpression ) ) (otherlv_3= '..' ( (lv_expression2_4_0= ruleExpression ) ) )? )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5922:3: ( (lv_name_0_0= RULE_ID ) ) otherlv_1= 'in' ( (lv_expression1_2_0= ruleExpression ) ) (otherlv_3= '..' ( (lv_expression2_4_0= ruleExpression ) ) )?
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5922:3: ( (lv_name_0_0= RULE_ID ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5923:1: (lv_name_0_0= RULE_ID )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5923:1: (lv_name_0_0= RULE_ID )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5924:3: lv_name_0_0= RULE_ID
+ {
+ lv_name_0_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleLoopVariableDefinition12931);
+
+ newLeafNode(lv_name_0_0, grammarAccess.getLoopVariableDefinitionAccess().getNameIDTerminalRuleCall_0_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getLoopVariableDefinitionRule());
+ }
+ setWithLastConsumed(
+ current,
+ "name",
+ lv_name_0_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+ otherlv_1=(Token)match(input,80,FOLLOW_80_in_ruleLoopVariableDefinition12948);
+
+ newLeafNode(otherlv_1, grammarAccess.getLoopVariableDefinitionAccess().getInKeyword_0_1());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5944:1: ( (lv_expression1_2_0= ruleExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5945:1: (lv_expression1_2_0= ruleExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5945:1: (lv_expression1_2_0= ruleExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5946:3: lv_expression1_2_0= ruleExpression
+ {
+
+ newCompositeNode(grammarAccess.getLoopVariableDefinitionAccess().getExpression1ExpressionParserRuleCall_0_2_0());
+
+ pushFollow(FOLLOW_ruleExpression_in_ruleLoopVariableDefinition12969);
+ lv_expression1_2_0=ruleExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getLoopVariableDefinitionRule());
+ }
+ set(
+ current,
+ "expression1",
+ lv_expression1_2_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5962:2: (otherlv_3= '..' ( (lv_expression2_4_0= ruleExpression ) ) )?
+ int alt83=2;
+ int LA83_0 = input.LA(1);
+
+ if ( (LA83_0==61) ) {
+ alt83=1;
+ }
+ switch (alt83) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5962:4: otherlv_3= '..' ( (lv_expression2_4_0= ruleExpression ) )
+ {
+ otherlv_3=(Token)match(input,61,FOLLOW_61_in_ruleLoopVariableDefinition12982);
+
+ newLeafNode(otherlv_3, grammarAccess.getLoopVariableDefinitionAccess().getFullStopFullStopKeyword_0_3_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5966:1: ( (lv_expression2_4_0= ruleExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5967:1: (lv_expression2_4_0= ruleExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5967:1: (lv_expression2_4_0= ruleExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5968:3: lv_expression2_4_0= ruleExpression
+ {
+
+ newCompositeNode(grammarAccess.getLoopVariableDefinitionAccess().getExpression2ExpressionParserRuleCall_0_3_1_0());
+
+ pushFollow(FOLLOW_ruleExpression_in_ruleLoopVariableDefinition13003);
+ lv_expression2_4_0=ruleExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getLoopVariableDefinitionRule());
+ }
+ set(
+ current,
+ "expression2",
+ lv_expression2_4_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5985:6: ( ( (lv_type_5_0= ruleQualifiedNameWithBinding ) ) ( (lv_name_6_0= RULE_ID ) ) otherlv_7= ':' ( (lv_expression_8_0= ruleExpression ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5985:6: ( ( (lv_type_5_0= ruleQualifiedNameWithBinding ) ) ( (lv_name_6_0= RULE_ID ) ) otherlv_7= ':' ( (lv_expression_8_0= ruleExpression ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5985:7: ( (lv_type_5_0= ruleQualifiedNameWithBinding ) ) ( (lv_name_6_0= RULE_ID ) ) otherlv_7= ':' ( (lv_expression_8_0= ruleExpression ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5985:7: ( (lv_type_5_0= ruleQualifiedNameWithBinding ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5986:1: (lv_type_5_0= ruleQualifiedNameWithBinding )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5986:1: (lv_type_5_0= ruleQualifiedNameWithBinding )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:5987:3: lv_type_5_0= ruleQualifiedNameWithBinding
+ {
+
+ newCompositeNode(grammarAccess.getLoopVariableDefinitionAccess().getTypeQualifiedNameWithBindingParserRuleCall_1_0_0());
+
+ pushFollow(FOLLOW_ruleQualifiedNameWithBinding_in_ruleLoopVariableDefinition13034);
+ lv_type_5_0=ruleQualifiedNameWithBinding();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getLoopVariableDefinitionRule());
+ }
+ set(
+ current,
+ "type",
+ lv_type_5_0,
+ "QualifiedNameWithBinding");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6003:2: ( (lv_name_6_0= RULE_ID ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6004:1: (lv_name_6_0= RULE_ID )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6004:1: (lv_name_6_0= RULE_ID )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6005:3: lv_name_6_0= RULE_ID
+ {
+ lv_name_6_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleLoopVariableDefinition13051);
+
+ newLeafNode(lv_name_6_0, grammarAccess.getLoopVariableDefinitionAccess().getNameIDTerminalRuleCall_1_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getLoopVariableDefinitionRule());
+ }
+ setWithLastConsumed(
+ current,
+ "name",
+ lv_name_6_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+ otherlv_7=(Token)match(input,27,FOLLOW_27_in_ruleLoopVariableDefinition13068);
+
+ newLeafNode(otherlv_7, grammarAccess.getLoopVariableDefinitionAccess().getColonKeyword_1_2());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6025:1: ( (lv_expression_8_0= ruleExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6026:1: (lv_expression_8_0= ruleExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6026:1: (lv_expression_8_0= ruleExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6027:3: lv_expression_8_0= ruleExpression
+ {
+
+ newCompositeNode(grammarAccess.getLoopVariableDefinitionAccess().getExpressionExpressionParserRuleCall_1_3_0());
+
+ pushFollow(FOLLOW_ruleExpression_in_ruleLoopVariableDefinition13089);
+ lv_expression_8_0=ruleExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getLoopVariableDefinitionRule());
+ }
+ set(
+ current,
+ "expression",
+ lv_expression_8_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleLoopVariableDefinition"
+
+
+ // $ANTLR start "entryRuleBreakStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6051:1: entryRuleBreakStatement returns [EObject current=null] : iv_ruleBreakStatement= ruleBreakStatement EOF ;
+ public final EObject entryRuleBreakStatement() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleBreakStatement = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6052:2: (iv_ruleBreakStatement= ruleBreakStatement EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6053:2: iv_ruleBreakStatement= ruleBreakStatement EOF
+ {
+ newCompositeNode(grammarAccess.getBreakStatementRule());
+ pushFollow(FOLLOW_ruleBreakStatement_in_entryRuleBreakStatement13126);
+ iv_ruleBreakStatement=ruleBreakStatement();
+
+ state._fsp--;
+
+ current =iv_ruleBreakStatement;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleBreakStatement13136);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleBreakStatement"
+
+
+ // $ANTLR start "ruleBreakStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6060:1: ruleBreakStatement returns [EObject current=null] : ( () otherlv_1= 'break' otherlv_2= ';' ) ;
+ public final EObject ruleBreakStatement() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6063:28: ( ( () otherlv_1= 'break' otherlv_2= ';' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6064:1: ( () otherlv_1= 'break' otherlv_2= ';' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6064:1: ( () otherlv_1= 'break' otherlv_2= ';' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6064:2: () otherlv_1= 'break' otherlv_2= ';'
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6064:2: ()
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6065:5:
+ {
+
+ current = forceCreateModelElement(
+ grammarAccess.getBreakStatementAccess().getBreakStatementAction_0(),
+ current);
+
+
+ }
+
+ otherlv_1=(Token)match(input,81,FOLLOW_81_in_ruleBreakStatement13182);
+
+ newLeafNode(otherlv_1, grammarAccess.getBreakStatementAccess().getBreakKeyword_1());
+
+ otherlv_2=(Token)match(input,68,FOLLOW_68_in_ruleBreakStatement13194);
+
+ newLeafNode(otherlv_2, grammarAccess.getBreakStatementAccess().getSemicolonKeyword_2());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleBreakStatement"
+
+
+ // $ANTLR start "entryRuleReturnStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6086:1: entryRuleReturnStatement returns [EObject current=null] : iv_ruleReturnStatement= ruleReturnStatement EOF ;
+ public final EObject entryRuleReturnStatement() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleReturnStatement = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6087:2: (iv_ruleReturnStatement= ruleReturnStatement EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6088:2: iv_ruleReturnStatement= ruleReturnStatement EOF
+ {
+ newCompositeNode(grammarAccess.getReturnStatementRule());
+ pushFollow(FOLLOW_ruleReturnStatement_in_entryRuleReturnStatement13230);
+ iv_ruleReturnStatement=ruleReturnStatement();
+
+ state._fsp--;
+
+ current =iv_ruleReturnStatement;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleReturnStatement13240);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleReturnStatement"
+
+
+ // $ANTLR start "ruleReturnStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6095:1: ruleReturnStatement returns [EObject current=null] : (otherlv_0= 'return' ( (lv_expression_1_0= ruleExpression ) ) otherlv_2= ';' ) ;
+ public final EObject ruleReturnStatement() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_2=null;
+ EObject lv_expression_1_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6098:28: ( (otherlv_0= 'return' ( (lv_expression_1_0= ruleExpression ) ) otherlv_2= ';' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6099:1: (otherlv_0= 'return' ( (lv_expression_1_0= ruleExpression ) ) otherlv_2= ';' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6099:1: (otherlv_0= 'return' ( (lv_expression_1_0= ruleExpression ) ) otherlv_2= ';' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6099:3: otherlv_0= 'return' ( (lv_expression_1_0= ruleExpression ) ) otherlv_2= ';'
+ {
+ otherlv_0=(Token)match(input,82,FOLLOW_82_in_ruleReturnStatement13277);
+
+ newLeafNode(otherlv_0, grammarAccess.getReturnStatementAccess().getReturnKeyword_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6103:1: ( (lv_expression_1_0= ruleExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6104:1: (lv_expression_1_0= ruleExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6104:1: (lv_expression_1_0= ruleExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6105:3: lv_expression_1_0= ruleExpression
+ {
+
+ newCompositeNode(grammarAccess.getReturnStatementAccess().getExpressionExpressionParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_ruleExpression_in_ruleReturnStatement13298);
+ lv_expression_1_0=ruleExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getReturnStatementRule());
+ }
+ set(
+ current,
+ "expression",
+ lv_expression_1_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_2=(Token)match(input,68,FOLLOW_68_in_ruleReturnStatement13310);
+
+ newLeafNode(otherlv_2, grammarAccess.getReturnStatementAccess().getSemicolonKeyword_2());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleReturnStatement"
+
+
+ // $ANTLR start "entryRuleAcceptStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6133:1: entryRuleAcceptStatement returns [EObject current=null] : iv_ruleAcceptStatement= ruleAcceptStatement EOF ;
+ public final EObject entryRuleAcceptStatement() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleAcceptStatement = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6134:2: (iv_ruleAcceptStatement= ruleAcceptStatement EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6135:2: iv_ruleAcceptStatement= ruleAcceptStatement EOF
+ {
+ newCompositeNode(grammarAccess.getAcceptStatementRule());
+ pushFollow(FOLLOW_ruleAcceptStatement_in_entryRuleAcceptStatement13346);
+ iv_ruleAcceptStatement=ruleAcceptStatement();
+
+ state._fsp--;
+
+ current =iv_ruleAcceptStatement;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleAcceptStatement13356);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleAcceptStatement"
+
+
+ // $ANTLR start "ruleAcceptStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6142:1: ruleAcceptStatement returns [EObject current=null] : ( ( (lv_clause_0_0= ruleAcceptClause ) ) ( ( (lv_simpleAccept_1_0= ruleSimpleAcceptStatementCompletion ) ) | ( (lv_compoundAccept_2_0= ruleCompoundAcceptStatementCompletion ) ) ) ) ;
+ public final EObject ruleAcceptStatement() throws RecognitionException {
+ EObject current = null;
+
+ EObject lv_clause_0_0 = null;
+
+ EObject lv_simpleAccept_1_0 = null;
+
+ EObject lv_compoundAccept_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6145:28: ( ( ( (lv_clause_0_0= ruleAcceptClause ) ) ( ( (lv_simpleAccept_1_0= ruleSimpleAcceptStatementCompletion ) ) | ( (lv_compoundAccept_2_0= ruleCompoundAcceptStatementCompletion ) ) ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6146:1: ( ( (lv_clause_0_0= ruleAcceptClause ) ) ( ( (lv_simpleAccept_1_0= ruleSimpleAcceptStatementCompletion ) ) | ( (lv_compoundAccept_2_0= ruleCompoundAcceptStatementCompletion ) ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6146:1: ( ( (lv_clause_0_0= ruleAcceptClause ) ) ( ( (lv_simpleAccept_1_0= ruleSimpleAcceptStatementCompletion ) ) | ( (lv_compoundAccept_2_0= ruleCompoundAcceptStatementCompletion ) ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6146:2: ( (lv_clause_0_0= ruleAcceptClause ) ) ( ( (lv_simpleAccept_1_0= ruleSimpleAcceptStatementCompletion ) ) | ( (lv_compoundAccept_2_0= ruleCompoundAcceptStatementCompletion ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6146:2: ( (lv_clause_0_0= ruleAcceptClause ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6147:1: (lv_clause_0_0= ruleAcceptClause )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6147:1: (lv_clause_0_0= ruleAcceptClause )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6148:3: lv_clause_0_0= ruleAcceptClause
+ {
+
+ newCompositeNode(grammarAccess.getAcceptStatementAccess().getClauseAcceptClauseParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_ruleAcceptClause_in_ruleAcceptStatement13402);
+ lv_clause_0_0=ruleAcceptClause();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getAcceptStatementRule());
+ }
+ set(
+ current,
+ "clause",
+ lv_clause_0_0,
+ "AcceptClause");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6164:2: ( ( (lv_simpleAccept_1_0= ruleSimpleAcceptStatementCompletion ) ) | ( (lv_compoundAccept_2_0= ruleCompoundAcceptStatementCompletion ) ) )
+ int alt85=2;
+ int LA85_0 = input.LA(1);
+
+ if ( (LA85_0==68) ) {
+ alt85=1;
+ }
+ else if ( (LA85_0==60) ) {
+ alt85=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 85, 0, input);
+
+ throw nvae;
+ }
+ switch (alt85) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6164:3: ( (lv_simpleAccept_1_0= ruleSimpleAcceptStatementCompletion ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6164:3: ( (lv_simpleAccept_1_0= ruleSimpleAcceptStatementCompletion ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6165:1: (lv_simpleAccept_1_0= ruleSimpleAcceptStatementCompletion )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6165:1: (lv_simpleAccept_1_0= ruleSimpleAcceptStatementCompletion )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6166:3: lv_simpleAccept_1_0= ruleSimpleAcceptStatementCompletion
+ {
+
+ newCompositeNode(grammarAccess.getAcceptStatementAccess().getSimpleAcceptSimpleAcceptStatementCompletionParserRuleCall_1_0_0());
+
+ pushFollow(FOLLOW_ruleSimpleAcceptStatementCompletion_in_ruleAcceptStatement13424);
+ lv_simpleAccept_1_0=ruleSimpleAcceptStatementCompletion();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getAcceptStatementRule());
+ }
+ set(
+ current,
+ "simpleAccept",
+ lv_simpleAccept_1_0,
+ "SimpleAcceptStatementCompletion");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6183:6: ( (lv_compoundAccept_2_0= ruleCompoundAcceptStatementCompletion ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6183:6: ( (lv_compoundAccept_2_0= ruleCompoundAcceptStatementCompletion ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6184:1: (lv_compoundAccept_2_0= ruleCompoundAcceptStatementCompletion )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6184:1: (lv_compoundAccept_2_0= ruleCompoundAcceptStatementCompletion )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6185:3: lv_compoundAccept_2_0= ruleCompoundAcceptStatementCompletion
+ {
+
+ newCompositeNode(grammarAccess.getAcceptStatementAccess().getCompoundAcceptCompoundAcceptStatementCompletionParserRuleCall_1_1_0());
+
+ pushFollow(FOLLOW_ruleCompoundAcceptStatementCompletion_in_ruleAcceptStatement13451);
+ lv_compoundAccept_2_0=ruleCompoundAcceptStatementCompletion();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getAcceptStatementRule());
+ }
+ set(
+ current,
+ "compoundAccept",
+ lv_compoundAccept_2_0,
+ "CompoundAcceptStatementCompletion");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleAcceptStatement"
+
+
+ // $ANTLR start "entryRuleSimpleAcceptStatementCompletion"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6209:1: entryRuleSimpleAcceptStatementCompletion returns [EObject current=null] : iv_ruleSimpleAcceptStatementCompletion= ruleSimpleAcceptStatementCompletion EOF ;
+ public final EObject entryRuleSimpleAcceptStatementCompletion() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleSimpleAcceptStatementCompletion = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6210:2: (iv_ruleSimpleAcceptStatementCompletion= ruleSimpleAcceptStatementCompletion EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6211:2: iv_ruleSimpleAcceptStatementCompletion= ruleSimpleAcceptStatementCompletion EOF
+ {
+ newCompositeNode(grammarAccess.getSimpleAcceptStatementCompletionRule());
+ pushFollow(FOLLOW_ruleSimpleAcceptStatementCompletion_in_entryRuleSimpleAcceptStatementCompletion13488);
+ iv_ruleSimpleAcceptStatementCompletion=ruleSimpleAcceptStatementCompletion();
+
+ state._fsp--;
+
+ current =iv_ruleSimpleAcceptStatementCompletion;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleSimpleAcceptStatementCompletion13498);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleSimpleAcceptStatementCompletion"
+
+
+ // $ANTLR start "ruleSimpleAcceptStatementCompletion"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6218:1: ruleSimpleAcceptStatementCompletion returns [EObject current=null] : ( () otherlv_1= ';' ) ;
+ public final EObject ruleSimpleAcceptStatementCompletion() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6221:28: ( ( () otherlv_1= ';' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6222:1: ( () otherlv_1= ';' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6222:1: ( () otherlv_1= ';' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6222:2: () otherlv_1= ';'
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6222:2: ()
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6223:5:
+ {
+
+ current = forceCreateModelElement(
+ grammarAccess.getSimpleAcceptStatementCompletionAccess().getSimpleAcceptStatementCompletionAction_0(),
+ current);
+
+
+ }
+
+ otherlv_1=(Token)match(input,68,FOLLOW_68_in_ruleSimpleAcceptStatementCompletion13544);
+
+ newLeafNode(otherlv_1, grammarAccess.getSimpleAcceptStatementCompletionAccess().getSemicolonKeyword_1());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleSimpleAcceptStatementCompletion"
+
+
+ // $ANTLR start "entryRuleCompoundAcceptStatementCompletion"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6240:1: entryRuleCompoundAcceptStatementCompletion returns [EObject current=null] : iv_ruleCompoundAcceptStatementCompletion= ruleCompoundAcceptStatementCompletion EOF ;
+ public final EObject entryRuleCompoundAcceptStatementCompletion() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleCompoundAcceptStatementCompletion = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6241:2: (iv_ruleCompoundAcceptStatementCompletion= ruleCompoundAcceptStatementCompletion EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6242:2: iv_ruleCompoundAcceptStatementCompletion= ruleCompoundAcceptStatementCompletion EOF
+ {
+ newCompositeNode(grammarAccess.getCompoundAcceptStatementCompletionRule());
+ pushFollow(FOLLOW_ruleCompoundAcceptStatementCompletion_in_entryRuleCompoundAcceptStatementCompletion13580);
+ iv_ruleCompoundAcceptStatementCompletion=ruleCompoundAcceptStatementCompletion();
+
+ state._fsp--;
+
+ current =iv_ruleCompoundAcceptStatementCompletion;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleCompoundAcceptStatementCompletion13590);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleCompoundAcceptStatementCompletion"
+
+
+ // $ANTLR start "ruleCompoundAcceptStatementCompletion"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6249:1: ruleCompoundAcceptStatementCompletion returns [EObject current=null] : ( ( (lv_block_0_0= ruleBlock ) ) (otherlv_1= 'or' ( (lv_acceptBlock_2_0= ruleAcceptBlock ) ) )* ) ;
+ public final EObject ruleCompoundAcceptStatementCompletion() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ EObject lv_block_0_0 = null;
+
+ EObject lv_acceptBlock_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6252:28: ( ( ( (lv_block_0_0= ruleBlock ) ) (otherlv_1= 'or' ( (lv_acceptBlock_2_0= ruleAcceptBlock ) ) )* ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6253:1: ( ( (lv_block_0_0= ruleBlock ) ) (otherlv_1= 'or' ( (lv_acceptBlock_2_0= ruleAcceptBlock ) ) )* )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6253:1: ( ( (lv_block_0_0= ruleBlock ) ) (otherlv_1= 'or' ( (lv_acceptBlock_2_0= ruleAcceptBlock ) ) )* )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6253:2: ( (lv_block_0_0= ruleBlock ) ) (otherlv_1= 'or' ( (lv_acceptBlock_2_0= ruleAcceptBlock ) ) )*
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6253:2: ( (lv_block_0_0= ruleBlock ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6254:1: (lv_block_0_0= ruleBlock )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6254:1: (lv_block_0_0= ruleBlock )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6255:3: lv_block_0_0= ruleBlock
+ {
+
+ newCompositeNode(grammarAccess.getCompoundAcceptStatementCompletionAccess().getBlockBlockParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_ruleBlock_in_ruleCompoundAcceptStatementCompletion13636);
+ lv_block_0_0=ruleBlock();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getCompoundAcceptStatementCompletionRule());
+ }
+ set(
+ current,
+ "block",
+ lv_block_0_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6271:2: (otherlv_1= 'or' ( (lv_acceptBlock_2_0= ruleAcceptBlock ) ) )*
+ loop86:
+ do {
+ int alt86=2;
+ int LA86_0 = input.LA(1);
+
+ if ( (LA86_0==73) ) {
+ alt86=1;
+ }
+
+
+ switch (alt86) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6271:4: otherlv_1= 'or' ( (lv_acceptBlock_2_0= ruleAcceptBlock ) )
+ {
+ otherlv_1=(Token)match(input,73,FOLLOW_73_in_ruleCompoundAcceptStatementCompletion13649);
+
+ newLeafNode(otherlv_1, grammarAccess.getCompoundAcceptStatementCompletionAccess().getOrKeyword_1_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6275:1: ( (lv_acceptBlock_2_0= ruleAcceptBlock ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6276:1: (lv_acceptBlock_2_0= ruleAcceptBlock )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6276:1: (lv_acceptBlock_2_0= ruleAcceptBlock )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6277:3: lv_acceptBlock_2_0= ruleAcceptBlock
+ {
+
+ newCompositeNode(grammarAccess.getCompoundAcceptStatementCompletionAccess().getAcceptBlockAcceptBlockParserRuleCall_1_1_0());
+
+ pushFollow(FOLLOW_ruleAcceptBlock_in_ruleCompoundAcceptStatementCompletion13670);
+ lv_acceptBlock_2_0=ruleAcceptBlock();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getCompoundAcceptStatementCompletionRule());
+ }
+ add(
+ current,
+ "acceptBlock",
+ lv_acceptBlock_2_0,
+ "AcceptBlock");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop86;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleCompoundAcceptStatementCompletion"
+
+
+ // $ANTLR start "entryRuleAcceptBlock"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6301:1: entryRuleAcceptBlock returns [EObject current=null] : iv_ruleAcceptBlock= ruleAcceptBlock EOF ;
+ public final EObject entryRuleAcceptBlock() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleAcceptBlock = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6302:2: (iv_ruleAcceptBlock= ruleAcceptBlock EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6303:2: iv_ruleAcceptBlock= ruleAcceptBlock EOF
+ {
+ newCompositeNode(grammarAccess.getAcceptBlockRule());
+ pushFollow(FOLLOW_ruleAcceptBlock_in_entryRuleAcceptBlock13708);
+ iv_ruleAcceptBlock=ruleAcceptBlock();
+
+ state._fsp--;
+
+ current =iv_ruleAcceptBlock;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleAcceptBlock13718);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleAcceptBlock"
+
+
+ // $ANTLR start "ruleAcceptBlock"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6310:1: ruleAcceptBlock returns [EObject current=null] : ( ( (lv_clause_0_0= ruleAcceptClause ) ) ( (lv_block_1_0= ruleBlock ) ) ) ;
+ public final EObject ruleAcceptBlock() throws RecognitionException {
+ EObject current = null;
+
+ EObject lv_clause_0_0 = null;
+
+ EObject lv_block_1_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6313:28: ( ( ( (lv_clause_0_0= ruleAcceptClause ) ) ( (lv_block_1_0= ruleBlock ) ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6314:1: ( ( (lv_clause_0_0= ruleAcceptClause ) ) ( (lv_block_1_0= ruleBlock ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6314:1: ( ( (lv_clause_0_0= ruleAcceptClause ) ) ( (lv_block_1_0= ruleBlock ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6314:2: ( (lv_clause_0_0= ruleAcceptClause ) ) ( (lv_block_1_0= ruleBlock ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6314:2: ( (lv_clause_0_0= ruleAcceptClause ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6315:1: (lv_clause_0_0= ruleAcceptClause )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6315:1: (lv_clause_0_0= ruleAcceptClause )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6316:3: lv_clause_0_0= ruleAcceptClause
+ {
+
+ newCompositeNode(grammarAccess.getAcceptBlockAccess().getClauseAcceptClauseParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_ruleAcceptClause_in_ruleAcceptBlock13764);
+ lv_clause_0_0=ruleAcceptClause();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getAcceptBlockRule());
+ }
+ set(
+ current,
+ "clause",
+ lv_clause_0_0,
+ "AcceptClause");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6332:2: ( (lv_block_1_0= ruleBlock ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6333:1: (lv_block_1_0= ruleBlock )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6333:1: (lv_block_1_0= ruleBlock )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6334:3: lv_block_1_0= ruleBlock
+ {
+
+ newCompositeNode(grammarAccess.getAcceptBlockAccess().getBlockBlockParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_ruleBlock_in_ruleAcceptBlock13785);
+ lv_block_1_0=ruleBlock();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getAcceptBlockRule());
+ }
+ set(
+ current,
+ "block",
+ lv_block_1_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleAcceptBlock"
+
+
+ // $ANTLR start "entryRuleAcceptClause"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6358:1: entryRuleAcceptClause returns [EObject current=null] : iv_ruleAcceptClause= ruleAcceptClause EOF ;
+ public final EObject entryRuleAcceptClause() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleAcceptClause = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6359:2: (iv_ruleAcceptClause= ruleAcceptClause EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6360:2: iv_ruleAcceptClause= ruleAcceptClause EOF
+ {
+ newCompositeNode(grammarAccess.getAcceptClauseRule());
+ pushFollow(FOLLOW_ruleAcceptClause_in_entryRuleAcceptClause13821);
+ iv_ruleAcceptClause=ruleAcceptClause();
+
+ state._fsp--;
+
+ current =iv_ruleAcceptClause;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleAcceptClause13831);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleAcceptClause"
+
+
+ // $ANTLR start "ruleAcceptClause"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6367:1: ruleAcceptClause returns [EObject current=null] : (otherlv_0= 'accept' otherlv_1= '(' ( ( (lv_name_2_0= RULE_ID ) ) otherlv_3= ':' )? ( (lv_qualifiedNameList_4_0= ruleQualifiedNameList ) ) otherlv_5= ')' ) ;
+ public final EObject ruleAcceptClause() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_1=null;
+ Token lv_name_2_0=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ EObject lv_qualifiedNameList_4_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6370:28: ( (otherlv_0= 'accept' otherlv_1= '(' ( ( (lv_name_2_0= RULE_ID ) ) otherlv_3= ':' )? ( (lv_qualifiedNameList_4_0= ruleQualifiedNameList ) ) otherlv_5= ')' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6371:1: (otherlv_0= 'accept' otherlv_1= '(' ( ( (lv_name_2_0= RULE_ID ) ) otherlv_3= ':' )? ( (lv_qualifiedNameList_4_0= ruleQualifiedNameList ) ) otherlv_5= ')' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6371:1: (otherlv_0= 'accept' otherlv_1= '(' ( ( (lv_name_2_0= RULE_ID ) ) otherlv_3= ':' )? ( (lv_qualifiedNameList_4_0= ruleQualifiedNameList ) ) otherlv_5= ')' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6371:3: otherlv_0= 'accept' otherlv_1= '(' ( ( (lv_name_2_0= RULE_ID ) ) otherlv_3= ':' )? ( (lv_qualifiedNameList_4_0= ruleQualifiedNameList ) ) otherlv_5= ')'
+ {
+ otherlv_0=(Token)match(input,83,FOLLOW_83_in_ruleAcceptClause13868);
+
+ newLeafNode(otherlv_0, grammarAccess.getAcceptClauseAccess().getAcceptKeyword_0());
+
+ otherlv_1=(Token)match(input,24,FOLLOW_24_in_ruleAcceptClause13880);
+
+ newLeafNode(otherlv_1, grammarAccess.getAcceptClauseAccess().getLeftParenthesisKeyword_1());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6379:1: ( ( (lv_name_2_0= RULE_ID ) ) otherlv_3= ':' )?
+ int alt87=2;
+ int LA87_0 = input.LA(1);
+
+ if ( (LA87_0==RULE_ID) ) {
+ int LA87_1 = input.LA(2);
+
+ if ( (LA87_1==27) ) {
+ alt87=1;
+ }
+ }
+ switch (alt87) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6379:2: ( (lv_name_2_0= RULE_ID ) ) otherlv_3= ':'
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6379:2: ( (lv_name_2_0= RULE_ID ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6380:1: (lv_name_2_0= RULE_ID )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6380:1: (lv_name_2_0= RULE_ID )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6381:3: lv_name_2_0= RULE_ID
+ {
+ lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleAcceptClause13898);
+
+ newLeafNode(lv_name_2_0, grammarAccess.getAcceptClauseAccess().getNameIDTerminalRuleCall_2_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getAcceptClauseRule());
+ }
+ setWithLastConsumed(
+ current,
+ "name",
+ lv_name_2_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,27,FOLLOW_27_in_ruleAcceptClause13915);
+
+ newLeafNode(otherlv_3, grammarAccess.getAcceptClauseAccess().getColonKeyword_2_1());
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6401:3: ( (lv_qualifiedNameList_4_0= ruleQualifiedNameList ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6402:1: (lv_qualifiedNameList_4_0= ruleQualifiedNameList )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6402:1: (lv_qualifiedNameList_4_0= ruleQualifiedNameList )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6403:3: lv_qualifiedNameList_4_0= ruleQualifiedNameList
+ {
+
+ newCompositeNode(grammarAccess.getAcceptClauseAccess().getQualifiedNameListQualifiedNameListParserRuleCall_3_0());
+
+ pushFollow(FOLLOW_ruleQualifiedNameList_in_ruleAcceptClause13938);
+ lv_qualifiedNameList_4_0=ruleQualifiedNameList();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getAcceptClauseRule());
+ }
+ set(
+ current,
+ "qualifiedNameList",
+ lv_qualifiedNameList_4_0,
+ "QualifiedNameList");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_5=(Token)match(input,25,FOLLOW_25_in_ruleAcceptClause13950);
+
+ newLeafNode(otherlv_5, grammarAccess.getAcceptClauseAccess().getRightParenthesisKeyword_4());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleAcceptClause"
+
+
+ // $ANTLR start "entryRuleClassifyStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6431:1: entryRuleClassifyStatement returns [EObject current=null] : iv_ruleClassifyStatement= ruleClassifyStatement EOF ;
+ public final EObject entryRuleClassifyStatement() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleClassifyStatement = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6432:2: (iv_ruleClassifyStatement= ruleClassifyStatement EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6433:2: iv_ruleClassifyStatement= ruleClassifyStatement EOF
+ {
+ newCompositeNode(grammarAccess.getClassifyStatementRule());
+ pushFollow(FOLLOW_ruleClassifyStatement_in_entryRuleClassifyStatement13986);
+ iv_ruleClassifyStatement=ruleClassifyStatement();
+
+ state._fsp--;
+
+ current =iv_ruleClassifyStatement;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleClassifyStatement13996);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleClassifyStatement"
+
+
+ // $ANTLR start "ruleClassifyStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6440:1: ruleClassifyStatement returns [EObject current=null] : (otherlv_0= 'classify' ( (lv_expression_1_0= ruleExpression ) ) ( (lv_clause_2_0= ruleClassificationClause ) ) otherlv_3= ';' ) ;
+ public final EObject ruleClassifyStatement() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_3=null;
+ EObject lv_expression_1_0 = null;
+
+ EObject lv_clause_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6443:28: ( (otherlv_0= 'classify' ( (lv_expression_1_0= ruleExpression ) ) ( (lv_clause_2_0= ruleClassificationClause ) ) otherlv_3= ';' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6444:1: (otherlv_0= 'classify' ( (lv_expression_1_0= ruleExpression ) ) ( (lv_clause_2_0= ruleClassificationClause ) ) otherlv_3= ';' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6444:1: (otherlv_0= 'classify' ( (lv_expression_1_0= ruleExpression ) ) ( (lv_clause_2_0= ruleClassificationClause ) ) otherlv_3= ';' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6444:3: otherlv_0= 'classify' ( (lv_expression_1_0= ruleExpression ) ) ( (lv_clause_2_0= ruleClassificationClause ) ) otherlv_3= ';'
+ {
+ otherlv_0=(Token)match(input,84,FOLLOW_84_in_ruleClassifyStatement14033);
+
+ newLeafNode(otherlv_0, grammarAccess.getClassifyStatementAccess().getClassifyKeyword_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6448:1: ( (lv_expression_1_0= ruleExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6449:1: (lv_expression_1_0= ruleExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6449:1: (lv_expression_1_0= ruleExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6450:3: lv_expression_1_0= ruleExpression
+ {
+
+ newCompositeNode(grammarAccess.getClassifyStatementAccess().getExpressionExpressionParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_ruleExpression_in_ruleClassifyStatement14054);
+ lv_expression_1_0=ruleExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getClassifyStatementRule());
+ }
+ set(
+ current,
+ "expression",
+ lv_expression_1_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6466:2: ( (lv_clause_2_0= ruleClassificationClause ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6467:1: (lv_clause_2_0= ruleClassificationClause )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6467:1: (lv_clause_2_0= ruleClassificationClause )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6468:3: lv_clause_2_0= ruleClassificationClause
+ {
+
+ newCompositeNode(grammarAccess.getClassifyStatementAccess().getClauseClassificationClauseParserRuleCall_2_0());
+
+ pushFollow(FOLLOW_ruleClassificationClause_in_ruleClassifyStatement14075);
+ lv_clause_2_0=ruleClassificationClause();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getClassifyStatementRule());
+ }
+ set(
+ current,
+ "clause",
+ lv_clause_2_0,
+ "ClassificationClause");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,68,FOLLOW_68_in_ruleClassifyStatement14087);
+
+ newLeafNode(otherlv_3, grammarAccess.getClassifyStatementAccess().getSemicolonKeyword_3());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleClassifyStatement"
+
+
+ // $ANTLR start "entryRuleClassificationClause"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6496:1: entryRuleClassificationClause returns [EObject current=null] : iv_ruleClassificationClause= ruleClassificationClause EOF ;
+ public final EObject entryRuleClassificationClause() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleClassificationClause = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6497:2: (iv_ruleClassificationClause= ruleClassificationClause EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6498:2: iv_ruleClassificationClause= ruleClassificationClause EOF
+ {
+ newCompositeNode(grammarAccess.getClassificationClauseRule());
+ pushFollow(FOLLOW_ruleClassificationClause_in_entryRuleClassificationClause14123);
+ iv_ruleClassificationClause=ruleClassificationClause();
+
+ state._fsp--;
+
+ current =iv_ruleClassificationClause;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleClassificationClause14133);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleClassificationClause"
+
+
+ // $ANTLR start "ruleClassificationClause"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6505:1: ruleClassificationClause returns [EObject current=null] : ( ( ( (lv_classifyFromClause_0_0= ruleClassificationFromClause ) ) ( (lv_classifyToClause_1_0= ruleClassificationToClause ) )? ) | ( ( (lv_reclassyAllClause_2_0= ruleReclassifyAllClause ) )? ( (lv_classifyToClause_3_0= ruleClassificationToClause ) ) ) ) ;
+ public final EObject ruleClassificationClause() throws RecognitionException {
+ EObject current = null;
+
+ EObject lv_classifyFromClause_0_0 = null;
+
+ EObject lv_classifyToClause_1_0 = null;
+
+ EObject lv_reclassyAllClause_2_0 = null;
+
+ EObject lv_classifyToClause_3_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6508:28: ( ( ( ( (lv_classifyFromClause_0_0= ruleClassificationFromClause ) ) ( (lv_classifyToClause_1_0= ruleClassificationToClause ) )? ) | ( ( (lv_reclassyAllClause_2_0= ruleReclassifyAllClause ) )? ( (lv_classifyToClause_3_0= ruleClassificationToClause ) ) ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6509:1: ( ( ( (lv_classifyFromClause_0_0= ruleClassificationFromClause ) ) ( (lv_classifyToClause_1_0= ruleClassificationToClause ) )? ) | ( ( (lv_reclassyAllClause_2_0= ruleReclassifyAllClause ) )? ( (lv_classifyToClause_3_0= ruleClassificationToClause ) ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6509:1: ( ( ( (lv_classifyFromClause_0_0= ruleClassificationFromClause ) ) ( (lv_classifyToClause_1_0= ruleClassificationToClause ) )? ) | ( ( (lv_reclassyAllClause_2_0= ruleReclassifyAllClause ) )? ( (lv_classifyToClause_3_0= ruleClassificationToClause ) ) ) )
+ int alt90=2;
+ int LA90_0 = input.LA(1);
+
+ if ( (LA90_0==85) ) {
+ int LA90_1 = input.LA(2);
+
+ if ( (LA90_1==RULE_ID) ) {
+ alt90=1;
+ }
+ else if ( (LA90_1==16) ) {
+ alt90=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 90, 1, input);
+
+ throw nvae;
+ }
+ }
+ else if ( (LA90_0==86) ) {
+ alt90=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 90, 0, input);
+
+ throw nvae;
+ }
+ switch (alt90) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6509:2: ( ( (lv_classifyFromClause_0_0= ruleClassificationFromClause ) ) ( (lv_classifyToClause_1_0= ruleClassificationToClause ) )? )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6509:2: ( ( (lv_classifyFromClause_0_0= ruleClassificationFromClause ) ) ( (lv_classifyToClause_1_0= ruleClassificationToClause ) )? )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6509:3: ( (lv_classifyFromClause_0_0= ruleClassificationFromClause ) ) ( (lv_classifyToClause_1_0= ruleClassificationToClause ) )?
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6509:3: ( (lv_classifyFromClause_0_0= ruleClassificationFromClause ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6510:1: (lv_classifyFromClause_0_0= ruleClassificationFromClause )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6510:1: (lv_classifyFromClause_0_0= ruleClassificationFromClause )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6511:3: lv_classifyFromClause_0_0= ruleClassificationFromClause
+ {
+
+ newCompositeNode(grammarAccess.getClassificationClauseAccess().getClassifyFromClauseClassificationFromClauseParserRuleCall_0_0_0());
+
+ pushFollow(FOLLOW_ruleClassificationFromClause_in_ruleClassificationClause14180);
+ lv_classifyFromClause_0_0=ruleClassificationFromClause();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getClassificationClauseRule());
+ }
+ set(
+ current,
+ "classifyFromClause",
+ lv_classifyFromClause_0_0,
+ "ClassificationFromClause");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6527:2: ( (lv_classifyToClause_1_0= ruleClassificationToClause ) )?
+ int alt88=2;
+ int LA88_0 = input.LA(1);
+
+ if ( (LA88_0==86) ) {
+ alt88=1;
+ }
+ switch (alt88) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6528:1: (lv_classifyToClause_1_0= ruleClassificationToClause )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6528:1: (lv_classifyToClause_1_0= ruleClassificationToClause )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6529:3: lv_classifyToClause_1_0= ruleClassificationToClause
+ {
+
+ newCompositeNode(grammarAccess.getClassificationClauseAccess().getClassifyToClauseClassificationToClauseParserRuleCall_0_1_0());
+
+ pushFollow(FOLLOW_ruleClassificationToClause_in_ruleClassificationClause14201);
+ lv_classifyToClause_1_0=ruleClassificationToClause();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getClassificationClauseRule());
+ }
+ set(
+ current,
+ "classifyToClause",
+ lv_classifyToClause_1_0,
+ "ClassificationToClause");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6546:6: ( ( (lv_reclassyAllClause_2_0= ruleReclassifyAllClause ) )? ( (lv_classifyToClause_3_0= ruleClassificationToClause ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6546:6: ( ( (lv_reclassyAllClause_2_0= ruleReclassifyAllClause ) )? ( (lv_classifyToClause_3_0= ruleClassificationToClause ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6546:7: ( (lv_reclassyAllClause_2_0= ruleReclassifyAllClause ) )? ( (lv_classifyToClause_3_0= ruleClassificationToClause ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6546:7: ( (lv_reclassyAllClause_2_0= ruleReclassifyAllClause ) )?
+ int alt89=2;
+ int LA89_0 = input.LA(1);
+
+ if ( (LA89_0==85) ) {
+ alt89=1;
+ }
+ switch (alt89) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6547:1: (lv_reclassyAllClause_2_0= ruleReclassifyAllClause )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6547:1: (lv_reclassyAllClause_2_0= ruleReclassifyAllClause )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6548:3: lv_reclassyAllClause_2_0= ruleReclassifyAllClause
+ {
+
+ newCompositeNode(grammarAccess.getClassificationClauseAccess().getReclassyAllClauseReclassifyAllClauseParserRuleCall_1_0_0());
+
+ pushFollow(FOLLOW_ruleReclassifyAllClause_in_ruleClassificationClause14231);
+ lv_reclassyAllClause_2_0=ruleReclassifyAllClause();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getClassificationClauseRule());
+ }
+ set(
+ current,
+ "reclassyAllClause",
+ lv_reclassyAllClause_2_0,
+ "ReclassifyAllClause");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6564:3: ( (lv_classifyToClause_3_0= ruleClassificationToClause ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6565:1: (lv_classifyToClause_3_0= ruleClassificationToClause )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6565:1: (lv_classifyToClause_3_0= ruleClassificationToClause )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6566:3: lv_classifyToClause_3_0= ruleClassificationToClause
+ {
+
+ newCompositeNode(grammarAccess.getClassificationClauseAccess().getClassifyToClauseClassificationToClauseParserRuleCall_1_1_0());
+
+ pushFollow(FOLLOW_ruleClassificationToClause_in_ruleClassificationClause14253);
+ lv_classifyToClause_3_0=ruleClassificationToClause();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getClassificationClauseRule());
+ }
+ set(
+ current,
+ "classifyToClause",
+ lv_classifyToClause_3_0,
+ "ClassificationToClause");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleClassificationClause"
+
+
+ // $ANTLR start "entryRuleClassificationFromClause"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6590:1: entryRuleClassificationFromClause returns [EObject current=null] : iv_ruleClassificationFromClause= ruleClassificationFromClause EOF ;
+ public final EObject entryRuleClassificationFromClause() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleClassificationFromClause = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6591:2: (iv_ruleClassificationFromClause= ruleClassificationFromClause EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6592:2: iv_ruleClassificationFromClause= ruleClassificationFromClause EOF
+ {
+ newCompositeNode(grammarAccess.getClassificationFromClauseRule());
+ pushFollow(FOLLOW_ruleClassificationFromClause_in_entryRuleClassificationFromClause14290);
+ iv_ruleClassificationFromClause=ruleClassificationFromClause();
+
+ state._fsp--;
+
+ current =iv_ruleClassificationFromClause;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleClassificationFromClause14300);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleClassificationFromClause"
+
+
+ // $ANTLR start "ruleClassificationFromClause"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6599:1: ruleClassificationFromClause returns [EObject current=null] : (otherlv_0= 'from' ( (lv_qualifiedNameList_1_0= ruleQualifiedNameList ) ) ) ;
+ public final EObject ruleClassificationFromClause() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ EObject lv_qualifiedNameList_1_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6602:28: ( (otherlv_0= 'from' ( (lv_qualifiedNameList_1_0= ruleQualifiedNameList ) ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6603:1: (otherlv_0= 'from' ( (lv_qualifiedNameList_1_0= ruleQualifiedNameList ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6603:1: (otherlv_0= 'from' ( (lv_qualifiedNameList_1_0= ruleQualifiedNameList ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6603:3: otherlv_0= 'from' ( (lv_qualifiedNameList_1_0= ruleQualifiedNameList ) )
+ {
+ otherlv_0=(Token)match(input,85,FOLLOW_85_in_ruleClassificationFromClause14337);
+
+ newLeafNode(otherlv_0, grammarAccess.getClassificationFromClauseAccess().getFromKeyword_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6607:1: ( (lv_qualifiedNameList_1_0= ruleQualifiedNameList ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6608:1: (lv_qualifiedNameList_1_0= ruleQualifiedNameList )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6608:1: (lv_qualifiedNameList_1_0= ruleQualifiedNameList )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6609:3: lv_qualifiedNameList_1_0= ruleQualifiedNameList
+ {
+
+ newCompositeNode(grammarAccess.getClassificationFromClauseAccess().getQualifiedNameListQualifiedNameListParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_ruleQualifiedNameList_in_ruleClassificationFromClause14358);
+ lv_qualifiedNameList_1_0=ruleQualifiedNameList();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getClassificationFromClauseRule());
+ }
+ set(
+ current,
+ "qualifiedNameList",
+ lv_qualifiedNameList_1_0,
+ "QualifiedNameList");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleClassificationFromClause"
+
+
+ // $ANTLR start "entryRuleClassificationToClause"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6633:1: entryRuleClassificationToClause returns [EObject current=null] : iv_ruleClassificationToClause= ruleClassificationToClause EOF ;
+ public final EObject entryRuleClassificationToClause() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleClassificationToClause = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6634:2: (iv_ruleClassificationToClause= ruleClassificationToClause EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6635:2: iv_ruleClassificationToClause= ruleClassificationToClause EOF
+ {
+ newCompositeNode(grammarAccess.getClassificationToClauseRule());
+ pushFollow(FOLLOW_ruleClassificationToClause_in_entryRuleClassificationToClause14394);
+ iv_ruleClassificationToClause=ruleClassificationToClause();
+
+ state._fsp--;
+
+ current =iv_ruleClassificationToClause;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleClassificationToClause14404);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleClassificationToClause"
+
+
+ // $ANTLR start "ruleClassificationToClause"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6642:1: ruleClassificationToClause returns [EObject current=null] : (otherlv_0= 'to' ( (lv_qualifiedNameList_1_0= ruleQualifiedNameList ) ) ) ;
+ public final EObject ruleClassificationToClause() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ EObject lv_qualifiedNameList_1_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6645:28: ( (otherlv_0= 'to' ( (lv_qualifiedNameList_1_0= ruleQualifiedNameList ) ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6646:1: (otherlv_0= 'to' ( (lv_qualifiedNameList_1_0= ruleQualifiedNameList ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6646:1: (otherlv_0= 'to' ( (lv_qualifiedNameList_1_0= ruleQualifiedNameList ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6646:3: otherlv_0= 'to' ( (lv_qualifiedNameList_1_0= ruleQualifiedNameList ) )
+ {
+ otherlv_0=(Token)match(input,86,FOLLOW_86_in_ruleClassificationToClause14441);
+
+ newLeafNode(otherlv_0, grammarAccess.getClassificationToClauseAccess().getToKeyword_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6650:1: ( (lv_qualifiedNameList_1_0= ruleQualifiedNameList ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6651:1: (lv_qualifiedNameList_1_0= ruleQualifiedNameList )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6651:1: (lv_qualifiedNameList_1_0= ruleQualifiedNameList )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6652:3: lv_qualifiedNameList_1_0= ruleQualifiedNameList
+ {
+
+ newCompositeNode(grammarAccess.getClassificationToClauseAccess().getQualifiedNameListQualifiedNameListParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_ruleQualifiedNameList_in_ruleClassificationToClause14462);
+ lv_qualifiedNameList_1_0=ruleQualifiedNameList();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getClassificationToClauseRule());
+ }
+ set(
+ current,
+ "qualifiedNameList",
+ lv_qualifiedNameList_1_0,
+ "QualifiedNameList");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleClassificationToClause"
+
+
+ // $ANTLR start "entryRuleReclassifyAllClause"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6676:1: entryRuleReclassifyAllClause returns [EObject current=null] : iv_ruleReclassifyAllClause= ruleReclassifyAllClause EOF ;
+ public final EObject entryRuleReclassifyAllClause() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleReclassifyAllClause = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6677:2: (iv_ruleReclassifyAllClause= ruleReclassifyAllClause EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6678:2: iv_ruleReclassifyAllClause= ruleReclassifyAllClause EOF
+ {
+ newCompositeNode(grammarAccess.getReclassifyAllClauseRule());
+ pushFollow(FOLLOW_ruleReclassifyAllClause_in_entryRuleReclassifyAllClause14498);
+ iv_ruleReclassifyAllClause=ruleReclassifyAllClause();
+
+ state._fsp--;
+
+ current =iv_ruleReclassifyAllClause;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleReclassifyAllClause14508);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleReclassifyAllClause"
+
+
+ // $ANTLR start "ruleReclassifyAllClause"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6685:1: ruleReclassifyAllClause returns [EObject current=null] : ( () otherlv_1= 'from' otherlv_2= '*' ) ;
+ public final EObject ruleReclassifyAllClause() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6688:28: ( ( () otherlv_1= 'from' otherlv_2= '*' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6689:1: ( () otherlv_1= 'from' otherlv_2= '*' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6689:1: ( () otherlv_1= 'from' otherlv_2= '*' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6689:2: () otherlv_1= 'from' otherlv_2= '*'
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6689:2: ()
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6690:5:
+ {
+
+ current = forceCreateModelElement(
+ grammarAccess.getReclassifyAllClauseAccess().getReclassifyAllClauseAction_0(),
+ current);
+
+
+ }
+
+ otherlv_1=(Token)match(input,85,FOLLOW_85_in_ruleReclassifyAllClause14554);
+
+ newLeafNode(otherlv_1, grammarAccess.getReclassifyAllClauseAccess().getFromKeyword_1());
+
+ otherlv_2=(Token)match(input,16,FOLLOW_16_in_ruleReclassifyAllClause14566);
+
+ newLeafNode(otherlv_2, grammarAccess.getReclassifyAllClauseAccess().getAsteriskKeyword_2());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleReclassifyAllClause"
+
+
+ // $ANTLR start "entryRuleQualifiedNameList"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6711:1: entryRuleQualifiedNameList returns [EObject current=null] : iv_ruleQualifiedNameList= ruleQualifiedNameList EOF ;
+ public final EObject entryRuleQualifiedNameList() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleQualifiedNameList = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6712:2: (iv_ruleQualifiedNameList= ruleQualifiedNameList EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6713:2: iv_ruleQualifiedNameList= ruleQualifiedNameList EOF
+ {
+ newCompositeNode(grammarAccess.getQualifiedNameListRule());
+ pushFollow(FOLLOW_ruleQualifiedNameList_in_entryRuleQualifiedNameList14602);
+ iv_ruleQualifiedNameList=ruleQualifiedNameList();
+
+ state._fsp--;
+
+ current =iv_ruleQualifiedNameList;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleQualifiedNameList14612);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleQualifiedNameList"
+
+
+ // $ANTLR start "ruleQualifiedNameList"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6720:1: ruleQualifiedNameList returns [EObject current=null] : ( ( (lv_qualifiedName_0_0= ruleQualifiedNameWithBinding ) ) (otherlv_1= ',' ( (lv_qualifiedName_2_0= ruleQualifiedNameWithBinding ) ) )* ) ;
+ public final EObject ruleQualifiedNameList() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ EObject lv_qualifiedName_0_0 = null;
+
+ EObject lv_qualifiedName_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6723:28: ( ( ( (lv_qualifiedName_0_0= ruleQualifiedNameWithBinding ) ) (otherlv_1= ',' ( (lv_qualifiedName_2_0= ruleQualifiedNameWithBinding ) ) )* ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6724:1: ( ( (lv_qualifiedName_0_0= ruleQualifiedNameWithBinding ) ) (otherlv_1= ',' ( (lv_qualifiedName_2_0= ruleQualifiedNameWithBinding ) ) )* )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6724:1: ( ( (lv_qualifiedName_0_0= ruleQualifiedNameWithBinding ) ) (otherlv_1= ',' ( (lv_qualifiedName_2_0= ruleQualifiedNameWithBinding ) ) )* )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6724:2: ( (lv_qualifiedName_0_0= ruleQualifiedNameWithBinding ) ) (otherlv_1= ',' ( (lv_qualifiedName_2_0= ruleQualifiedNameWithBinding ) ) )*
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6724:2: ( (lv_qualifiedName_0_0= ruleQualifiedNameWithBinding ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6725:1: (lv_qualifiedName_0_0= ruleQualifiedNameWithBinding )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6725:1: (lv_qualifiedName_0_0= ruleQualifiedNameWithBinding )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6726:3: lv_qualifiedName_0_0= ruleQualifiedNameWithBinding
+ {
+
+ newCompositeNode(grammarAccess.getQualifiedNameListAccess().getQualifiedNameQualifiedNameWithBindingParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_ruleQualifiedNameWithBinding_in_ruleQualifiedNameList14658);
+ lv_qualifiedName_0_0=ruleQualifiedNameWithBinding();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getQualifiedNameListRule());
+ }
+ add(
+ current,
+ "qualifiedName",
+ lv_qualifiedName_0_0,
+ "QualifiedNameWithBinding");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6742:2: (otherlv_1= ',' ( (lv_qualifiedName_2_0= ruleQualifiedNameWithBinding ) ) )*
+ loop91:
+ do {
+ int alt91=2;
+ int LA91_0 = input.LA(1);
+
+ if ( (LA91_0==21) ) {
+ alt91=1;
+ }
+
+
+ switch (alt91) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6742:4: otherlv_1= ',' ( (lv_qualifiedName_2_0= ruleQualifiedNameWithBinding ) )
+ {
+ otherlv_1=(Token)match(input,21,FOLLOW_21_in_ruleQualifiedNameList14671);
+
+ newLeafNode(otherlv_1, grammarAccess.getQualifiedNameListAccess().getCommaKeyword_1_0());
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6746:1: ( (lv_qualifiedName_2_0= ruleQualifiedNameWithBinding ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6747:1: (lv_qualifiedName_2_0= ruleQualifiedNameWithBinding )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6747:1: (lv_qualifiedName_2_0= ruleQualifiedNameWithBinding )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6748:3: lv_qualifiedName_2_0= ruleQualifiedNameWithBinding
+ {
+
+ newCompositeNode(grammarAccess.getQualifiedNameListAccess().getQualifiedNameQualifiedNameWithBindingParserRuleCall_1_1_0());
+
+ pushFollow(FOLLOW_ruleQualifiedNameWithBinding_in_ruleQualifiedNameList14692);
+ lv_qualifiedName_2_0=ruleQualifiedNameWithBinding();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getQualifiedNameListRule());
+ }
+ add(
+ current,
+ "qualifiedName",
+ lv_qualifiedName_2_0,
+ "QualifiedNameWithBinding");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop91;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleQualifiedNameList"
+
+
+ // $ANTLR start "entryRuleInvocationOrAssignementOrDeclarationStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6772:1: entryRuleInvocationOrAssignementOrDeclarationStatement returns [EObject current=null] : iv_ruleInvocationOrAssignementOrDeclarationStatement= ruleInvocationOrAssignementOrDeclarationStatement EOF ;
+ public final EObject entryRuleInvocationOrAssignementOrDeclarationStatement() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleInvocationOrAssignementOrDeclarationStatement = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6773:2: (iv_ruleInvocationOrAssignementOrDeclarationStatement= ruleInvocationOrAssignementOrDeclarationStatement EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6774:2: iv_ruleInvocationOrAssignementOrDeclarationStatement= ruleInvocationOrAssignementOrDeclarationStatement EOF
+ {
+ newCompositeNode(grammarAccess.getInvocationOrAssignementOrDeclarationStatementRule());
+ pushFollow(FOLLOW_ruleInvocationOrAssignementOrDeclarationStatement_in_entryRuleInvocationOrAssignementOrDeclarationStatement14730);
+ iv_ruleInvocationOrAssignementOrDeclarationStatement=ruleInvocationOrAssignementOrDeclarationStatement();
+
+ state._fsp--;
+
+ current =iv_ruleInvocationOrAssignementOrDeclarationStatement;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleInvocationOrAssignementOrDeclarationStatement14740);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleInvocationOrAssignementOrDeclarationStatement"
+
+
+ // $ANTLR start "ruleInvocationOrAssignementOrDeclarationStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6781:1: ruleInvocationOrAssignementOrDeclarationStatement returns [EObject current=null] : ( ( (lv_typePart_OR_assignedPart_OR_invocationPart_0_0= ruleNameExpression ) ) ( ( (lv_variableDeclarationCompletion_1_0= ruleVariableDeclarationCompletion ) ) | ( (lv_assignmentCompletion_2_0= ruleAssignmentCompletion ) ) )? otherlv_3= ';' ) ;
+ public final EObject ruleInvocationOrAssignementOrDeclarationStatement() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_3=null;
+ EObject lv_typePart_OR_assignedPart_OR_invocationPart_0_0 = null;
+
+ EObject lv_variableDeclarationCompletion_1_0 = null;
+
+ EObject lv_assignmentCompletion_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6784:28: ( ( ( (lv_typePart_OR_assignedPart_OR_invocationPart_0_0= ruleNameExpression ) ) ( ( (lv_variableDeclarationCompletion_1_0= ruleVariableDeclarationCompletion ) ) | ( (lv_assignmentCompletion_2_0= ruleAssignmentCompletion ) ) )? otherlv_3= ';' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6785:1: ( ( (lv_typePart_OR_assignedPart_OR_invocationPart_0_0= ruleNameExpression ) ) ( ( (lv_variableDeclarationCompletion_1_0= ruleVariableDeclarationCompletion ) ) | ( (lv_assignmentCompletion_2_0= ruleAssignmentCompletion ) ) )? otherlv_3= ';' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6785:1: ( ( (lv_typePart_OR_assignedPart_OR_invocationPart_0_0= ruleNameExpression ) ) ( ( (lv_variableDeclarationCompletion_1_0= ruleVariableDeclarationCompletion ) ) | ( (lv_assignmentCompletion_2_0= ruleAssignmentCompletion ) ) )? otherlv_3= ';' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6785:2: ( (lv_typePart_OR_assignedPart_OR_invocationPart_0_0= ruleNameExpression ) ) ( ( (lv_variableDeclarationCompletion_1_0= ruleVariableDeclarationCompletion ) ) | ( (lv_assignmentCompletion_2_0= ruleAssignmentCompletion ) ) )? otherlv_3= ';'
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6785:2: ( (lv_typePart_OR_assignedPart_OR_invocationPart_0_0= ruleNameExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6786:1: (lv_typePart_OR_assignedPart_OR_invocationPart_0_0= ruleNameExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6786:1: (lv_typePart_OR_assignedPart_OR_invocationPart_0_0= ruleNameExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6787:3: lv_typePart_OR_assignedPart_OR_invocationPart_0_0= ruleNameExpression
+ {
+
+ newCompositeNode(grammarAccess.getInvocationOrAssignementOrDeclarationStatementAccess().getTypePart_OR_assignedPart_OR_invocationPartNameExpressionParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_ruleNameExpression_in_ruleInvocationOrAssignementOrDeclarationStatement14786);
+ lv_typePart_OR_assignedPart_OR_invocationPart_0_0=ruleNameExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getInvocationOrAssignementOrDeclarationStatementRule());
+ }
+ set(
+ current,
+ "typePart_OR_assignedPart_OR_invocationPart",
+ lv_typePart_OR_assignedPart_OR_invocationPart_0_0,
+ "NameExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6803:2: ( ( (lv_variableDeclarationCompletion_1_0= ruleVariableDeclarationCompletion ) ) | ( (lv_assignmentCompletion_2_0= ruleAssignmentCompletion ) ) )?
+ int alt92=3;
+ int LA92_0 = input.LA(1);
+
+ if ( (LA92_0==RULE_ID||LA92_0==50) ) {
+ alt92=1;
+ }
+ else if ( (LA92_0==70||(LA92_0>=103 && LA92_0<=113)) ) {
+ alt92=2;
+ }
+ switch (alt92) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6803:3: ( (lv_variableDeclarationCompletion_1_0= ruleVariableDeclarationCompletion ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6803:3: ( (lv_variableDeclarationCompletion_1_0= ruleVariableDeclarationCompletion ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6804:1: (lv_variableDeclarationCompletion_1_0= ruleVariableDeclarationCompletion )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6804:1: (lv_variableDeclarationCompletion_1_0= ruleVariableDeclarationCompletion )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6805:3: lv_variableDeclarationCompletion_1_0= ruleVariableDeclarationCompletion
+ {
+
+ newCompositeNode(grammarAccess.getInvocationOrAssignementOrDeclarationStatementAccess().getVariableDeclarationCompletionVariableDeclarationCompletionParserRuleCall_1_0_0());
+
+ pushFollow(FOLLOW_ruleVariableDeclarationCompletion_in_ruleInvocationOrAssignementOrDeclarationStatement14808);
+ lv_variableDeclarationCompletion_1_0=ruleVariableDeclarationCompletion();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getInvocationOrAssignementOrDeclarationStatementRule());
+ }
+ set(
+ current,
+ "variableDeclarationCompletion",
+ lv_variableDeclarationCompletion_1_0,
+ "VariableDeclarationCompletion");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6822:6: ( (lv_assignmentCompletion_2_0= ruleAssignmentCompletion ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6822:6: ( (lv_assignmentCompletion_2_0= ruleAssignmentCompletion ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6823:1: (lv_assignmentCompletion_2_0= ruleAssignmentCompletion )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6823:1: (lv_assignmentCompletion_2_0= ruleAssignmentCompletion )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6824:3: lv_assignmentCompletion_2_0= ruleAssignmentCompletion
+ {
+
+ newCompositeNode(grammarAccess.getInvocationOrAssignementOrDeclarationStatementAccess().getAssignmentCompletionAssignmentCompletionParserRuleCall_1_1_0());
+
+ pushFollow(FOLLOW_ruleAssignmentCompletion_in_ruleInvocationOrAssignementOrDeclarationStatement14835);
+ lv_assignmentCompletion_2_0=ruleAssignmentCompletion();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getInvocationOrAssignementOrDeclarationStatementRule());
+ }
+ set(
+ current,
+ "assignmentCompletion",
+ lv_assignmentCompletion_2_0,
+ "AssignmentCompletion");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ otherlv_3=(Token)match(input,68,FOLLOW_68_in_ruleInvocationOrAssignementOrDeclarationStatement14849);
+
+ newLeafNode(otherlv_3, grammarAccess.getInvocationOrAssignementOrDeclarationStatementAccess().getSemicolonKeyword_2());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleInvocationOrAssignementOrDeclarationStatement"
+
+
+ // $ANTLR start "entryRuleSuperInvocationStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6852:1: entryRuleSuperInvocationStatement returns [EObject current=null] : iv_ruleSuperInvocationStatement= ruleSuperInvocationStatement EOF ;
+ public final EObject entryRuleSuperInvocationStatement() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleSuperInvocationStatement = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6853:2: (iv_ruleSuperInvocationStatement= ruleSuperInvocationStatement EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6854:2: iv_ruleSuperInvocationStatement= ruleSuperInvocationStatement EOF
+ {
+ newCompositeNode(grammarAccess.getSuperInvocationStatementRule());
+ pushFollow(FOLLOW_ruleSuperInvocationStatement_in_entryRuleSuperInvocationStatement14885);
+ iv_ruleSuperInvocationStatement=ruleSuperInvocationStatement();
+
+ state._fsp--;
+
+ current =iv_ruleSuperInvocationStatement;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleSuperInvocationStatement14895);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleSuperInvocationStatement"
+
+
+ // $ANTLR start "ruleSuperInvocationStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6861:1: ruleSuperInvocationStatement returns [EObject current=null] : ( ( (lv__super_0_0= ruleSuperInvocationExpression ) ) otherlv_1= ';' ) ;
+ public final EObject ruleSuperInvocationStatement() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ EObject lv__super_0_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6864:28: ( ( ( (lv__super_0_0= ruleSuperInvocationExpression ) ) otherlv_1= ';' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6865:1: ( ( (lv__super_0_0= ruleSuperInvocationExpression ) ) otherlv_1= ';' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6865:1: ( ( (lv__super_0_0= ruleSuperInvocationExpression ) ) otherlv_1= ';' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6865:2: ( (lv__super_0_0= ruleSuperInvocationExpression ) ) otherlv_1= ';'
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6865:2: ( (lv__super_0_0= ruleSuperInvocationExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6866:1: (lv__super_0_0= ruleSuperInvocationExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6866:1: (lv__super_0_0= ruleSuperInvocationExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6867:3: lv__super_0_0= ruleSuperInvocationExpression
+ {
+
+ newCompositeNode(grammarAccess.getSuperInvocationStatementAccess().get_superSuperInvocationExpressionParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_ruleSuperInvocationExpression_in_ruleSuperInvocationStatement14941);
+ lv__super_0_0=ruleSuperInvocationExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSuperInvocationStatementRule());
+ }
+ set(
+ current,
+ "_super",
+ lv__super_0_0,
+ "SuperInvocationExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_1=(Token)match(input,68,FOLLOW_68_in_ruleSuperInvocationStatement14953);
+
+ newLeafNode(otherlv_1, grammarAccess.getSuperInvocationStatementAccess().getSemicolonKeyword_1());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleSuperInvocationStatement"
+
+
+ // $ANTLR start "entryRuleThisInvocationStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6895:1: entryRuleThisInvocationStatement returns [EObject current=null] : iv_ruleThisInvocationStatement= ruleThisInvocationStatement EOF ;
+ public final EObject entryRuleThisInvocationStatement() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleThisInvocationStatement = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6896:2: (iv_ruleThisInvocationStatement= ruleThisInvocationStatement EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6897:2: iv_ruleThisInvocationStatement= ruleThisInvocationStatement EOF
+ {
+ newCompositeNode(grammarAccess.getThisInvocationStatementRule());
+ pushFollow(FOLLOW_ruleThisInvocationStatement_in_entryRuleThisInvocationStatement14989);
+ iv_ruleThisInvocationStatement=ruleThisInvocationStatement();
+
+ state._fsp--;
+
+ current =iv_ruleThisInvocationStatement;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleThisInvocationStatement14999);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleThisInvocationStatement"
+
+
+ // $ANTLR start "ruleThisInvocationStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6904:1: ruleThisInvocationStatement returns [EObject current=null] : ( ( (lv__this_0_0= ruleThisExpression ) ) ( (lv_assignmentCompletion_1_0= ruleAssignmentCompletion ) )? otherlv_2= ';' ) ;
+ public final EObject ruleThisInvocationStatement() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_2=null;
+ EObject lv__this_0_0 = null;
+
+ EObject lv_assignmentCompletion_1_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6907:28: ( ( ( (lv__this_0_0= ruleThisExpression ) ) ( (lv_assignmentCompletion_1_0= ruleAssignmentCompletion ) )? otherlv_2= ';' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6908:1: ( ( (lv__this_0_0= ruleThisExpression ) ) ( (lv_assignmentCompletion_1_0= ruleAssignmentCompletion ) )? otherlv_2= ';' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6908:1: ( ( (lv__this_0_0= ruleThisExpression ) ) ( (lv_assignmentCompletion_1_0= ruleAssignmentCompletion ) )? otherlv_2= ';' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6908:2: ( (lv__this_0_0= ruleThisExpression ) ) ( (lv_assignmentCompletion_1_0= ruleAssignmentCompletion ) )? otherlv_2= ';'
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6908:2: ( (lv__this_0_0= ruleThisExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6909:1: (lv__this_0_0= ruleThisExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6909:1: (lv__this_0_0= ruleThisExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6910:3: lv__this_0_0= ruleThisExpression
+ {
+
+ newCompositeNode(grammarAccess.getThisInvocationStatementAccess().get_thisThisExpressionParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_ruleThisExpression_in_ruleThisInvocationStatement15045);
+ lv__this_0_0=ruleThisExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getThisInvocationStatementRule());
+ }
+ set(
+ current,
+ "_this",
+ lv__this_0_0,
+ "ThisExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6926:2: ( (lv_assignmentCompletion_1_0= ruleAssignmentCompletion ) )?
+ int alt93=2;
+ int LA93_0 = input.LA(1);
+
+ if ( (LA93_0==70||(LA93_0>=103 && LA93_0<=113)) ) {
+ alt93=1;
+ }
+ switch (alt93) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6927:1: (lv_assignmentCompletion_1_0= ruleAssignmentCompletion )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6927:1: (lv_assignmentCompletion_1_0= ruleAssignmentCompletion )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6928:3: lv_assignmentCompletion_1_0= ruleAssignmentCompletion
+ {
+
+ newCompositeNode(grammarAccess.getThisInvocationStatementAccess().getAssignmentCompletionAssignmentCompletionParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_ruleAssignmentCompletion_in_ruleThisInvocationStatement15066);
+ lv_assignmentCompletion_1_0=ruleAssignmentCompletion();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getThisInvocationStatementRule());
+ }
+ set(
+ current,
+ "assignmentCompletion",
+ lv_assignmentCompletion_1_0,
+ "AssignmentCompletion");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ otherlv_2=(Token)match(input,68,FOLLOW_68_in_ruleThisInvocationStatement15079);
+
+ newLeafNode(otherlv_2, grammarAccess.getThisInvocationStatementAccess().getSemicolonKeyword_2());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleThisInvocationStatement"
+
+
+ // $ANTLR start "entryRuleInstanceCreationInvocationStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6956:1: entryRuleInstanceCreationInvocationStatement returns [EObject current=null] : iv_ruleInstanceCreationInvocationStatement= ruleInstanceCreationInvocationStatement EOF ;
+ public final EObject entryRuleInstanceCreationInvocationStatement() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleInstanceCreationInvocationStatement = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6957:2: (iv_ruleInstanceCreationInvocationStatement= ruleInstanceCreationInvocationStatement EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6958:2: iv_ruleInstanceCreationInvocationStatement= ruleInstanceCreationInvocationStatement EOF
+ {
+ newCompositeNode(grammarAccess.getInstanceCreationInvocationStatementRule());
+ pushFollow(FOLLOW_ruleInstanceCreationInvocationStatement_in_entryRuleInstanceCreationInvocationStatement15115);
+ iv_ruleInstanceCreationInvocationStatement=ruleInstanceCreationInvocationStatement();
+
+ state._fsp--;
+
+ current =iv_ruleInstanceCreationInvocationStatement;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleInstanceCreationInvocationStatement15125);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleInstanceCreationInvocationStatement"
+
+
+ // $ANTLR start "ruleInstanceCreationInvocationStatement"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6965:1: ruleInstanceCreationInvocationStatement returns [EObject current=null] : ( ( (lv__new_0_0= ruleInstanceCreationExpression ) ) otherlv_1= ';' ) ;
+ public final EObject ruleInstanceCreationInvocationStatement() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ EObject lv__new_0_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6968:28: ( ( ( (lv__new_0_0= ruleInstanceCreationExpression ) ) otherlv_1= ';' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6969:1: ( ( (lv__new_0_0= ruleInstanceCreationExpression ) ) otherlv_1= ';' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6969:1: ( ( (lv__new_0_0= ruleInstanceCreationExpression ) ) otherlv_1= ';' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6969:2: ( (lv__new_0_0= ruleInstanceCreationExpression ) ) otherlv_1= ';'
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6969:2: ( (lv__new_0_0= ruleInstanceCreationExpression ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6970:1: (lv__new_0_0= ruleInstanceCreationExpression )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6970:1: (lv__new_0_0= ruleInstanceCreationExpression )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6971:3: lv__new_0_0= ruleInstanceCreationExpression
+ {
+
+ newCompositeNode(grammarAccess.getInstanceCreationInvocationStatementAccess().get_newInstanceCreationExpressionParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_ruleInstanceCreationExpression_in_ruleInstanceCreationInvocationStatement15171);
+ lv__new_0_0=ruleInstanceCreationExpression();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getInstanceCreationInvocationStatementRule());
+ }
+ set(
+ current,
+ "_new",
+ lv__new_0_0,
+ "InstanceCreationExpression");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_1=(Token)match(input,68,FOLLOW_68_in_ruleInstanceCreationInvocationStatement15183);
+
+ newLeafNode(otherlv_1, grammarAccess.getInstanceCreationInvocationStatementAccess().getSemicolonKeyword_1());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleInstanceCreationInvocationStatement"
+
+
+ // $ANTLR start "entryRuleVariableDeclarationCompletion"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:6999:1: entryRuleVariableDeclarationCompletion returns [EObject current=null] : iv_ruleVariableDeclarationCompletion= ruleVariableDeclarationCompletion EOF ;
+ public final EObject entryRuleVariableDeclarationCompletion() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleVariableDeclarationCompletion = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7000:2: (iv_ruleVariableDeclarationCompletion= ruleVariableDeclarationCompletion EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7001:2: iv_ruleVariableDeclarationCompletion= ruleVariableDeclarationCompletion EOF
+ {
+ newCompositeNode(grammarAccess.getVariableDeclarationCompletionRule());
+ pushFollow(FOLLOW_ruleVariableDeclarationCompletion_in_entryRuleVariableDeclarationCompletion15219);
+ iv_ruleVariableDeclarationCompletion=ruleVariableDeclarationCompletion();
+
+ state._fsp--;
+
+ current =iv_ruleVariableDeclarationCompletion;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleVariableDeclarationCompletion15229);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleVariableDeclarationCompletion"
+
+
+ // $ANTLR start "ruleVariableDeclarationCompletion"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7008:1: ruleVariableDeclarationCompletion returns [EObject current=null] : ( ( ( (lv_multiplicityIndicator_0_0= '[' ) ) otherlv_1= ']' )? ( (lv_variableName_2_0= RULE_ID ) ) ( (lv_initValue_3_0= ruleAssignmentCompletion ) ) ) ;
+ public final EObject ruleVariableDeclarationCompletion() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_multiplicityIndicator_0_0=null;
+ Token otherlv_1=null;
+ Token lv_variableName_2_0=null;
+ EObject lv_initValue_3_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7011:28: ( ( ( ( (lv_multiplicityIndicator_0_0= '[' ) ) otherlv_1= ']' )? ( (lv_variableName_2_0= RULE_ID ) ) ( (lv_initValue_3_0= ruleAssignmentCompletion ) ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7012:1: ( ( ( (lv_multiplicityIndicator_0_0= '[' ) ) otherlv_1= ']' )? ( (lv_variableName_2_0= RULE_ID ) ) ( (lv_initValue_3_0= ruleAssignmentCompletion ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7012:1: ( ( ( (lv_multiplicityIndicator_0_0= '[' ) ) otherlv_1= ']' )? ( (lv_variableName_2_0= RULE_ID ) ) ( (lv_initValue_3_0= ruleAssignmentCompletion ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7012:2: ( ( (lv_multiplicityIndicator_0_0= '[' ) ) otherlv_1= ']' )? ( (lv_variableName_2_0= RULE_ID ) ) ( (lv_initValue_3_0= ruleAssignmentCompletion ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7012:2: ( ( (lv_multiplicityIndicator_0_0= '[' ) ) otherlv_1= ']' )?
+ int alt94=2;
+ int LA94_0 = input.LA(1);
+
+ if ( (LA94_0==50) ) {
+ alt94=1;
+ }
+ switch (alt94) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7012:3: ( (lv_multiplicityIndicator_0_0= '[' ) ) otherlv_1= ']'
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7012:3: ( (lv_multiplicityIndicator_0_0= '[' ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7013:1: (lv_multiplicityIndicator_0_0= '[' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7013:1: (lv_multiplicityIndicator_0_0= '[' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7014:3: lv_multiplicityIndicator_0_0= '['
+ {
+ lv_multiplicityIndicator_0_0=(Token)match(input,50,FOLLOW_50_in_ruleVariableDeclarationCompletion15273);
+
+ newLeafNode(lv_multiplicityIndicator_0_0, grammarAccess.getVariableDeclarationCompletionAccess().getMultiplicityIndicatorLeftSquareBracketKeyword_0_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getVariableDeclarationCompletionRule());
+ }
+ setWithLastConsumed(current, "multiplicityIndicator", true, "[");
+
+
+ }
+
+
+ }
+
+ otherlv_1=(Token)match(input,51,FOLLOW_51_in_ruleVariableDeclarationCompletion15298);
+
+ newLeafNode(otherlv_1, grammarAccess.getVariableDeclarationCompletionAccess().getRightSquareBracketKeyword_0_1());
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7031:3: ( (lv_variableName_2_0= RULE_ID ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7032:1: (lv_variableName_2_0= RULE_ID )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7032:1: (lv_variableName_2_0= RULE_ID )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7033:3: lv_variableName_2_0= RULE_ID
+ {
+ lv_variableName_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleVariableDeclarationCompletion15317);
+
+ newLeafNode(lv_variableName_2_0, grammarAccess.getVariableDeclarationCompletionAccess().getVariableNameIDTerminalRuleCall_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getVariableDeclarationCompletionRule());
+ }
+ setWithLastConsumed(
+ current,
+ "variableName",
+ lv_variableName_2_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7049:2: ( (lv_initValue_3_0= ruleAssignmentCompletion ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7050:1: (lv_initValue_3_0= ruleAssignmentCompletion )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7050:1: (lv_initValue_3_0= ruleAssignmentCompletion )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7051:3: lv_initValue_3_0= ruleAssignmentCompletion
+ {
+
+ newCompositeNode(grammarAccess.getVariableDeclarationCompletionAccess().getInitValueAssignmentCompletionParserRuleCall_2_0());
+
+ pushFollow(FOLLOW_ruleAssignmentCompletion_in_ruleVariableDeclarationCompletion15343);
+ lv_initValue_3_0=ruleAssignmentCompletion();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getVariableDeclarationCompletionRule());
+ }
+ set(
+ current,
+ "initValue",
+ lv_initValue_3_0,
+ "AssignmentCompletion");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleVariableDeclarationCompletion"
+
+
+ // $ANTLR start "entryRuleAssignmentCompletion"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7075:1: entryRuleAssignmentCompletion returns [EObject current=null] : iv_ruleAssignmentCompletion= ruleAssignmentCompletion EOF ;
+ public final EObject entryRuleAssignmentCompletion() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleAssignmentCompletion = null;
+
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7076:2: (iv_ruleAssignmentCompletion= ruleAssignmentCompletion EOF )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7077:2: iv_ruleAssignmentCompletion= ruleAssignmentCompletion EOF
+ {
+ newCompositeNode(grammarAccess.getAssignmentCompletionRule());
+ pushFollow(FOLLOW_ruleAssignmentCompletion_in_entryRuleAssignmentCompletion15379);
+ iv_ruleAssignmentCompletion=ruleAssignmentCompletion();
+
+ state._fsp--;
+
+ current =iv_ruleAssignmentCompletion;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleAssignmentCompletion15389);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleAssignmentCompletion"
+
+
+ // $ANTLR start "ruleAssignmentCompletion"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7084:1: ruleAssignmentCompletion returns [EObject current=null] : ( ( (lv_op_0_0= ruleAssignmentOperator ) ) ( (lv_rightHandSide_1_0= ruleSequenceElement ) ) ) ;
+ public final EObject ruleAssignmentCompletion() throws RecognitionException {
+ EObject current = null;
+
+ Enumerator lv_op_0_0 = null;
+
+ EObject lv_rightHandSide_1_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7087:28: ( ( ( (lv_op_0_0= ruleAssignmentOperator ) ) ( (lv_rightHandSide_1_0= ruleSequenceElement ) ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7088:1: ( ( (lv_op_0_0= ruleAssignmentOperator ) ) ( (lv_rightHandSide_1_0= ruleSequenceElement ) ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7088:1: ( ( (lv_op_0_0= ruleAssignmentOperator ) ) ( (lv_rightHandSide_1_0= ruleSequenceElement ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7088:2: ( (lv_op_0_0= ruleAssignmentOperator ) ) ( (lv_rightHandSide_1_0= ruleSequenceElement ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7088:2: ( (lv_op_0_0= ruleAssignmentOperator ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7089:1: (lv_op_0_0= ruleAssignmentOperator )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7089:1: (lv_op_0_0= ruleAssignmentOperator )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7090:3: lv_op_0_0= ruleAssignmentOperator
+ {
+
+ newCompositeNode(grammarAccess.getAssignmentCompletionAccess().getOpAssignmentOperatorEnumRuleCall_0_0());
+
+ pushFollow(FOLLOW_ruleAssignmentOperator_in_ruleAssignmentCompletion15435);
+ lv_op_0_0=ruleAssignmentOperator();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getAssignmentCompletionRule());
+ }
+ set(
+ current,
+ "op",
+ lv_op_0_0,
+ "AssignmentOperator");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7106:2: ( (lv_rightHandSide_1_0= ruleSequenceElement ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7107:1: (lv_rightHandSide_1_0= ruleSequenceElement )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7107:1: (lv_rightHandSide_1_0= ruleSequenceElement )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7108:3: lv_rightHandSide_1_0= ruleSequenceElement
+ {
+
+ newCompositeNode(grammarAccess.getAssignmentCompletionAccess().getRightHandSideSequenceElementParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_ruleSequenceElement_in_ruleAssignmentCompletion15456);
+ lv_rightHandSide_1_0=ruleSequenceElement();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getAssignmentCompletionRule());
+ }
+ set(
+ current,
+ "rightHandSide",
+ lv_rightHandSide_1_0,
+ "SequenceElement");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleAssignmentCompletion"
+
+
+ // $ANTLR start "ruleBooleanValue"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7132:1: ruleBooleanValue returns [Enumerator current=null] : ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) ) ;
+ public final Enumerator ruleBooleanValue() throws RecognitionException {
+ Enumerator current = null;
+
+ Token enumLiteral_0=null;
+ Token enumLiteral_1=null;
+
+ enterRule();
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7134:28: ( ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7135:1: ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7135:1: ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) )
+ int alt95=2;
+ int LA95_0 = input.LA(1);
+
+ if ( (LA95_0==87) ) {
+ alt95=1;
+ }
+ else if ( (LA95_0==88) ) {
+ alt95=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 95, 0, input);
+
+ throw nvae;
+ }
+ switch (alt95) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7135:2: (enumLiteral_0= 'true' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7135:2: (enumLiteral_0= 'true' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7135:4: enumLiteral_0= 'true'
+ {
+ enumLiteral_0=(Token)match(input,87,FOLLOW_87_in_ruleBooleanValue15506);
+
+ current = grammarAccess.getBooleanValueAccess().getTRUEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getBooleanValueAccess().getTRUEEnumLiteralDeclaration_0());
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7141:6: (enumLiteral_1= 'false' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7141:6: (enumLiteral_1= 'false' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7141:8: enumLiteral_1= 'false'
+ {
+ enumLiteral_1=(Token)match(input,88,FOLLOW_88_in_ruleBooleanValue15523);
+
+ current = grammarAccess.getBooleanValueAccess().getFALSEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getBooleanValueAccess().getFALSEEnumLiteralDeclaration_1());
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleBooleanValue"
+
+
+ // $ANTLR start "ruleLinkOperationKind"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7151:1: ruleLinkOperationKind returns [Enumerator current=null] : ( (enumLiteral_0= 'createLink' ) | (enumLiteral_1= 'destroyLink' ) | (enumLiteral_2= 'clearAssoc' ) ) ;
+ public final Enumerator ruleLinkOperationKind() throws RecognitionException {
+ Enumerator current = null;
+
+ Token enumLiteral_0=null;
+ Token enumLiteral_1=null;
+ Token enumLiteral_2=null;
+
+ enterRule();
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7153:28: ( ( (enumLiteral_0= 'createLink' ) | (enumLiteral_1= 'destroyLink' ) | (enumLiteral_2= 'clearAssoc' ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7154:1: ( (enumLiteral_0= 'createLink' ) | (enumLiteral_1= 'destroyLink' ) | (enumLiteral_2= 'clearAssoc' ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7154:1: ( (enumLiteral_0= 'createLink' ) | (enumLiteral_1= 'destroyLink' ) | (enumLiteral_2= 'clearAssoc' ) )
+ int alt96=3;
+ switch ( input.LA(1) ) {
+ case 89:
+ {
+ alt96=1;
+ }
+ break;
+ case 90:
+ {
+ alt96=2;
+ }
+ break;
+ case 91:
+ {
+ alt96=3;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 96, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt96) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7154:2: (enumLiteral_0= 'createLink' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7154:2: (enumLiteral_0= 'createLink' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7154:4: enumLiteral_0= 'createLink'
+ {
+ enumLiteral_0=(Token)match(input,89,FOLLOW_89_in_ruleLinkOperationKind15568);
+
+ current = grammarAccess.getLinkOperationKindAccess().getCREATEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getLinkOperationKindAccess().getCREATEEnumLiteralDeclaration_0());
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7160:6: (enumLiteral_1= 'destroyLink' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7160:6: (enumLiteral_1= 'destroyLink' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7160:8: enumLiteral_1= 'destroyLink'
+ {
+ enumLiteral_1=(Token)match(input,90,FOLLOW_90_in_ruleLinkOperationKind15585);
+
+ current = grammarAccess.getLinkOperationKindAccess().getDESTROYEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getLinkOperationKindAccess().getDESTROYEnumLiteralDeclaration_1());
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7166:6: (enumLiteral_2= 'clearAssoc' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7166:6: (enumLiteral_2= 'clearAssoc' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7166:8: enumLiteral_2= 'clearAssoc'
+ {
+ enumLiteral_2=(Token)match(input,91,FOLLOW_91_in_ruleLinkOperationKind15602);
+
+ current = grammarAccess.getLinkOperationKindAccess().getCLEAREnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_2, grammarAccess.getLinkOperationKindAccess().getCLEAREnumLiteralDeclaration_2());
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleLinkOperationKind"
+
+
+ // $ANTLR start "ruleSelectOrRejectOperator"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7176:1: ruleSelectOrRejectOperator returns [Enumerator current=null] : ( (enumLiteral_0= 'select' ) | (enumLiteral_1= 'reject' ) ) ;
+ public final Enumerator ruleSelectOrRejectOperator() throws RecognitionException {
+ Enumerator current = null;
+
+ Token enumLiteral_0=null;
+ Token enumLiteral_1=null;
+
+ enterRule();
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7178:28: ( ( (enumLiteral_0= 'select' ) | (enumLiteral_1= 'reject' ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7179:1: ( (enumLiteral_0= 'select' ) | (enumLiteral_1= 'reject' ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7179:1: ( (enumLiteral_0= 'select' ) | (enumLiteral_1= 'reject' ) )
+ int alt97=2;
+ int LA97_0 = input.LA(1);
+
+ if ( (LA97_0==92) ) {
+ alt97=1;
+ }
+ else if ( (LA97_0==93) ) {
+ alt97=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 97, 0, input);
+
+ throw nvae;
+ }
+ switch (alt97) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7179:2: (enumLiteral_0= 'select' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7179:2: (enumLiteral_0= 'select' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7179:4: enumLiteral_0= 'select'
+ {
+ enumLiteral_0=(Token)match(input,92,FOLLOW_92_in_ruleSelectOrRejectOperator15647);
+
+ current = grammarAccess.getSelectOrRejectOperatorAccess().getSELECTEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getSelectOrRejectOperatorAccess().getSELECTEnumLiteralDeclaration_0());
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7185:6: (enumLiteral_1= 'reject' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7185:6: (enumLiteral_1= 'reject' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7185:8: enumLiteral_1= 'reject'
+ {
+ enumLiteral_1=(Token)match(input,93,FOLLOW_93_in_ruleSelectOrRejectOperator15664);
+
+ current = grammarAccess.getSelectOrRejectOperatorAccess().getREJECTEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getSelectOrRejectOperatorAccess().getREJECTEnumLiteralDeclaration_1());
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleSelectOrRejectOperator"
+
+
+ // $ANTLR start "ruleCollectOrIterateOperator"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7195:1: ruleCollectOrIterateOperator returns [Enumerator current=null] : ( (enumLiteral_0= 'collect' ) | (enumLiteral_1= 'iterate' ) ) ;
+ public final Enumerator ruleCollectOrIterateOperator() throws RecognitionException {
+ Enumerator current = null;
+
+ Token enumLiteral_0=null;
+ Token enumLiteral_1=null;
+
+ enterRule();
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7197:28: ( ( (enumLiteral_0= 'collect' ) | (enumLiteral_1= 'iterate' ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7198:1: ( (enumLiteral_0= 'collect' ) | (enumLiteral_1= 'iterate' ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7198:1: ( (enumLiteral_0= 'collect' ) | (enumLiteral_1= 'iterate' ) )
+ int alt98=2;
+ int LA98_0 = input.LA(1);
+
+ if ( (LA98_0==94) ) {
+ alt98=1;
+ }
+ else if ( (LA98_0==95) ) {
+ alt98=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 98, 0, input);
+
+ throw nvae;
+ }
+ switch (alt98) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7198:2: (enumLiteral_0= 'collect' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7198:2: (enumLiteral_0= 'collect' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7198:4: enumLiteral_0= 'collect'
+ {
+ enumLiteral_0=(Token)match(input,94,FOLLOW_94_in_ruleCollectOrIterateOperator15709);
+
+ current = grammarAccess.getCollectOrIterateOperatorAccess().getCOLLECTEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getCollectOrIterateOperatorAccess().getCOLLECTEnumLiteralDeclaration_0());
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7204:6: (enumLiteral_1= 'iterate' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7204:6: (enumLiteral_1= 'iterate' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7204:8: enumLiteral_1= 'iterate'
+ {
+ enumLiteral_1=(Token)match(input,95,FOLLOW_95_in_ruleCollectOrIterateOperator15726);
+
+ current = grammarAccess.getCollectOrIterateOperatorAccess().getITERATEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getCollectOrIterateOperatorAccess().getITERATEEnumLiteralDeclaration_1());
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleCollectOrIterateOperator"
+
+
+ // $ANTLR start "ruleForAllOrExistsOrOneOperator"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7214:1: ruleForAllOrExistsOrOneOperator returns [Enumerator current=null] : ( (enumLiteral_0= 'forAll' ) | (enumLiteral_1= 'exists' ) | (enumLiteral_2= 'one' ) ) ;
+ public final Enumerator ruleForAllOrExistsOrOneOperator() throws RecognitionException {
+ Enumerator current = null;
+
+ Token enumLiteral_0=null;
+ Token enumLiteral_1=null;
+ Token enumLiteral_2=null;
+
+ enterRule();
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7216:28: ( ( (enumLiteral_0= 'forAll' ) | (enumLiteral_1= 'exists' ) | (enumLiteral_2= 'one' ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7217:1: ( (enumLiteral_0= 'forAll' ) | (enumLiteral_1= 'exists' ) | (enumLiteral_2= 'one' ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7217:1: ( (enumLiteral_0= 'forAll' ) | (enumLiteral_1= 'exists' ) | (enumLiteral_2= 'one' ) )
+ int alt99=3;
+ switch ( input.LA(1) ) {
+ case 96:
+ {
+ alt99=1;
+ }
+ break;
+ case 97:
+ {
+ alt99=2;
+ }
+ break;
+ case 98:
+ {
+ alt99=3;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 99, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt99) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7217:2: (enumLiteral_0= 'forAll' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7217:2: (enumLiteral_0= 'forAll' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7217:4: enumLiteral_0= 'forAll'
+ {
+ enumLiteral_0=(Token)match(input,96,FOLLOW_96_in_ruleForAllOrExistsOrOneOperator15771);
+
+ current = grammarAccess.getForAllOrExistsOrOneOperatorAccess().getFORALLEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getForAllOrExistsOrOneOperatorAccess().getFORALLEnumLiteralDeclaration_0());
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7223:6: (enumLiteral_1= 'exists' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7223:6: (enumLiteral_1= 'exists' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7223:8: enumLiteral_1= 'exists'
+ {
+ enumLiteral_1=(Token)match(input,97,FOLLOW_97_in_ruleForAllOrExistsOrOneOperator15788);
+
+ current = grammarAccess.getForAllOrExistsOrOneOperatorAccess().getEXISTSEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getForAllOrExistsOrOneOperatorAccess().getEXISTSEnumLiteralDeclaration_1());
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7229:6: (enumLiteral_2= 'one' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7229:6: (enumLiteral_2= 'one' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7229:8: enumLiteral_2= 'one'
+ {
+ enumLiteral_2=(Token)match(input,98,FOLLOW_98_in_ruleForAllOrExistsOrOneOperator15805);
+
+ current = grammarAccess.getForAllOrExistsOrOneOperatorAccess().getONEEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_2, grammarAccess.getForAllOrExistsOrOneOperatorAccess().getONEEnumLiteralDeclaration_2());
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleForAllOrExistsOrOneOperator"
+
+
+ // $ANTLR start "ruleAnnotationKind"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7239:1: ruleAnnotationKind returns [Enumerator current=null] : ( (enumLiteral_0= 'isolated' ) | (enumLiteral_1= 'determined' ) | (enumLiteral_2= 'assured' ) | (enumLiteral_3= 'parallel' ) ) ;
+ public final Enumerator ruleAnnotationKind() throws RecognitionException {
+ Enumerator current = null;
+
+ Token enumLiteral_0=null;
+ Token enumLiteral_1=null;
+ Token enumLiteral_2=null;
+ Token enumLiteral_3=null;
+
+ enterRule();
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7241:28: ( ( (enumLiteral_0= 'isolated' ) | (enumLiteral_1= 'determined' ) | (enumLiteral_2= 'assured' ) | (enumLiteral_3= 'parallel' ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7242:1: ( (enumLiteral_0= 'isolated' ) | (enumLiteral_1= 'determined' ) | (enumLiteral_2= 'assured' ) | (enumLiteral_3= 'parallel' ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7242:1: ( (enumLiteral_0= 'isolated' ) | (enumLiteral_1= 'determined' ) | (enumLiteral_2= 'assured' ) | (enumLiteral_3= 'parallel' ) )
+ int alt100=4;
+ switch ( input.LA(1) ) {
+ case 99:
+ {
+ alt100=1;
+ }
+ break;
+ case 100:
+ {
+ alt100=2;
+ }
+ break;
+ case 101:
+ {
+ alt100=3;
+ }
+ break;
+ case 102:
+ {
+ alt100=4;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 100, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt100) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7242:2: (enumLiteral_0= 'isolated' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7242:2: (enumLiteral_0= 'isolated' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7242:4: enumLiteral_0= 'isolated'
+ {
+ enumLiteral_0=(Token)match(input,99,FOLLOW_99_in_ruleAnnotationKind15850);
+
+ current = grammarAccess.getAnnotationKindAccess().getISOLATEDEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getAnnotationKindAccess().getISOLATEDEnumLiteralDeclaration_0());
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7248:6: (enumLiteral_1= 'determined' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7248:6: (enumLiteral_1= 'determined' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7248:8: enumLiteral_1= 'determined'
+ {
+ enumLiteral_1=(Token)match(input,100,FOLLOW_100_in_ruleAnnotationKind15867);
+
+ current = grammarAccess.getAnnotationKindAccess().getDETERMINEDEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getAnnotationKindAccess().getDETERMINEDEnumLiteralDeclaration_1());
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7254:6: (enumLiteral_2= 'assured' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7254:6: (enumLiteral_2= 'assured' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7254:8: enumLiteral_2= 'assured'
+ {
+ enumLiteral_2=(Token)match(input,101,FOLLOW_101_in_ruleAnnotationKind15884);
+
+ current = grammarAccess.getAnnotationKindAccess().getASSUREDEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_2, grammarAccess.getAnnotationKindAccess().getASSUREDEnumLiteralDeclaration_2());
+
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7260:6: (enumLiteral_3= 'parallel' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7260:6: (enumLiteral_3= 'parallel' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7260:8: enumLiteral_3= 'parallel'
+ {
+ enumLiteral_3=(Token)match(input,102,FOLLOW_102_in_ruleAnnotationKind15901);
+
+ current = grammarAccess.getAnnotationKindAccess().getPARALLELEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_3, grammarAccess.getAnnotationKindAccess().getPARALLELEnumLiteralDeclaration_3());
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleAnnotationKind"
+
+
+ // $ANTLR start "ruleAssignmentOperator"
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7270:1: ruleAssignmentOperator returns [Enumerator current=null] : ( (enumLiteral_0= '=' ) | (enumLiteral_1= '+=' ) | (enumLiteral_2= '-=' ) | (enumLiteral_3= '*=' ) | (enumLiteral_4= '%=' ) | (enumLiteral_5= '/=' ) | (enumLiteral_6= '&=' ) | (enumLiteral_7= '|=' ) | (enumLiteral_8= '^=' ) | (enumLiteral_9= '<<=' ) | (enumLiteral_10= '>>=' ) | (enumLiteral_11= '>>>=' ) ) ;
+ public final Enumerator ruleAssignmentOperator() throws RecognitionException {
+ Enumerator current = null;
+
+ Token enumLiteral_0=null;
+ Token enumLiteral_1=null;
+ Token enumLiteral_2=null;
+ Token enumLiteral_3=null;
+ Token enumLiteral_4=null;
+ Token enumLiteral_5=null;
+ Token enumLiteral_6=null;
+ Token enumLiteral_7=null;
+ Token enumLiteral_8=null;
+ Token enumLiteral_9=null;
+ Token enumLiteral_10=null;
+ Token enumLiteral_11=null;
+
+ enterRule();
+ try {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7272:28: ( ( (enumLiteral_0= '=' ) | (enumLiteral_1= '+=' ) | (enumLiteral_2= '-=' ) | (enumLiteral_3= '*=' ) | (enumLiteral_4= '%=' ) | (enumLiteral_5= '/=' ) | (enumLiteral_6= '&=' ) | (enumLiteral_7= '|=' ) | (enumLiteral_8= '^=' ) | (enumLiteral_9= '<<=' ) | (enumLiteral_10= '>>=' ) | (enumLiteral_11= '>>>=' ) ) )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7273:1: ( (enumLiteral_0= '=' ) | (enumLiteral_1= '+=' ) | (enumLiteral_2= '-=' ) | (enumLiteral_3= '*=' ) | (enumLiteral_4= '%=' ) | (enumLiteral_5= '/=' ) | (enumLiteral_6= '&=' ) | (enumLiteral_7= '|=' ) | (enumLiteral_8= '^=' ) | (enumLiteral_9= '<<=' ) | (enumLiteral_10= '>>=' ) | (enumLiteral_11= '>>>=' ) )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7273:1: ( (enumLiteral_0= '=' ) | (enumLiteral_1= '+=' ) | (enumLiteral_2= '-=' ) | (enumLiteral_3= '*=' ) | (enumLiteral_4= '%=' ) | (enumLiteral_5= '/=' ) | (enumLiteral_6= '&=' ) | (enumLiteral_7= '|=' ) | (enumLiteral_8= '^=' ) | (enumLiteral_9= '<<=' ) | (enumLiteral_10= '>>=' ) | (enumLiteral_11= '>>>=' ) )
+ int alt101=12;
+ switch ( input.LA(1) ) {
+ case 70:
+ {
+ alt101=1;
+ }
+ break;
+ case 103:
+ {
+ alt101=2;
+ }
+ break;
+ case 104:
+ {
+ alt101=3;
+ }
+ break;
+ case 105:
+ {
+ alt101=4;
+ }
+ break;
+ case 106:
+ {
+ alt101=5;
+ }
+ break;
+ case 107:
+ {
+ alt101=6;
+ }
+ break;
+ case 108:
+ {
+ alt101=7;
+ }
+ break;
+ case 109:
+ {
+ alt101=8;
+ }
+ break;
+ case 110:
+ {
+ alt101=9;
+ }
+ break;
+ case 111:
+ {
+ alt101=10;
+ }
+ break;
+ case 112:
+ {
+ alt101=11;
+ }
+ break;
+ case 113:
+ {
+ alt101=12;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 101, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt101) {
+ case 1 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7273:2: (enumLiteral_0= '=' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7273:2: (enumLiteral_0= '=' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7273:4: enumLiteral_0= '='
+ {
+ enumLiteral_0=(Token)match(input,70,FOLLOW_70_in_ruleAssignmentOperator15946);
+
+ current = grammarAccess.getAssignmentOperatorAccess().getASSIGNEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getAssignmentOperatorAccess().getASSIGNEnumLiteralDeclaration_0());
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7279:6: (enumLiteral_1= '+=' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7279:6: (enumLiteral_1= '+=' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7279:8: enumLiteral_1= '+='
+ {
+ enumLiteral_1=(Token)match(input,103,FOLLOW_103_in_ruleAssignmentOperator15963);
+
+ current = grammarAccess.getAssignmentOperatorAccess().getPLUSASSIGNEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getAssignmentOperatorAccess().getPLUSASSIGNEnumLiteralDeclaration_1());
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7285:6: (enumLiteral_2= '-=' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7285:6: (enumLiteral_2= '-=' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7285:8: enumLiteral_2= '-='
+ {
+ enumLiteral_2=(Token)match(input,104,FOLLOW_104_in_ruleAssignmentOperator15980);
+
+ current = grammarAccess.getAssignmentOperatorAccess().getMINUSASSIGNEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_2, grammarAccess.getAssignmentOperatorAccess().getMINUSASSIGNEnumLiteralDeclaration_2());
+
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7291:6: (enumLiteral_3= '*=' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7291:6: (enumLiteral_3= '*=' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7291:8: enumLiteral_3= '*='
+ {
+ enumLiteral_3=(Token)match(input,105,FOLLOW_105_in_ruleAssignmentOperator15997);
+
+ current = grammarAccess.getAssignmentOperatorAccess().getMULTASSIGNEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_3, grammarAccess.getAssignmentOperatorAccess().getMULTASSIGNEnumLiteralDeclaration_3());
+
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7297:6: (enumLiteral_4= '%=' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7297:6: (enumLiteral_4= '%=' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7297:8: enumLiteral_4= '%='
+ {
+ enumLiteral_4=(Token)match(input,106,FOLLOW_106_in_ruleAssignmentOperator16014);
+
+ current = grammarAccess.getAssignmentOperatorAccess().getMODASSIGNEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_4, grammarAccess.getAssignmentOperatorAccess().getMODASSIGNEnumLiteralDeclaration_4());
+
+
+ }
+
+
+ }
+ break;
+ case 6 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7303:6: (enumLiteral_5= '/=' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7303:6: (enumLiteral_5= '/=' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7303:8: enumLiteral_5= '/='
+ {
+ enumLiteral_5=(Token)match(input,107,FOLLOW_107_in_ruleAssignmentOperator16031);
+
+ current = grammarAccess.getAssignmentOperatorAccess().getDIVASSIGNEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_5, grammarAccess.getAssignmentOperatorAccess().getDIVASSIGNEnumLiteralDeclaration_5());
+
+
+ }
+
+
+ }
+ break;
+ case 7 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7309:6: (enumLiteral_6= '&=' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7309:6: (enumLiteral_6= '&=' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7309:8: enumLiteral_6= '&='
+ {
+ enumLiteral_6=(Token)match(input,108,FOLLOW_108_in_ruleAssignmentOperator16048);
+
+ current = grammarAccess.getAssignmentOperatorAccess().getANDASSIGNEnumLiteralDeclaration_6().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_6, grammarAccess.getAssignmentOperatorAccess().getANDASSIGNEnumLiteralDeclaration_6());
+
+
+ }
+
+
+ }
+ break;
+ case 8 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7315:6: (enumLiteral_7= '|=' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7315:6: (enumLiteral_7= '|=' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7315:8: enumLiteral_7= '|='
+ {
+ enumLiteral_7=(Token)match(input,109,FOLLOW_109_in_ruleAssignmentOperator16065);
+
+ current = grammarAccess.getAssignmentOperatorAccess().getORASSIGNEnumLiteralDeclaration_7().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_7, grammarAccess.getAssignmentOperatorAccess().getORASSIGNEnumLiteralDeclaration_7());
+
+
+ }
+
+
+ }
+ break;
+ case 9 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7321:6: (enumLiteral_8= '^=' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7321:6: (enumLiteral_8= '^=' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7321:8: enumLiteral_8= '^='
+ {
+ enumLiteral_8=(Token)match(input,110,FOLLOW_110_in_ruleAssignmentOperator16082);
+
+ current = grammarAccess.getAssignmentOperatorAccess().getXORASSIGNEnumLiteralDeclaration_8().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_8, grammarAccess.getAssignmentOperatorAccess().getXORASSIGNEnumLiteralDeclaration_8());
+
+
+ }
+
+
+ }
+ break;
+ case 10 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7327:6: (enumLiteral_9= '<<=' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7327:6: (enumLiteral_9= '<<=' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7327:8: enumLiteral_9= '<<='
+ {
+ enumLiteral_9=(Token)match(input,111,FOLLOW_111_in_ruleAssignmentOperator16099);
+
+ current = grammarAccess.getAssignmentOperatorAccess().getLSHIFTASSIGNEnumLiteralDeclaration_9().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_9, grammarAccess.getAssignmentOperatorAccess().getLSHIFTASSIGNEnumLiteralDeclaration_9());
+
+
+ }
+
+
+ }
+ break;
+ case 11 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7333:6: (enumLiteral_10= '>>=' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7333:6: (enumLiteral_10= '>>=' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7333:8: enumLiteral_10= '>>='
+ {
+ enumLiteral_10=(Token)match(input,112,FOLLOW_112_in_ruleAssignmentOperator16116);
+
+ current = grammarAccess.getAssignmentOperatorAccess().getRSHIFTASSIGNEnumLiteralDeclaration_10().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_10, grammarAccess.getAssignmentOperatorAccess().getRSHIFTASSIGNEnumLiteralDeclaration_10());
+
+
+ }
+
+
+ }
+ break;
+ case 12 :
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7339:6: (enumLiteral_11= '>>>=' )
+ {
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7339:6: (enumLiteral_11= '>>>=' )
+ // ../org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/parser/antlr/internal/InternalAlf.g:7339:8: enumLiteral_11= '>>>='
+ {
+ enumLiteral_11=(Token)match(input,113,FOLLOW_113_in_ruleAssignmentOperator16133);
+
+ current = grammarAccess.getAssignmentOperatorAccess().getURSHIFTASSIGNEnumLiteralDeclaration_11().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_11, grammarAccess.getAssignmentOperatorAccess().getURSHIFTASSIGNEnumLiteralDeclaration_11());
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleAssignmentOperator"
+
+ // Delegated rules
+
+
+ protected DFA40 dfa40 = new DFA40(this);
+ static final String DFA40_eotS =
+ "\13\uffff";
+ static final String DFA40_eofS =
+ "\3\uffff\1\12\7\uffff";
+ static final String DFA40_minS =
+ "\1\61\3\6\7\uffff";
+ static final String DFA40_maxS =
+ "\1\64\1\133\1\142\1\161\7\uffff";
+ static final String DFA40_acceptS =
+ "\4\uffff\1\3\1\7\1\5\1\6\1\4\1\1\1\2";
+ static final String DFA40_specialS =
+ "\13\uffff}>";
+ static final String[] DFA40_transitionS = {
+ "\1\1\2\uffff\1\2",
+ "\1\3\70\uffff\1\5\31\uffff\3\4",
+ "\1\10\56\uffff\1\6\1\uffff\1\7\44\uffff\7\7",
+ "\1\12\5\uffff\5\12\3\uffff\3\12\1\uffff\1\11\25\12\3\uffff"+
+ "\4\12\10\uffff\2\12\5\uffff\1\12\1\uffff\1\12\16\uffff\2\12"+
+ "\20\uffff\13\12",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA40_eot = DFA.unpackEncodedString(DFA40_eotS);
+ static final short[] DFA40_eof = DFA.unpackEncodedString(DFA40_eofS);
+ static final char[] DFA40_min = DFA.unpackEncodedStringToUnsignedChars(DFA40_minS);
+ static final char[] DFA40_max = DFA.unpackEncodedStringToUnsignedChars(DFA40_maxS);
+ static final short[] DFA40_accept = DFA.unpackEncodedString(DFA40_acceptS);
+ static final short[] DFA40_special = DFA.unpackEncodedString(DFA40_specialS);
+ static final short[][] DFA40_transition;
+
+ static {
+ int numStates = DFA40_transitionS.length;
+ DFA40_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA40_transition[i] = DFA.unpackEncodedString(DFA40_transitionS[i]);
+ }
+ }
+
+ class DFA40 extends DFA {
+
+ public DFA40(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 40;
+ this.eot = DFA40_eot;
+ this.eof = DFA40_eof;
+ this.min = DFA40_min;
+ this.max = DFA40_max;
+ this.accept = DFA40_accept;
+ this.special = DFA40_special;
+ this.transition = DFA40_transition;
+ }
+ public String getDescription() {
+ return "2198:1: (this_OperationCallExpression_0= ruleOperationCallExpression | this_PropertyCallExpression_1= rulePropertyCallExpression | this_LinkOperationExpression_2= ruleLinkOperationExpression | this_SequenceOperationExpression_3= ruleSequenceOperationExpression | this_SequenceReductionExpression_4= ruleSequenceReductionExpression | this_SequenceExpansionExpression_5= ruleSequenceExpansionExpression | this_ClassExtentExpression_6= ruleClassExtentExpression )";
+ }
+ }
+
+
+ public static final BitSet FOLLOW_ruleTest_in_entryRuleTest75 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleTest85 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_12_in_ruleTest123 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleExpression_in_ruleTest144 = new BitSet(new long[]{0x000000000000F000L});
+ public static final BitSet FOLLOW_13_in_ruleTest159 = new BitSet(new long[]{0x0000000000000000L,0x0003FF8000000040L});
+ public static final BitSet FOLLOW_ruleAssignmentCompletion_in_ruleTest180 = new BitSet(new long[]{0x000000000000E000L});
+ public static final BitSet FOLLOW_14_in_ruleTest195 = new BitSet(new long[]{0x1E00000000060040L,0x00000000001EE4B9L});
+ public static final BitSet FOLLOW_ruleStatement_in_ruleTest216 = new BitSet(new long[]{0x000000000000C000L});
+ public static final BitSet FOLLOW_15_in_ruleTest231 = new BitSet(new long[]{0x1000000000000000L});
+ public static final BitSet FOLLOW_ruleBlock_in_ruleTest252 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleLITERAL_in_entryRuleLITERAL289 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleLITERAL299 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleBOOLEAN_LITERAL_in_ruleLITERAL346 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleNUMBER_LITERAL_in_ruleLITERAL373 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSTRING_LITERAL_in_ruleLITERAL400 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleBOOLEAN_LITERAL_in_entryRuleBOOLEAN_LITERAL435 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleBOOLEAN_LITERAL445 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleBooleanValue_in_ruleBOOLEAN_LITERAL490 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleNUMBER_LITERAL_in_entryRuleNUMBER_LITERAL525 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleNUMBER_LITERAL535 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleINTEGER_LITERAL_in_ruleNUMBER_LITERAL582 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleUNLIMITED_LITERAL_in_ruleNUMBER_LITERAL609 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleINTEGER_LITERAL_in_entryRuleINTEGER_LITERAL644 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleINTEGER_LITERAL654 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_INTEGERVALUE_in_ruleINTEGER_LITERAL695 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleUNLIMITED_LITERAL_in_entryRuleUNLIMITED_LITERAL735 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleUNLIMITED_LITERAL745 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_16_in_ruleUNLIMITED_LITERAL787 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSTRING_LITERAL_in_entryRuleSTRING_LITERAL835 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleSTRING_LITERAL845 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_STRING_in_ruleSTRING_LITERAL886 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleNameExpression_in_entryRuleNameExpression926 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleNameExpression936 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_17_in_ruleNameExpression983 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_18_in_ruleNameExpression1012 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_ruleQualifiedNamePath_in_ruleNameExpression1049 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleNameExpression1067 = new BitSet(new long[]{0x0012000000000002L});
+ public static final BitSet FOLLOW_ruleQualifiedNamePath_in_ruleNameExpression1101 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleNameExpression1119 = new BitSet(new long[]{0x1016000001060002L});
+ public static final BitSet FOLLOW_ruleTuple_in_ruleNameExpression1146 = new BitSet(new long[]{0x0012000000000002L});
+ public static final BitSet FOLLOW_ruleSequenceConstructionOrAccessCompletion_in_ruleNameExpression1173 = new BitSet(new long[]{0x0012000000000002L});
+ public static final BitSet FOLLOW_17_in_ruleNameExpression1199 = new BitSet(new long[]{0x0012000000000002L});
+ public static final BitSet FOLLOW_18_in_ruleNameExpression1228 = new BitSet(new long[]{0x0012000000000002L});
+ public static final BitSet FOLLOW_ruleSuffixExpression_in_ruleNameExpression1269 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleQualifiedNamePath_in_entryRuleQualifiedNamePath1306 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleQualifiedNamePath1316 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleUnqualifiedName_in_ruleQualifiedNamePath1362 = new BitSet(new long[]{0x0000000000080000L});
+ public static final BitSet FOLLOW_19_in_ruleQualifiedNamePath1374 = new BitSet(new long[]{0x0000000000000042L});
+ public static final BitSet FOLLOW_ruleUnqualifiedName_in_entryRuleUnqualifiedName1411 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleUnqualifiedName1421 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleUnqualifiedName1463 = new BitSet(new long[]{0x0000000000100002L});
+ public static final BitSet FOLLOW_ruleTemplateBinding_in_ruleUnqualifiedName1489 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleTemplateBinding_in_entryRuleTemplateBinding1526 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleTemplateBinding1536 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_20_in_ruleTemplateBinding1573 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_ruleNamedTemplateBinding_in_ruleTemplateBinding1594 = new BitSet(new long[]{0x0000000000600000L});
+ public static final BitSet FOLLOW_21_in_ruleTemplateBinding1607 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_ruleNamedTemplateBinding_in_ruleTemplateBinding1628 = new BitSet(new long[]{0x0000000000600000L});
+ public static final BitSet FOLLOW_22_in_ruleTemplateBinding1642 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleNamedTemplateBinding_in_entryRuleNamedTemplateBinding1678 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleNamedTemplateBinding1688 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleNamedTemplateBinding1730 = new BitSet(new long[]{0x0000000000800000L});
+ public static final BitSet FOLLOW_23_in_ruleNamedTemplateBinding1747 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_ruleQualifiedNameWithBinding_in_ruleNamedTemplateBinding1768 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleQualifiedNameWithBinding_in_entryRuleQualifiedNameWithBinding1804 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleQualifiedNameWithBinding1814 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleQualifiedNameWithBinding1856 = new BitSet(new long[]{0x0000000000180002L});
+ public static final BitSet FOLLOW_ruleTemplateBinding_in_ruleQualifiedNameWithBinding1882 = new BitSet(new long[]{0x0000000000080002L});
+ public static final BitSet FOLLOW_19_in_ruleQualifiedNameWithBinding1896 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_ruleQualifiedNameWithBinding_in_ruleQualifiedNameWithBinding1917 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleTuple_in_entryRuleTuple1955 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleTuple1965 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_24_in_ruleTuple2011 = new BitSet(new long[]{0x0F01CC0003070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleTupleElement_in_ruleTuple2033 = new BitSet(new long[]{0x0000000002200000L});
+ public static final BitSet FOLLOW_21_in_ruleTuple2046 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleTupleElement_in_ruleTuple2067 = new BitSet(new long[]{0x0000000002200000L});
+ public static final BitSet FOLLOW_25_in_ruleTuple2083 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleTupleElement_in_entryRuleTupleElement2119 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleTupleElement2129 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleExpression_in_ruleTupleElement2174 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleExpression_in_entryRuleExpression2209 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleExpression2219 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleConditionalTestExpression_in_ruleExpression2265 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleConditionalTestExpression_in_entryRuleConditionalTestExpression2299 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleConditionalTestExpression2309 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleConditionalOrExpression_in_ruleConditionalTestExpression2355 = new BitSet(new long[]{0x0000000004000002L});
+ public static final BitSet FOLLOW_26_in_ruleConditionalTestExpression2368 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleConditionalTestExpression_in_ruleConditionalTestExpression2389 = new BitSet(new long[]{0x0000000008000000L});
+ public static final BitSet FOLLOW_27_in_ruleConditionalTestExpression2401 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleConditionalTestExpression_in_ruleConditionalTestExpression2422 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleConditionalOrExpression_in_entryRuleConditionalOrExpression2460 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleConditionalOrExpression2470 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleConditionalAndExpression_in_ruleConditionalOrExpression2516 = new BitSet(new long[]{0x0000000010000002L});
+ public static final BitSet FOLLOW_28_in_ruleConditionalOrExpression2529 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleConditionalAndExpression_in_ruleConditionalOrExpression2550 = new BitSet(new long[]{0x0000000010000002L});
+ public static final BitSet FOLLOW_ruleConditionalAndExpression_in_entryRuleConditionalAndExpression2588 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleConditionalAndExpression2598 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleInclusiveOrExpression_in_ruleConditionalAndExpression2644 = new BitSet(new long[]{0x0000000020000002L});
+ public static final BitSet FOLLOW_29_in_ruleConditionalAndExpression2657 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleInclusiveOrExpression_in_ruleConditionalAndExpression2678 = new BitSet(new long[]{0x0000000020000002L});
+ public static final BitSet FOLLOW_ruleInclusiveOrExpression_in_entryRuleInclusiveOrExpression2716 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleInclusiveOrExpression2726 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleExclusiveOrExpression_in_ruleInclusiveOrExpression2772 = new BitSet(new long[]{0x0000000040000002L});
+ public static final BitSet FOLLOW_30_in_ruleInclusiveOrExpression2785 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleExclusiveOrExpression_in_ruleInclusiveOrExpression2806 = new BitSet(new long[]{0x0000000040000002L});
+ public static final BitSet FOLLOW_ruleExclusiveOrExpression_in_entryRuleExclusiveOrExpression2844 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleExclusiveOrExpression2854 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleAndExpression_in_ruleExclusiveOrExpression2900 = new BitSet(new long[]{0x0000000080000002L});
+ public static final BitSet FOLLOW_31_in_ruleExclusiveOrExpression2913 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleAndExpression_in_ruleExclusiveOrExpression2934 = new BitSet(new long[]{0x0000000080000002L});
+ public static final BitSet FOLLOW_ruleAndExpression_in_entryRuleAndExpression2972 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleAndExpression2982 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleEqualityExpression_in_ruleAndExpression3028 = new BitSet(new long[]{0x0000000100000002L});
+ public static final BitSet FOLLOW_32_in_ruleAndExpression3041 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleEqualityExpression_in_ruleAndExpression3062 = new BitSet(new long[]{0x0000000100000002L});
+ public static final BitSet FOLLOW_ruleEqualityExpression_in_entryRuleEqualityExpression3100 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleEqualityExpression3110 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleClassificationExpression_in_ruleEqualityExpression3156 = new BitSet(new long[]{0x0000000600000002L});
+ public static final BitSet FOLLOW_33_in_ruleEqualityExpression3177 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_34_in_ruleEqualityExpression3206 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleClassificationExpression_in_ruleEqualityExpression3243 = new BitSet(new long[]{0x0000000600000002L});
+ public static final BitSet FOLLOW_ruleClassificationExpression_in_entryRuleClassificationExpression3281 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleClassificationExpression3291 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleRelationalExpression_in_ruleClassificationExpression3337 = new BitSet(new long[]{0x0000001800000002L});
+ public static final BitSet FOLLOW_35_in_ruleClassificationExpression3358 = new BitSet(new long[]{0x0000000000060040L});
+ public static final BitSet FOLLOW_36_in_ruleClassificationExpression3387 = new BitSet(new long[]{0x0000000000060040L});
+ public static final BitSet FOLLOW_ruleNameExpression_in_ruleClassificationExpression3424 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleRelationalExpression_in_entryRuleRelationalExpression3462 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleRelationalExpression3472 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleShiftExpression_in_ruleRelationalExpression3518 = new BitSet(new long[]{0x0000006000500002L});
+ public static final BitSet FOLLOW_20_in_ruleRelationalExpression3539 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_22_in_ruleRelationalExpression3568 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_37_in_ruleRelationalExpression3597 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_38_in_ruleRelationalExpression3626 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleShiftExpression_in_ruleRelationalExpression3663 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleShiftExpression_in_entryRuleShiftExpression3701 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleShiftExpression3711 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleAdditiveExpression_in_ruleShiftExpression3757 = new BitSet(new long[]{0x0000038000000002L});
+ public static final BitSet FOLLOW_39_in_ruleShiftExpression3778 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_40_in_ruleShiftExpression3807 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_41_in_ruleShiftExpression3836 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleAdditiveExpression_in_ruleShiftExpression3873 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleAdditiveExpression_in_entryRuleAdditiveExpression3911 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleAdditiveExpression3921 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleMultiplicativeExpression_in_ruleAdditiveExpression3967 = new BitSet(new long[]{0x00000C0000000002L});
+ public static final BitSet FOLLOW_42_in_ruleAdditiveExpression3988 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_43_in_ruleAdditiveExpression4017 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleMultiplicativeExpression_in_ruleAdditiveExpression4054 = new BitSet(new long[]{0x00000C0000000002L});
+ public static final BitSet FOLLOW_ruleMultiplicativeExpression_in_entryRuleMultiplicativeExpression4092 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleMultiplicativeExpression4102 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleUnaryExpression_in_ruleMultiplicativeExpression4148 = new BitSet(new long[]{0x0000300000010002L});
+ public static final BitSet FOLLOW_16_in_ruleMultiplicativeExpression4169 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_44_in_ruleMultiplicativeExpression4198 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_45_in_ruleMultiplicativeExpression4227 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleUnaryExpression_in_ruleMultiplicativeExpression4264 = new BitSet(new long[]{0x0000300000010002L});
+ public static final BitSet FOLLOW_ruleUnaryExpression_in_entryRuleUnaryExpression4302 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleUnaryExpression4312 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_46_in_ruleUnaryExpression4357 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_43_in_ruleUnaryExpression4386 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_42_in_ruleUnaryExpression4415 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_47_in_ruleUnaryExpression4444 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_48_in_ruleUnaryExpression4473 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_rulePrimaryExpression_in_ruleUnaryExpression4511 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rulePrimaryExpression_in_entryRulePrimaryExpression4547 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRulePrimaryExpression4557 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleValueSpecification_in_rulePrimaryExpression4602 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSuffixExpression_in_entryRuleSuffixExpression4637 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleSuffixExpression4647 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOperationCallExpression_in_ruleSuffixExpression4694 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rulePropertyCallExpression_in_ruleSuffixExpression4721 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleLinkOperationExpression_in_ruleSuffixExpression4748 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSequenceOperationExpression_in_ruleSuffixExpression4775 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSequenceReductionExpression_in_ruleSuffixExpression4802 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSequenceExpansionExpression_in_ruleSuffixExpression4829 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleClassExtentExpression_in_ruleSuffixExpression4856 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOperationCallExpression_in_entryRuleOperationCallExpression4891 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleOperationCallExpression4901 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_49_in_ruleOperationCallExpression4938 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleOperationCallExpression4955 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_ruleTuple_in_ruleOperationCallExpression4981 = new BitSet(new long[]{0x0012000000000002L});
+ public static final BitSet FOLLOW_ruleSuffixExpression_in_ruleOperationCallExpression5002 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rulePropertyCallExpression_in_entryRulePropertyCallExpression5039 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRulePropertyCallExpression5049 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_49_in_rulePropertyCallExpression5086 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_RULE_ID_in_rulePropertyCallExpression5103 = new BitSet(new long[]{0x0016000000000002L});
+ public static final BitSet FOLLOW_50_in_rulePropertyCallExpression5121 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleExpression_in_rulePropertyCallExpression5142 = new BitSet(new long[]{0x0008000000000000L});
+ public static final BitSet FOLLOW_51_in_rulePropertyCallExpression5154 = new BitSet(new long[]{0x0012000000000002L});
+ public static final BitSet FOLLOW_ruleSuffixExpression_in_rulePropertyCallExpression5177 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleLinkOperationExpression_in_entryRuleLinkOperationExpression5214 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleLinkOperationExpression5224 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_49_in_ruleLinkOperationExpression5261 = new BitSet(new long[]{0x0000000000000000L,0x000000000E000000L});
+ public static final BitSet FOLLOW_ruleLinkOperationKind_in_ruleLinkOperationExpression5282 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_ruleLinkOperationTuple_in_ruleLinkOperationExpression5303 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleLinkOperationTuple_in_entryRuleLinkOperationTuple5339 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleLinkOperationTuple5349 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_24_in_ruleLinkOperationTuple5386 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_ruleLinkOperationTupleElement_in_ruleLinkOperationTuple5407 = new BitSet(new long[]{0x0000000002200000L});
+ public static final BitSet FOLLOW_21_in_ruleLinkOperationTuple5420 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_ruleLinkOperationTupleElement_in_ruleLinkOperationTuple5441 = new BitSet(new long[]{0x0000000002200000L});
+ public static final BitSet FOLLOW_25_in_ruleLinkOperationTuple5455 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleLinkOperationTupleElement_in_entryRuleLinkOperationTupleElement5491 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleLinkOperationTupleElement5501 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleLinkOperationTupleElement5543 = new BitSet(new long[]{0x0004000000800000L});
+ public static final BitSet FOLLOW_50_in_ruleLinkOperationTupleElement5561 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleExpression_in_ruleLinkOperationTupleElement5582 = new BitSet(new long[]{0x0008000000000000L});
+ public static final BitSet FOLLOW_51_in_ruleLinkOperationTupleElement5594 = new BitSet(new long[]{0x0000000000800000L});
+ public static final BitSet FOLLOW_23_in_ruleLinkOperationTupleElement5608 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleExpression_in_ruleLinkOperationTupleElement5629 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSequenceOperationExpression_in_entryRuleSequenceOperationExpression5665 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleSequenceOperationExpression5675 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_52_in_ruleSequenceOperationExpression5712 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_ruleQualifiedNameWithBinding_in_ruleSequenceOperationExpression5733 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_ruleTuple_in_ruleSequenceOperationExpression5754 = new BitSet(new long[]{0x0012000000000002L});
+ public static final BitSet FOLLOW_ruleSuffixExpression_in_ruleSequenceOperationExpression5775 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSequenceReductionExpression_in_entryRuleSequenceReductionExpression5812 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleSequenceReductionExpression5822 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_52_in_ruleSequenceReductionExpression5859 = new BitSet(new long[]{0x0020000000000000L});
+ public static final BitSet FOLLOW_53_in_ruleSequenceReductionExpression5871 = new BitSet(new long[]{0x0040000000000040L});
+ public static final BitSet FOLLOW_54_in_ruleSequenceReductionExpression5889 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_ruleQualifiedNameWithBinding_in_ruleSequenceReductionExpression5924 = new BitSet(new long[]{0x0012000000000002L});
+ public static final BitSet FOLLOW_ruleSuffixExpression_in_ruleSequenceReductionExpression5945 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSequenceExpansionExpression_in_entryRuleSequenceExpansionExpression5982 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleSequenceExpansionExpression5992 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSelectOrRejectOperation_in_ruleSequenceExpansionExpression6039 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleCollectOrIterateOperation_in_ruleSequenceExpansionExpression6066 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleForAllOrExistsOrOneOperation_in_ruleSequenceExpansionExpression6093 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleIsUniqueOperation_in_ruleSequenceExpansionExpression6120 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSelectOrRejectOperation_in_entryRuleSelectOrRejectOperation6155 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleSelectOrRejectOperation6165 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_52_in_ruleSelectOrRejectOperation6202 = new BitSet(new long[]{0x0000000000000000L,0x0000000030000000L});
+ public static final BitSet FOLLOW_ruleSelectOrRejectOperator_in_ruleSelectOrRejectOperation6223 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleSelectOrRejectOperation6240 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_24_in_ruleSelectOrRejectOperation6257 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleExpression_in_ruleSelectOrRejectOperation6278 = new BitSet(new long[]{0x0000000002000000L});
+ public static final BitSet FOLLOW_25_in_ruleSelectOrRejectOperation6290 = new BitSet(new long[]{0x0012000000000002L});
+ public static final BitSet FOLLOW_ruleSuffixExpression_in_ruleSelectOrRejectOperation6311 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleCollectOrIterateOperation_in_entryRuleCollectOrIterateOperation6348 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleCollectOrIterateOperation6358 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_52_in_ruleCollectOrIterateOperation6395 = new BitSet(new long[]{0x0000000000000000L,0x00000000C0000000L});
+ public static final BitSet FOLLOW_ruleCollectOrIterateOperator_in_ruleCollectOrIterateOperation6416 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleCollectOrIterateOperation6433 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_24_in_ruleCollectOrIterateOperation6450 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleExpression_in_ruleCollectOrIterateOperation6471 = new BitSet(new long[]{0x0000000002000000L});
+ public static final BitSet FOLLOW_25_in_ruleCollectOrIterateOperation6483 = new BitSet(new long[]{0x0012000000000002L});
+ public static final BitSet FOLLOW_ruleSuffixExpression_in_ruleCollectOrIterateOperation6504 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleForAllOrExistsOrOneOperation_in_entryRuleForAllOrExistsOrOneOperation6541 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleForAllOrExistsOrOneOperation6551 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_52_in_ruleForAllOrExistsOrOneOperation6588 = new BitSet(new long[]{0x0000000000000000L,0x0000000700000000L});
+ public static final BitSet FOLLOW_ruleForAllOrExistsOrOneOperator_in_ruleForAllOrExistsOrOneOperation6609 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleForAllOrExistsOrOneOperation6626 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_24_in_ruleForAllOrExistsOrOneOperation6643 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleExpression_in_ruleForAllOrExistsOrOneOperation6664 = new BitSet(new long[]{0x0000000002000000L});
+ public static final BitSet FOLLOW_25_in_ruleForAllOrExistsOrOneOperation6676 = new BitSet(new long[]{0x0012000000000002L});
+ public static final BitSet FOLLOW_ruleSuffixExpression_in_ruleForAllOrExistsOrOneOperation6697 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleIsUniqueOperation_in_entryRuleIsUniqueOperation6734 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleIsUniqueOperation6744 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_52_in_ruleIsUniqueOperation6781 = new BitSet(new long[]{0x0080000000000000L});
+ public static final BitSet FOLLOW_55_in_ruleIsUniqueOperation6793 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleIsUniqueOperation6810 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_24_in_ruleIsUniqueOperation6827 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleExpression_in_ruleIsUniqueOperation6848 = new BitSet(new long[]{0x0000000002000000L});
+ public static final BitSet FOLLOW_25_in_ruleIsUniqueOperation6860 = new BitSet(new long[]{0x0012000000000002L});
+ public static final BitSet FOLLOW_ruleSuffixExpression_in_ruleIsUniqueOperation6881 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleValueSpecification_in_entryRuleValueSpecification6918 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleValueSpecification6928 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleNameExpression_in_ruleValueSpecification6975 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleLITERAL_in_ruleValueSpecification7002 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleThisExpression_in_ruleValueSpecification7029 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSuperInvocationExpression_in_ruleValueSpecification7056 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleInstanceCreationExpression_in_ruleValueSpecification7083 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleParenthesizedExpression_in_ruleValueSpecification7110 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleNullExpression_in_ruleValueSpecification7137 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleNonLiteralValueSpecification_in_entryRuleNonLiteralValueSpecification7172 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleNonLiteralValueSpecification7182 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleNameExpression_in_ruleNonLiteralValueSpecification7229 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleParenthesizedExpression_in_ruleNonLiteralValueSpecification7256 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleInstanceCreationExpression_in_ruleNonLiteralValueSpecification7283 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleThisExpression_in_ruleNonLiteralValueSpecification7310 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSuperInvocationExpression_in_ruleNonLiteralValueSpecification7337 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleParenthesizedExpression_in_entryRuleParenthesizedExpression7372 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleParenthesizedExpression7382 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_24_in_ruleParenthesizedExpression7419 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleExpression_in_ruleParenthesizedExpression7440 = new BitSet(new long[]{0x0000000002000000L});
+ public static final BitSet FOLLOW_25_in_ruleParenthesizedExpression7452 = new BitSet(new long[]{0x0E12000001060042L});
+ public static final BitSet FOLLOW_ruleNonLiteralValueSpecification_in_ruleParenthesizedExpression7474 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSuffixExpression_in_ruleParenthesizedExpression7501 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleNullExpression_in_entryRuleNullExpression7539 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleNullExpression7549 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_56_in_ruleNullExpression7595 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleThisExpression_in_entryRuleThisExpression7631 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleThisExpression7641 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_57_in_ruleThisExpression7687 = new BitSet(new long[]{0x0012000000000002L});
+ public static final BitSet FOLLOW_ruleSuffixExpression_in_ruleThisExpression7708 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSuperInvocationExpression_in_entryRuleSuperInvocationExpression7745 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleSuperInvocationExpression7755 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_58_in_ruleSuperInvocationExpression7792 = new BitSet(new long[]{0x0002000001000000L});
+ public static final BitSet FOLLOW_ruleTuple_in_ruleSuperInvocationExpression7814 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_49_in_ruleSuperInvocationExpression7833 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_ruleQualifiedNameWithBinding_in_ruleSuperInvocationExpression7854 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_ruleTuple_in_ruleSuperInvocationExpression7875 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleInstanceCreationExpression_in_entryRuleInstanceCreationExpression7913 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleInstanceCreationExpression7923 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_59_in_ruleInstanceCreationExpression7960 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_ruleQualifiedNameWithBinding_in_ruleInstanceCreationExpression7981 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_ruleInstanceCreationTuple_in_ruleInstanceCreationExpression8002 = new BitSet(new long[]{0x0012000000000002L});
+ public static final BitSet FOLLOW_ruleSuffixExpression_in_ruleInstanceCreationExpression8023 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleInstanceCreationTuple_in_entryRuleInstanceCreationTuple8060 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleInstanceCreationTuple8070 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_24_in_ruleInstanceCreationTuple8116 = new BitSet(new long[]{0x0000000002000040L});
+ public static final BitSet FOLLOW_ruleInstanceCreationTupleElement_in_ruleInstanceCreationTuple8138 = new BitSet(new long[]{0x0000000002200000L});
+ public static final BitSet FOLLOW_21_in_ruleInstanceCreationTuple8151 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_ruleInstanceCreationTupleElement_in_ruleInstanceCreationTuple8172 = new BitSet(new long[]{0x0000000002200000L});
+ public static final BitSet FOLLOW_25_in_ruleInstanceCreationTuple8188 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleInstanceCreationTupleElement_in_entryRuleInstanceCreationTupleElement8224 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleInstanceCreationTupleElement8234 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleInstanceCreationTupleElement8276 = new BitSet(new long[]{0x0000000000800000L});
+ public static final BitSet FOLLOW_23_in_ruleInstanceCreationTupleElement8293 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleExpression_in_ruleInstanceCreationTupleElement8314 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSequenceConstructionOrAccessCompletion_in_entryRuleSequenceConstructionOrAccessCompletion8350 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleSequenceConstructionOrAccessCompletion8360 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_50_in_ruleSequenceConstructionOrAccessCompletion8404 = new BitSet(new long[]{0x0F09CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleAccessCompletion_in_ruleSequenceConstructionOrAccessCompletion8439 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rulePartialSequenceConstructionCompletion_in_ruleSequenceConstructionOrAccessCompletion8466 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSequenceConstructionExpression_in_ruleSequenceConstructionOrAccessCompletion8495 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleAccessCompletion_in_entryRuleAccessCompletion8531 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleAccessCompletion8541 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleExpression_in_ruleAccessCompletion8587 = new BitSet(new long[]{0x0008000000000000L});
+ public static final BitSet FOLLOW_51_in_ruleAccessCompletion8599 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rulePartialSequenceConstructionCompletion_in_entryRulePartialSequenceConstructionCompletion8635 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRulePartialSequenceConstructionCompletion8645 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_51_in_rulePartialSequenceConstructionCompletion8682 = new BitSet(new long[]{0x1004000000000000L});
+ public static final BitSet FOLLOW_ruleSequenceConstructionExpression_in_rulePartialSequenceConstructionCompletion8703 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSequenceConstructionExpression_in_entryRuleSequenceConstructionExpression8739 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleSequenceConstructionExpression8749 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_60_in_ruleSequenceConstructionExpression8786 = new BitSet(new long[]{0x1F05CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleSequenceElement_in_ruleSequenceConstructionExpression8807 = new BitSet(new long[]{0x6000000000200000L});
+ public static final BitSet FOLLOW_21_in_ruleSequenceConstructionExpression8821 = new BitSet(new long[]{0x1F05CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleSequenceElement_in_ruleSequenceConstructionExpression8842 = new BitSet(new long[]{0x4000000000200000L});
+ public static final BitSet FOLLOW_61_in_ruleSequenceConstructionExpression8863 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleExpression_in_ruleSequenceConstructionExpression8884 = new BitSet(new long[]{0x4000000000000000L});
+ public static final BitSet FOLLOW_62_in_ruleSequenceConstructionExpression8898 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSequenceElement_in_entryRuleSequenceElement8934 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleSequenceElement8944 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleExpression_in_ruleSequenceElement8991 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSequenceConstructionExpression_in_ruleSequenceElement9018 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleClassExtentExpression_in_entryRuleClassExtentExpression9053 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleClassExtentExpression9063 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_49_in_ruleClassExtentExpression9109 = new BitSet(new long[]{0x8000000000000000L});
+ public static final BitSet FOLLOW_63_in_ruleClassExtentExpression9121 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_24_in_ruleClassExtentExpression9133 = new BitSet(new long[]{0x0000000002000000L});
+ public static final BitSet FOLLOW_25_in_ruleClassExtentExpression9145 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleBlock_in_entryRuleBlock9181 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleBlock9191 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_60_in_ruleBlock9228 = new BitSet(new long[]{0x5E000000000601C0L,0x00000000001EE4B9L});
+ public static final BitSet FOLLOW_ruleStatementSequence_in_ruleBlock9258 = new BitSet(new long[]{0x4000000000000000L});
+ public static final BitSet FOLLOW_62_in_ruleBlock9271 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleStatementSequence_in_entryRuleStatementSequence9307 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleStatementSequence9317 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleDocumentedStatement_in_ruleStatementSequence9362 = new BitSet(new long[]{0x1E000000000601C2L,0x00000000001EE4B9L});
+ public static final BitSet FOLLOW_ruleDocumentedStatement_in_entryRuleDocumentedStatement9398 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleDocumentedStatement9408 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ML_COMMENT_in_ruleDocumentedStatement9452 = new BitSet(new long[]{0x1E00000000060040L,0x00000000001EE4B9L});
+ public static final BitSet FOLLOW_RULE_SL_COMMENT_in_ruleDocumentedStatement9472 = new BitSet(new long[]{0x1E00000000060040L,0x00000000001EE4B9L});
+ public static final BitSet FOLLOW_ruleStatement_in_ruleDocumentedStatement9502 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleInlineStatement_in_entryRuleInlineStatement9538 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleInlineStatement9548 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_64_in_ruleInlineStatement9585 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+ public static final BitSet FOLLOW_65_in_ruleInlineStatement9597 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_24_in_ruleInlineStatement9609 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleInlineStatement9626 = new BitSet(new long[]{0x0000000002000000L});
+ public static final BitSet FOLLOW_25_in_ruleInlineStatement9643 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_RULE_STRING_in_ruleInlineStatement9660 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
+ public static final BitSet FOLLOW_66_in_ruleInlineStatement9677 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleAnnotatedStatement_in_entryRuleAnnotatedStatement9713 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleAnnotatedStatement9723 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_67_in_ruleAnnotatedStatement9760 = new BitSet(new long[]{0x0000000000000000L,0x0000007800000000L});
+ public static final BitSet FOLLOW_ruleAnnotation_in_ruleAnnotatedStatement9781 = new BitSet(new long[]{0x1E00000000060040L,0x00000000001EE4B9L});
+ public static final BitSet FOLLOW_ruleStatement_in_ruleAnnotatedStatement9802 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleStatement_in_entryRuleStatement9838 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleStatement9848 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleAnnotatedStatement_in_ruleStatement9895 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleInlineStatement_in_ruleStatement9922 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleBlockStatement_in_ruleStatement9949 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleEmptyStatement_in_ruleStatement9976 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleLocalNameDeclarationStatement_in_ruleStatement10003 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleIfStatement_in_ruleStatement10030 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSwitchStatement_in_ruleStatement10057 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleWhileStatement_in_ruleStatement10084 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleDoStatement_in_ruleStatement10111 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleForStatement_in_ruleStatement10138 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleBreakStatement_in_ruleStatement10165 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleReturnStatement_in_ruleStatement10192 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleAcceptStatement_in_ruleStatement10219 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleClassifyStatement_in_ruleStatement10246 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleInvocationOrAssignementOrDeclarationStatement_in_ruleStatement10273 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSuperInvocationStatement_in_ruleStatement10300 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleThisInvocationStatement_in_ruleStatement10327 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleInstanceCreationInvocationStatement_in_ruleStatement10354 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleAnnotation_in_entryRuleAnnotation10389 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleAnnotation10399 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleAnnotationKind_in_ruleAnnotation10445 = new BitSet(new long[]{0x0000000001000002L});
+ public static final BitSet FOLLOW_24_in_ruleAnnotation10458 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleAnnotation10475 = new BitSet(new long[]{0x0000000002200000L});
+ public static final BitSet FOLLOW_21_in_ruleAnnotation10493 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleAnnotation10510 = new BitSet(new long[]{0x0000000002200000L});
+ public static final BitSet FOLLOW_25_in_ruleAnnotation10529 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleBlockStatement_in_entryRuleBlockStatement10567 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleBlockStatement10577 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleBlock_in_ruleBlockStatement10622 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleEmptyStatement_in_entryRuleEmptyStatement10657 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleEmptyStatement10667 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_68_in_ruleEmptyStatement10713 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleLocalNameDeclarationStatement_in_entryRuleLocalNameDeclarationStatement10749 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleLocalNameDeclarationStatement10759 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_69_in_ruleLocalNameDeclarationStatement10796 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleLocalNameDeclarationStatement10813 = new BitSet(new long[]{0x0000000008000000L});
+ public static final BitSet FOLLOW_27_in_ruleLocalNameDeclarationStatement10830 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_ruleQualifiedNameWithBinding_in_ruleLocalNameDeclarationStatement10851 = new BitSet(new long[]{0x0004000000000000L,0x0000000000000040L});
+ public static final BitSet FOLLOW_50_in_ruleLocalNameDeclarationStatement10870 = new BitSet(new long[]{0x0008000000000000L});
+ public static final BitSet FOLLOW_51_in_ruleLocalNameDeclarationStatement10895 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
+ public static final BitSet FOLLOW_70_in_ruleLocalNameDeclarationStatement10909 = new BitSet(new long[]{0x1F05CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleSequenceElement_in_ruleLocalNameDeclarationStatement10930 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
+ public static final BitSet FOLLOW_68_in_ruleLocalNameDeclarationStatement10942 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleIfStatement_in_entryRuleIfStatement10978 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleIfStatement10988 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_71_in_ruleIfStatement11025 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_ruleSequentialClauses_in_ruleIfStatement11046 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000100L});
+ public static final BitSet FOLLOW_ruleFinalClause_in_ruleIfStatement11067 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSequentialClauses_in_entryRuleSequentialClauses11104 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleSequentialClauses11114 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleConcurrentClauses_in_ruleSequentialClauses11160 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000100L});
+ public static final BitSet FOLLOW_72_in_ruleSequentialClauses11173 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
+ public static final BitSet FOLLOW_71_in_ruleSequentialClauses11185 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_ruleConcurrentClauses_in_ruleSequentialClauses11206 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000100L});
+ public static final BitSet FOLLOW_ruleConcurrentClauses_in_entryRuleConcurrentClauses11244 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleConcurrentClauses11254 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleNonFinalClause_in_ruleConcurrentClauses11300 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000200L});
+ public static final BitSet FOLLOW_73_in_ruleConcurrentClauses11313 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
+ public static final BitSet FOLLOW_71_in_ruleConcurrentClauses11325 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_ruleNonFinalClause_in_ruleConcurrentClauses11346 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000200L});
+ public static final BitSet FOLLOW_ruleNonFinalClause_in_entryRuleNonFinalClause11384 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleNonFinalClause11394 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_24_in_ruleNonFinalClause11431 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleExpression_in_ruleNonFinalClause11452 = new BitSet(new long[]{0x0000000002000000L});
+ public static final BitSet FOLLOW_25_in_ruleNonFinalClause11464 = new BitSet(new long[]{0x1000000000000000L});
+ public static final BitSet FOLLOW_ruleBlock_in_ruleNonFinalClause11485 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleFinalClause_in_entryRuleFinalClause11521 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleFinalClause11531 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_72_in_ruleFinalClause11568 = new BitSet(new long[]{0x1000000000000000L});
+ public static final BitSet FOLLOW_ruleBlock_in_ruleFinalClause11589 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSwitchStatement_in_entryRuleSwitchStatement11625 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleSwitchStatement11635 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_74_in_ruleSwitchStatement11672 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_24_in_ruleSwitchStatement11684 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleExpression_in_ruleSwitchStatement11705 = new BitSet(new long[]{0x0000000002000000L});
+ public static final BitSet FOLLOW_25_in_ruleSwitchStatement11717 = new BitSet(new long[]{0x1000000000000000L});
+ public static final BitSet FOLLOW_60_in_ruleSwitchStatement11729 = new BitSet(new long[]{0x4000000000000000L,0x0000000000001800L});
+ public static final BitSet FOLLOW_ruleSwitchClause_in_ruleSwitchStatement11750 = new BitSet(new long[]{0x4000000000000000L,0x0000000000001800L});
+ public static final BitSet FOLLOW_ruleSwitchDefaultClause_in_ruleSwitchStatement11772 = new BitSet(new long[]{0x4000000000000000L});
+ public static final BitSet FOLLOW_62_in_ruleSwitchStatement11785 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSwitchClause_in_entryRuleSwitchClause11821 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleSwitchClause11831 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSwitchCase_in_ruleSwitchClause11877 = new BitSet(new long[]{0x1E000000000601C0L,0x00000000001EECB9L});
+ public static final BitSet FOLLOW_ruleSwitchCase_in_ruleSwitchClause11898 = new BitSet(new long[]{0x1E000000000601C0L,0x00000000001EECB9L});
+ public static final BitSet FOLLOW_ruleNonEmptyStatementSequence_in_ruleSwitchClause11920 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSwitchCase_in_entryRuleSwitchCase11956 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleSwitchCase11966 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_75_in_ruleSwitchCase12003 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleExpression_in_ruleSwitchCase12024 = new BitSet(new long[]{0x0000000008000000L});
+ public static final BitSet FOLLOW_27_in_ruleSwitchCase12036 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSwitchDefaultClause_in_entryRuleSwitchDefaultClause12072 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleSwitchDefaultClause12082 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_76_in_ruleSwitchDefaultClause12119 = new BitSet(new long[]{0x0000000008000000L});
+ public static final BitSet FOLLOW_27_in_ruleSwitchDefaultClause12131 = new BitSet(new long[]{0x1E000000000601C0L,0x00000000001EECB9L});
+ public static final BitSet FOLLOW_ruleNonEmptyStatementSequence_in_ruleSwitchDefaultClause12152 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleNonEmptyStatementSequence_in_entryRuleNonEmptyStatementSequence12188 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleNonEmptyStatementSequence12198 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleDocumentedStatement_in_ruleNonEmptyStatementSequence12243 = new BitSet(new long[]{0x1E000000000601C2L,0x00000000001EE4B9L});
+ public static final BitSet FOLLOW_ruleWhileStatement_in_entryRuleWhileStatement12279 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleWhileStatement12289 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_77_in_ruleWhileStatement12326 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_24_in_ruleWhileStatement12338 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleExpression_in_ruleWhileStatement12359 = new BitSet(new long[]{0x0000000002000000L});
+ public static final BitSet FOLLOW_25_in_ruleWhileStatement12371 = new BitSet(new long[]{0x1000000000000000L});
+ public static final BitSet FOLLOW_ruleBlock_in_ruleWhileStatement12392 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleDoStatement_in_entryRuleDoStatement12428 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleDoStatement12438 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_78_in_ruleDoStatement12475 = new BitSet(new long[]{0x1000000000000000L});
+ public static final BitSet FOLLOW_ruleBlock_in_ruleDoStatement12496 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
+ public static final BitSet FOLLOW_77_in_ruleDoStatement12508 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_24_in_ruleDoStatement12520 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleExpression_in_ruleDoStatement12541 = new BitSet(new long[]{0x0000000002000000L});
+ public static final BitSet FOLLOW_25_in_ruleDoStatement12553 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
+ public static final BitSet FOLLOW_68_in_ruleDoStatement12565 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleForStatement_in_entryRuleForStatement12601 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleForStatement12611 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_79_in_ruleForStatement12648 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_24_in_ruleForStatement12660 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_ruleForControl_in_ruleForStatement12681 = new BitSet(new long[]{0x0000000002000000L});
+ public static final BitSet FOLLOW_25_in_ruleForStatement12693 = new BitSet(new long[]{0x1000000000000000L});
+ public static final BitSet FOLLOW_ruleBlock_in_ruleForStatement12714 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleForControl_in_entryRuleForControl12750 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleForControl12760 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleLoopVariableDefinition_in_ruleForControl12806 = new BitSet(new long[]{0x0000000000200002L});
+ public static final BitSet FOLLOW_21_in_ruleForControl12819 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_ruleLoopVariableDefinition_in_ruleForControl12840 = new BitSet(new long[]{0x0000000000200002L});
+ public static final BitSet FOLLOW_ruleLoopVariableDefinition_in_entryRuleLoopVariableDefinition12878 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleLoopVariableDefinition12888 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleLoopVariableDefinition12931 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+ public static final BitSet FOLLOW_80_in_ruleLoopVariableDefinition12948 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleExpression_in_ruleLoopVariableDefinition12969 = new BitSet(new long[]{0x2000000000000002L});
+ public static final BitSet FOLLOW_61_in_ruleLoopVariableDefinition12982 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleExpression_in_ruleLoopVariableDefinition13003 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleQualifiedNameWithBinding_in_ruleLoopVariableDefinition13034 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleLoopVariableDefinition13051 = new BitSet(new long[]{0x0000000008000000L});
+ public static final BitSet FOLLOW_27_in_ruleLoopVariableDefinition13068 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleExpression_in_ruleLoopVariableDefinition13089 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleBreakStatement_in_entryRuleBreakStatement13126 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleBreakStatement13136 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_81_in_ruleBreakStatement13182 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
+ public static final BitSet FOLLOW_68_in_ruleBreakStatement13194 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleReturnStatement_in_entryRuleReturnStatement13230 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleReturnStatement13240 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_82_in_ruleReturnStatement13277 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleExpression_in_ruleReturnStatement13298 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
+ public static final BitSet FOLLOW_68_in_ruleReturnStatement13310 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleAcceptStatement_in_entryRuleAcceptStatement13346 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleAcceptStatement13356 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleAcceptClause_in_ruleAcceptStatement13402 = new BitSet(new long[]{0x1000000000000000L,0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleSimpleAcceptStatementCompletion_in_ruleAcceptStatement13424 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleCompoundAcceptStatementCompletion_in_ruleAcceptStatement13451 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSimpleAcceptStatementCompletion_in_entryRuleSimpleAcceptStatementCompletion13488 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleSimpleAcceptStatementCompletion13498 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_68_in_ruleSimpleAcceptStatementCompletion13544 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleCompoundAcceptStatementCompletion_in_entryRuleCompoundAcceptStatementCompletion13580 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleCompoundAcceptStatementCompletion13590 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleBlock_in_ruleCompoundAcceptStatementCompletion13636 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000200L});
+ public static final BitSet FOLLOW_73_in_ruleCompoundAcceptStatementCompletion13649 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
+ public static final BitSet FOLLOW_ruleAcceptBlock_in_ruleCompoundAcceptStatementCompletion13670 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000200L});
+ public static final BitSet FOLLOW_ruleAcceptBlock_in_entryRuleAcceptBlock13708 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleAcceptBlock13718 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleAcceptClause_in_ruleAcceptBlock13764 = new BitSet(new long[]{0x1000000000000000L});
+ public static final BitSet FOLLOW_ruleBlock_in_ruleAcceptBlock13785 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleAcceptClause_in_entryRuleAcceptClause13821 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleAcceptClause13831 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_83_in_ruleAcceptClause13868 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_24_in_ruleAcceptClause13880 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleAcceptClause13898 = new BitSet(new long[]{0x0000000008000000L});
+ public static final BitSet FOLLOW_27_in_ruleAcceptClause13915 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_ruleQualifiedNameList_in_ruleAcceptClause13938 = new BitSet(new long[]{0x0000000002000000L});
+ public static final BitSet FOLLOW_25_in_ruleAcceptClause13950 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleClassifyStatement_in_entryRuleClassifyStatement13986 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleClassifyStatement13996 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_84_in_ruleClassifyStatement14033 = new BitSet(new long[]{0x0F01CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleExpression_in_ruleClassifyStatement14054 = new BitSet(new long[]{0x0000000000000000L,0x0000000000600000L});
+ public static final BitSet FOLLOW_ruleClassificationClause_in_ruleClassifyStatement14075 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
+ public static final BitSet FOLLOW_68_in_ruleClassifyStatement14087 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleClassificationClause_in_entryRuleClassificationClause14123 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleClassificationClause14133 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleClassificationFromClause_in_ruleClassificationClause14180 = new BitSet(new long[]{0x0000000000000002L,0x0000000000600000L});
+ public static final BitSet FOLLOW_ruleClassificationToClause_in_ruleClassificationClause14201 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleReclassifyAllClause_in_ruleClassificationClause14231 = new BitSet(new long[]{0x0000000000000000L,0x0000000000600000L});
+ public static final BitSet FOLLOW_ruleClassificationToClause_in_ruleClassificationClause14253 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleClassificationFromClause_in_entryRuleClassificationFromClause14290 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleClassificationFromClause14300 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_85_in_ruleClassificationFromClause14337 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_ruleQualifiedNameList_in_ruleClassificationFromClause14358 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleClassificationToClause_in_entryRuleClassificationToClause14394 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleClassificationToClause14404 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_86_in_ruleClassificationToClause14441 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_ruleQualifiedNameList_in_ruleClassificationToClause14462 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleReclassifyAllClause_in_entryRuleReclassifyAllClause14498 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleReclassifyAllClause14508 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_85_in_ruleReclassifyAllClause14554 = new BitSet(new long[]{0x0000000000010000L});
+ public static final BitSet FOLLOW_16_in_ruleReclassifyAllClause14566 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleQualifiedNameList_in_entryRuleQualifiedNameList14602 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleQualifiedNameList14612 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleQualifiedNameWithBinding_in_ruleQualifiedNameList14658 = new BitSet(new long[]{0x0000000000200002L});
+ public static final BitSet FOLLOW_21_in_ruleQualifiedNameList14671 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_ruleQualifiedNameWithBinding_in_ruleQualifiedNameList14692 = new BitSet(new long[]{0x0000000000200002L});
+ public static final BitSet FOLLOW_ruleInvocationOrAssignementOrDeclarationStatement_in_entryRuleInvocationOrAssignementOrDeclarationStatement14730 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleInvocationOrAssignementOrDeclarationStatement14740 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleNameExpression_in_ruleInvocationOrAssignementOrDeclarationStatement14786 = new BitSet(new long[]{0x0004000000000040L,0x0003FF8000000050L});
+ public static final BitSet FOLLOW_ruleVariableDeclarationCompletion_in_ruleInvocationOrAssignementOrDeclarationStatement14808 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleAssignmentCompletion_in_ruleInvocationOrAssignementOrDeclarationStatement14835 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
+ public static final BitSet FOLLOW_68_in_ruleInvocationOrAssignementOrDeclarationStatement14849 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSuperInvocationStatement_in_entryRuleSuperInvocationStatement14885 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleSuperInvocationStatement14895 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSuperInvocationExpression_in_ruleSuperInvocationStatement14941 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
+ public static final BitSet FOLLOW_68_in_ruleSuperInvocationStatement14953 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleThisInvocationStatement_in_entryRuleThisInvocationStatement14989 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleThisInvocationStatement14999 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleThisExpression_in_ruleThisInvocationStatement15045 = new BitSet(new long[]{0x0000000000000000L,0x0003FF8000000050L});
+ public static final BitSet FOLLOW_ruleAssignmentCompletion_in_ruleThisInvocationStatement15066 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
+ public static final BitSet FOLLOW_68_in_ruleThisInvocationStatement15079 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleInstanceCreationInvocationStatement_in_entryRuleInstanceCreationInvocationStatement15115 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleInstanceCreationInvocationStatement15125 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleInstanceCreationExpression_in_ruleInstanceCreationInvocationStatement15171 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
+ public static final BitSet FOLLOW_68_in_ruleInstanceCreationInvocationStatement15183 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleVariableDeclarationCompletion_in_entryRuleVariableDeclarationCompletion15219 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleVariableDeclarationCompletion15229 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_50_in_ruleVariableDeclarationCompletion15273 = new BitSet(new long[]{0x0008000000000000L});
+ public static final BitSet FOLLOW_51_in_ruleVariableDeclarationCompletion15298 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleVariableDeclarationCompletion15317 = new BitSet(new long[]{0x0000000000000000L,0x0003FF8000000040L});
+ public static final BitSet FOLLOW_ruleAssignmentCompletion_in_ruleVariableDeclarationCompletion15343 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleAssignmentCompletion_in_entryRuleAssignmentCompletion15379 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleAssignmentCompletion15389 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleAssignmentOperator_in_ruleAssignmentCompletion15435 = new BitSet(new long[]{0x1F05CC0001070070L,0x0000000001800000L});
+ public static final BitSet FOLLOW_ruleSequenceElement_in_ruleAssignmentCompletion15456 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_87_in_ruleBooleanValue15506 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_88_in_ruleBooleanValue15523 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_89_in_ruleLinkOperationKind15568 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_90_in_ruleLinkOperationKind15585 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_91_in_ruleLinkOperationKind15602 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_92_in_ruleSelectOrRejectOperator15647 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_93_in_ruleSelectOrRejectOperator15664 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_94_in_ruleCollectOrIterateOperator15709 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_95_in_ruleCollectOrIterateOperator15726 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_96_in_ruleForAllOrExistsOrOneOperator15771 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_97_in_ruleForAllOrExistsOrOneOperator15788 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_98_in_ruleForAllOrExistsOrOneOperator15805 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_99_in_ruleAnnotationKind15850 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_100_in_ruleAnnotationKind15867 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_101_in_ruleAnnotationKind15884 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_102_in_ruleAnnotationKind15901 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_70_in_ruleAssignmentOperator15946 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_103_in_ruleAssignmentOperator15963 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_104_in_ruleAssignmentOperator15980 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_105_in_ruleAssignmentOperator15997 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_106_in_ruleAssignmentOperator16014 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_107_in_ruleAssignmentOperator16031 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_108_in_ruleAssignmentOperator16048 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_109_in_ruleAssignmentOperator16065 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_110_in_ruleAssignmentOperator16082 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_111_in_ruleAssignmentOperator16099 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_112_in_ruleAssignmentOperator16116 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_113_in_ruleAssignmentOperator16133 = new BitSet(new long[]{0x0000000000000002L});
+
+} \ No newline at end of file
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/services/AlfGrammarAccess.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/services/AlfGrammarAccess.java
new file mode 100644
index 00000000000..ba708542b5e
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/services/AlfGrammarAccess.java
@@ -0,0 +1,5756 @@
+/*
+* generated by Xtext
+*/
+
+package org.eclipse.papyrus.alf.services;
+
+import com.google.inject.Singleton;
+import com.google.inject.Inject;
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.service.GrammarProvider;
+import org.eclipse.xtext.service.AbstractElementFinder.*;
+
+import org.eclipse.xtext.common.services.TerminalsGrammarAccess;
+
+@Singleton
+public class AlfGrammarAccess extends AbstractGrammarElementFinder {
+
+
+ public class TestElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Test");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Group cGroup_0 = (Group)cGroup.eContents().get(0);
+ private final Keyword cTestExpressionKeyword_0_0 = (Keyword)cGroup_0.eContents().get(0);
+ private final Assignment cExpressionAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1);
+ private final RuleCall cExpressionExpressionParserRuleCall_0_1_0 = (RuleCall)cExpressionAssignment_0_1.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Keyword cTestAssignmentExpressionKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+ private final Assignment cAssignExpressionAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cAssignExpressionAssignmentCompletionParserRuleCall_1_1_0 = (RuleCall)cAssignExpressionAssignment_1_1.eContents().get(0);
+ private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+ private final Keyword cTestStatementKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+ private final Assignment cStatementsAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
+ private final RuleCall cStatementsStatementParserRuleCall_2_1_0 = (RuleCall)cStatementsAssignment_2_1.eContents().get(0);
+ private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+ private final Keyword cTestBlockKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+ private final Assignment cBlockAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+ private final RuleCall cBlockBlockParserRuleCall_3_1_0 = (RuleCall)cBlockAssignment_3_1.eContents().get(0);
+
+ /// *
+ // Test rule
+ // * / Test:
+ // ("testExpression" expression+=Expression)* ("testAssignmentExpression" assignExpression+=AssignmentCompletion)*
+ // ("testStatement" statements+=Statement)* ("testBlock" block=Block);
+ public ParserRule getRule() { return rule; }
+
+ //("testExpression" expression+=Expression)* ("testAssignmentExpression" assignExpression+=AssignmentCompletion)*
+ //("testStatement" statements+=Statement)* ("testBlock" block=Block)
+ public Group getGroup() { return cGroup; }
+
+ //("testExpression" expression+=Expression)*
+ public Group getGroup_0() { return cGroup_0; }
+
+ //"testExpression"
+ public Keyword getTestExpressionKeyword_0_0() { return cTestExpressionKeyword_0_0; }
+
+ //expression+=Expression
+ public Assignment getExpressionAssignment_0_1() { return cExpressionAssignment_0_1; }
+
+ //Expression
+ public RuleCall getExpressionExpressionParserRuleCall_0_1_0() { return cExpressionExpressionParserRuleCall_0_1_0; }
+
+ //("testAssignmentExpression" assignExpression+=AssignmentCompletion)*
+ public Group getGroup_1() { return cGroup_1; }
+
+ //"testAssignmentExpression"
+ public Keyword getTestAssignmentExpressionKeyword_1_0() { return cTestAssignmentExpressionKeyword_1_0; }
+
+ //assignExpression+=AssignmentCompletion
+ public Assignment getAssignExpressionAssignment_1_1() { return cAssignExpressionAssignment_1_1; }
+
+ //AssignmentCompletion
+ public RuleCall getAssignExpressionAssignmentCompletionParserRuleCall_1_1_0() { return cAssignExpressionAssignmentCompletionParserRuleCall_1_1_0; }
+
+ //("testStatement" statements+=Statement)*
+ public Group getGroup_2() { return cGroup_2; }
+
+ //"testStatement"
+ public Keyword getTestStatementKeyword_2_0() { return cTestStatementKeyword_2_0; }
+
+ //statements+=Statement
+ public Assignment getStatementsAssignment_2_1() { return cStatementsAssignment_2_1; }
+
+ //Statement
+ public RuleCall getStatementsStatementParserRuleCall_2_1_0() { return cStatementsStatementParserRuleCall_2_1_0; }
+
+ //"testBlock" block=Block
+ public Group getGroup_3() { return cGroup_3; }
+
+ //"testBlock"
+ public Keyword getTestBlockKeyword_3_0() { return cTestBlockKeyword_3_0; }
+
+ //block=Block
+ public Assignment getBlockAssignment_3_1() { return cBlockAssignment_3_1; }
+
+ //Block
+ public RuleCall getBlockBlockParserRuleCall_3_1_0() { return cBlockBlockParserRuleCall_3_1_0; }
+ }
+
+ public class LITERALElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LITERAL");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cBOOLEAN_LITERALParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cNUMBER_LITERALParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+ private final RuleCall cSTRING_LITERALParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+
+ ////('testStatementSequence' statement += StatementSequence)* ;
+ /// *********************************
+ // * PrimitiveLiterals
+ // ********************************** / LITERAL:
+ // BOOLEAN_LITERAL | NUMBER_LITERAL | STRING_LITERAL;
+ public ParserRule getRule() { return rule; }
+
+ //BOOLEAN_LITERAL | NUMBER_LITERAL | STRING_LITERAL
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //BOOLEAN_LITERAL
+ public RuleCall getBOOLEAN_LITERALParserRuleCall_0() { return cBOOLEAN_LITERALParserRuleCall_0; }
+
+ //NUMBER_LITERAL
+ public RuleCall getNUMBER_LITERALParserRuleCall_1() { return cNUMBER_LITERALParserRuleCall_1; }
+
+ //STRING_LITERAL
+ public RuleCall getSTRING_LITERALParserRuleCall_2() { return cSTRING_LITERALParserRuleCall_2; }
+ }
+
+ public class BOOLEAN_LITERALElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "BOOLEAN_LITERAL");
+ private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1);
+ private final RuleCall cValueBooleanValueEnumRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0);
+
+ //// (suffix = SuffixExpression) ? ;
+ //BOOLEAN_LITERAL:
+ // value=BooleanValue;
+ public ParserRule getRule() { return rule; }
+
+ //value=BooleanValue
+ public Assignment getValueAssignment() { return cValueAssignment; }
+
+ //BooleanValue
+ public RuleCall getValueBooleanValueEnumRuleCall_0() { return cValueBooleanValueEnumRuleCall_0; }
+ }
+
+ public class NUMBER_LITERALElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "NUMBER_LITERAL");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cINTEGER_LITERALParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cUNLIMITED_LITERALParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+
+ //NUMBER_LITERAL:
+ // INTEGER_LITERAL | UNLIMITED_LITERAL;
+ public ParserRule getRule() { return rule; }
+
+ //INTEGER_LITERAL | UNLIMITED_LITERAL
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //INTEGER_LITERAL
+ public RuleCall getINTEGER_LITERALParserRuleCall_0() { return cINTEGER_LITERALParserRuleCall_0; }
+
+ //UNLIMITED_LITERAL
+ public RuleCall getUNLIMITED_LITERALParserRuleCall_1() { return cUNLIMITED_LITERALParserRuleCall_1; }
+ }
+
+ public class INTEGER_LITERALElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "INTEGER_LITERAL");
+ private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1);
+ private final RuleCall cValueIntegerValueTerminalRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0);
+
+ //// (suffix = SuffixExpression) ? ;
+ //INTEGER_LITERAL:
+ // value=IntegerValue;
+ public ParserRule getRule() { return rule; }
+
+ //value=IntegerValue
+ public Assignment getValueAssignment() { return cValueAssignment; }
+
+ //IntegerValue
+ public RuleCall getValueIntegerValueTerminalRuleCall_0() { return cValueIntegerValueTerminalRuleCall_0; }
+ }
+
+ public class UNLIMITED_LITERALElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "UNLIMITED_LITERAL");
+ private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1);
+ private final Keyword cValueAsteriskKeyword_0 = (Keyword)cValueAssignment.eContents().get(0);
+
+ //// (suffix = SuffixExpression) ? ;
+ //UNLIMITED_LITERAL:
+ // value="*";
+ public ParserRule getRule() { return rule; }
+
+ //value="*"
+ public Assignment getValueAssignment() { return cValueAssignment; }
+
+ //"*"
+ public Keyword getValueAsteriskKeyword_0() { return cValueAsteriskKeyword_0; }
+ }
+
+ public class STRING_LITERALElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "STRING_LITERAL");
+ private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1);
+ private final RuleCall cValueSTRINGTerminalRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0);
+
+ //// (suffix = SuffixExpression) ?;
+ //STRING_LITERAL:
+ // value=STRING;
+ public ParserRule getRule() { return rule; }
+
+ //value=STRING
+ public Assignment getValueAssignment() { return cValueAssignment; }
+
+ //STRING
+ public RuleCall getValueSTRINGTerminalRuleCall_0() { return cValueSTRINGTerminalRuleCall_0; }
+ }
+
+ public class NameExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "NameExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0);
+ private final Group cGroup_0_0 = (Group)cAlternatives_0.eContents().get(0);
+ private final Assignment cPrefixOpAssignment_0_0_0 = (Assignment)cGroup_0_0.eContents().get(0);
+ private final Alternatives cPrefixOpAlternatives_0_0_0_0 = (Alternatives)cPrefixOpAssignment_0_0_0.eContents().get(0);
+ private final Keyword cPrefixOpPlusSignPlusSignKeyword_0_0_0_0_0 = (Keyword)cPrefixOpAlternatives_0_0_0_0.eContents().get(0);
+ private final Keyword cPrefixOpHyphenMinusHyphenMinusKeyword_0_0_0_0_1 = (Keyword)cPrefixOpAlternatives_0_0_0_0.eContents().get(1);
+ private final Assignment cPathAssignment_0_0_1 = (Assignment)cGroup_0_0.eContents().get(1);
+ private final RuleCall cPathQualifiedNamePathParserRuleCall_0_0_1_0 = (RuleCall)cPathAssignment_0_0_1.eContents().get(0);
+ private final Assignment cIdAssignment_0_0_2 = (Assignment)cGroup_0_0.eContents().get(2);
+ private final RuleCall cIdIDTerminalRuleCall_0_0_2_0 = (RuleCall)cIdAssignment_0_0_2.eContents().get(0);
+ private final Group cGroup_0_1 = (Group)cAlternatives_0.eContents().get(1);
+ private final Assignment cPathAssignment_0_1_0 = (Assignment)cGroup_0_1.eContents().get(0);
+ private final RuleCall cPathQualifiedNamePathParserRuleCall_0_1_0_0 = (RuleCall)cPathAssignment_0_1_0.eContents().get(0);
+ private final Assignment cIdAssignment_0_1_1 = (Assignment)cGroup_0_1.eContents().get(1);
+ private final RuleCall cIdIDTerminalRuleCall_0_1_1_0 = (RuleCall)cIdAssignment_0_1_1.eContents().get(0);
+ private final Alternatives cAlternatives_0_1_2 = (Alternatives)cGroup_0_1.eContents().get(2);
+ private final Assignment cInvocationCompletionAssignment_0_1_2_0 = (Assignment)cAlternatives_0_1_2.eContents().get(0);
+ private final RuleCall cInvocationCompletionTupleParserRuleCall_0_1_2_0_0 = (RuleCall)cInvocationCompletionAssignment_0_1_2_0.eContents().get(0);
+ private final Assignment cSequenceConstructionCompletionAssignment_0_1_2_1 = (Assignment)cAlternatives_0_1_2.eContents().get(1);
+ private final RuleCall cSequenceConstructionCompletionSequenceConstructionOrAccessCompletionParserRuleCall_0_1_2_1_0 = (RuleCall)cSequenceConstructionCompletionAssignment_0_1_2_1.eContents().get(0);
+ private final Assignment cPostfixOpAssignment_0_1_2_2 = (Assignment)cAlternatives_0_1_2.eContents().get(2);
+ private final Alternatives cPostfixOpAlternatives_0_1_2_2_0 = (Alternatives)cPostfixOpAssignment_0_1_2_2.eContents().get(0);
+ private final Keyword cPostfixOpPlusSignPlusSignKeyword_0_1_2_2_0_0 = (Keyword)cPostfixOpAlternatives_0_1_2_2_0.eContents().get(0);
+ private final Keyword cPostfixOpHyphenMinusHyphenMinusKeyword_0_1_2_2_0_1 = (Keyword)cPostfixOpAlternatives_0_1_2_2_0.eContents().get(1);
+ private final Assignment cSuffixAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cSuffixSuffixExpressionParserRuleCall_1_0 = (RuleCall)cSuffixAssignment_1.eContents().get(0);
+
+ //NameExpression:
+ // (prefixOp=("++" | "--") path=QualifiedNamePath? id=ID | path=QualifiedNamePath? id=ID (invocationCompletion=Tuple |
+ // sequenceConstructionCompletion=SequenceConstructionOrAccessCompletion | postfixOp=("++" | "--"))?)
+ // suffix=SuffixExpression?;
+ public ParserRule getRule() { return rule; }
+
+ //(prefixOp=("++" | "--") path=QualifiedNamePath? id=ID | path=QualifiedNamePath? id=ID (invocationCompletion=Tuple |
+ //sequenceConstructionCompletion=SequenceConstructionOrAccessCompletion | postfixOp=("++" | "--"))?)
+ //suffix=SuffixExpression?
+ public Group getGroup() { return cGroup; }
+
+ //prefixOp=("++" | "--") path=QualifiedNamePath? id=ID | path=QualifiedNamePath? id=ID (invocationCompletion=Tuple |
+ //sequenceConstructionCompletion=SequenceConstructionOrAccessCompletion | postfixOp=("++" | "--"))?
+ public Alternatives getAlternatives_0() { return cAlternatives_0; }
+
+ //prefixOp=("++" | "--") path=QualifiedNamePath? id=ID
+ public Group getGroup_0_0() { return cGroup_0_0; }
+
+ //prefixOp=("++" | "--")
+ public Assignment getPrefixOpAssignment_0_0_0() { return cPrefixOpAssignment_0_0_0; }
+
+ //"++" | "--"
+ public Alternatives getPrefixOpAlternatives_0_0_0_0() { return cPrefixOpAlternatives_0_0_0_0; }
+
+ //"++"
+ public Keyword getPrefixOpPlusSignPlusSignKeyword_0_0_0_0_0() { return cPrefixOpPlusSignPlusSignKeyword_0_0_0_0_0; }
+
+ //"--"
+ public Keyword getPrefixOpHyphenMinusHyphenMinusKeyword_0_0_0_0_1() { return cPrefixOpHyphenMinusHyphenMinusKeyword_0_0_0_0_1; }
+
+ //path=QualifiedNamePath?
+ public Assignment getPathAssignment_0_0_1() { return cPathAssignment_0_0_1; }
+
+ //QualifiedNamePath
+ public RuleCall getPathQualifiedNamePathParserRuleCall_0_0_1_0() { return cPathQualifiedNamePathParserRuleCall_0_0_1_0; }
+
+ //id=ID
+ public Assignment getIdAssignment_0_0_2() { return cIdAssignment_0_0_2; }
+
+ //ID
+ public RuleCall getIdIDTerminalRuleCall_0_0_2_0() { return cIdIDTerminalRuleCall_0_0_2_0; }
+
+ //path=QualifiedNamePath? id=ID (invocationCompletion=Tuple |
+ //sequenceConstructionCompletion=SequenceConstructionOrAccessCompletion | postfixOp=("++" | "--"))?
+ public Group getGroup_0_1() { return cGroup_0_1; }
+
+ //path=QualifiedNamePath?
+ public Assignment getPathAssignment_0_1_0() { return cPathAssignment_0_1_0; }
+
+ //QualifiedNamePath
+ public RuleCall getPathQualifiedNamePathParserRuleCall_0_1_0_0() { return cPathQualifiedNamePathParserRuleCall_0_1_0_0; }
+
+ //id=ID
+ public Assignment getIdAssignment_0_1_1() { return cIdAssignment_0_1_1; }
+
+ //ID
+ public RuleCall getIdIDTerminalRuleCall_0_1_1_0() { return cIdIDTerminalRuleCall_0_1_1_0; }
+
+ //(invocationCompletion=Tuple | sequenceConstructionCompletion=SequenceConstructionOrAccessCompletion | postfixOp=("++" |
+ //"--"))?
+ public Alternatives getAlternatives_0_1_2() { return cAlternatives_0_1_2; }
+
+ //invocationCompletion=Tuple
+ public Assignment getInvocationCompletionAssignment_0_1_2_0() { return cInvocationCompletionAssignment_0_1_2_0; }
+
+ //Tuple
+ public RuleCall getInvocationCompletionTupleParserRuleCall_0_1_2_0_0() { return cInvocationCompletionTupleParserRuleCall_0_1_2_0_0; }
+
+ //sequenceConstructionCompletion=SequenceConstructionOrAccessCompletion
+ public Assignment getSequenceConstructionCompletionAssignment_0_1_2_1() { return cSequenceConstructionCompletionAssignment_0_1_2_1; }
+
+ //SequenceConstructionOrAccessCompletion
+ public RuleCall getSequenceConstructionCompletionSequenceConstructionOrAccessCompletionParserRuleCall_0_1_2_1_0() { return cSequenceConstructionCompletionSequenceConstructionOrAccessCompletionParserRuleCall_0_1_2_1_0; }
+
+ //postfixOp=("++" | "--")
+ public Assignment getPostfixOpAssignment_0_1_2_2() { return cPostfixOpAssignment_0_1_2_2; }
+
+ //"++" | "--"
+ public Alternatives getPostfixOpAlternatives_0_1_2_2_0() { return cPostfixOpAlternatives_0_1_2_2_0; }
+
+ //"++"
+ public Keyword getPostfixOpPlusSignPlusSignKeyword_0_1_2_2_0_0() { return cPostfixOpPlusSignPlusSignKeyword_0_1_2_2_0_0; }
+
+ //"--"
+ public Keyword getPostfixOpHyphenMinusHyphenMinusKeyword_0_1_2_2_0_1() { return cPostfixOpHyphenMinusHyphenMinusKeyword_0_1_2_2_0_1; }
+
+ //suffix=SuffixExpression?
+ public Assignment getSuffixAssignment_1() { return cSuffixAssignment_1; }
+
+ //SuffixExpression
+ public RuleCall getSuffixSuffixExpressionParserRuleCall_1_0() { return cSuffixSuffixExpressionParserRuleCall_1_0; }
+ }
+
+ public class QualifiedNamePathElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "QualifiedNamePath");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cNamespaceAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cNamespaceUnqualifiedNameParserRuleCall_0_0 = (RuleCall)cNamespaceAssignment_0.eContents().get(0);
+ private final Keyword cColonColonKeyword_1 = (Keyword)cGroup.eContents().get(1);
+
+ //QualifiedNamePath:
+ // (namespace+=UnqualifiedName "::")+;
+ public ParserRule getRule() { return rule; }
+
+ //(namespace+=UnqualifiedName "::")+
+ public Group getGroup() { return cGroup; }
+
+ //namespace+=UnqualifiedName
+ public Assignment getNamespaceAssignment_0() { return cNamespaceAssignment_0; }
+
+ //UnqualifiedName
+ public RuleCall getNamespaceUnqualifiedNameParserRuleCall_0_0() { return cNamespaceUnqualifiedNameParserRuleCall_0_0; }
+
+ //"::"
+ public Keyword getColonColonKeyword_1() { return cColonColonKeyword_1; }
+ }
+
+ public class UnqualifiedNameElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "UnqualifiedName");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cNameAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cNameIDTerminalRuleCall_0_0 = (RuleCall)cNameAssignment_0.eContents().get(0);
+ private final Assignment cTemplateBindingAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cTemplateBindingTemplateBindingParserRuleCall_1_0 = (RuleCall)cTemplateBindingAssignment_1.eContents().get(0);
+
+ //UnqualifiedName:
+ // name=ID templateBinding=TemplateBinding?;
+ public ParserRule getRule() { return rule; }
+
+ //name=ID templateBinding=TemplateBinding?
+ public Group getGroup() { return cGroup; }
+
+ //name=ID
+ public Assignment getNameAssignment_0() { return cNameAssignment_0; }
+
+ //ID
+ public RuleCall getNameIDTerminalRuleCall_0_0() { return cNameIDTerminalRuleCall_0_0; }
+
+ //templateBinding=TemplateBinding?
+ public Assignment getTemplateBindingAssignment_1() { return cTemplateBindingAssignment_1; }
+
+ //TemplateBinding
+ public RuleCall getTemplateBindingTemplateBindingParserRuleCall_1_0() { return cTemplateBindingTemplateBindingParserRuleCall_1_0; }
+ }
+
+ public class TemplateBindingElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TemplateBinding");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cLessThanSignKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cBindingsAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cBindingsNamedTemplateBindingParserRuleCall_1_0 = (RuleCall)cBindingsAssignment_1.eContents().get(0);
+ private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+ private final Keyword cCommaKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+ private final Assignment cBindingsAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
+ private final RuleCall cBindingsNamedTemplateBindingParserRuleCall_2_1_0 = (RuleCall)cBindingsAssignment_2_1.eContents().get(0);
+ private final Keyword cGreaterThanSignKeyword_3 = (Keyword)cGroup.eContents().get(3);
+
+ //TemplateBinding:
+ // "<" bindings+=NamedTemplateBinding ("," bindings+=NamedTemplateBinding)* ">";
+ public ParserRule getRule() { return rule; }
+
+ //"<" bindings+=NamedTemplateBinding ("," bindings+=NamedTemplateBinding)* ">"
+ public Group getGroup() { return cGroup; }
+
+ //"<"
+ public Keyword getLessThanSignKeyword_0() { return cLessThanSignKeyword_0; }
+
+ //bindings+=NamedTemplateBinding
+ public Assignment getBindingsAssignment_1() { return cBindingsAssignment_1; }
+
+ //NamedTemplateBinding
+ public RuleCall getBindingsNamedTemplateBindingParserRuleCall_1_0() { return cBindingsNamedTemplateBindingParserRuleCall_1_0; }
+
+ //("," bindings+=NamedTemplateBinding)*
+ public Group getGroup_2() { return cGroup_2; }
+
+ //","
+ public Keyword getCommaKeyword_2_0() { return cCommaKeyword_2_0; }
+
+ //bindings+=NamedTemplateBinding
+ public Assignment getBindingsAssignment_2_1() { return cBindingsAssignment_2_1; }
+
+ //NamedTemplateBinding
+ public RuleCall getBindingsNamedTemplateBindingParserRuleCall_2_1_0() { return cBindingsNamedTemplateBindingParserRuleCall_2_1_0; }
+
+ //">"
+ public Keyword getGreaterThanSignKeyword_3() { return cGreaterThanSignKeyword_3; }
+ }
+
+ public class NamedTemplateBindingElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "NamedTemplateBinding");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cFormalAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cFormalIDTerminalRuleCall_0_0 = (RuleCall)cFormalAssignment_0.eContents().get(0);
+ private final Keyword cEqualsSignGreaterThanSignKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cActualAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cActualQualifiedNameWithBindingParserRuleCall_2_0 = (RuleCall)cActualAssignment_2.eContents().get(0);
+
+ //NamedTemplateBinding:
+ // formal=ID "=>" actual=QualifiedNameWithBinding;
+ public ParserRule getRule() { return rule; }
+
+ //formal=ID "=>" actual=QualifiedNameWithBinding
+ public Group getGroup() { return cGroup; }
+
+ //formal=ID
+ public Assignment getFormalAssignment_0() { return cFormalAssignment_0; }
+
+ //ID
+ public RuleCall getFormalIDTerminalRuleCall_0_0() { return cFormalIDTerminalRuleCall_0_0; }
+
+ //"=>"
+ public Keyword getEqualsSignGreaterThanSignKeyword_1() { return cEqualsSignGreaterThanSignKeyword_1; }
+
+ //actual=QualifiedNameWithBinding
+ public Assignment getActualAssignment_2() { return cActualAssignment_2; }
+
+ //QualifiedNameWithBinding
+ public RuleCall getActualQualifiedNameWithBindingParserRuleCall_2_0() { return cActualQualifiedNameWithBindingParserRuleCall_2_0; }
+ }
+
+ public class QualifiedNameWithBindingElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "QualifiedNameWithBinding");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cIdAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cIdIDTerminalRuleCall_0_0 = (RuleCall)cIdAssignment_0.eContents().get(0);
+ private final Assignment cBindingAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cBindingTemplateBindingParserRuleCall_1_0 = (RuleCall)cBindingAssignment_1.eContents().get(0);
+ private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+ private final Keyword cColonColonKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+ private final Assignment cRemainingAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
+ private final RuleCall cRemainingQualifiedNameWithBindingParserRuleCall_2_1_0 = (RuleCall)cRemainingAssignment_2_1.eContents().get(0);
+
+ //QualifiedNameWithBinding:
+ // id=ID binding=TemplateBinding? ("::" remaining=QualifiedNameWithBinding)?;
+ public ParserRule getRule() { return rule; }
+
+ //id=ID binding=TemplateBinding? ("::" remaining=QualifiedNameWithBinding)?
+ public Group getGroup() { return cGroup; }
+
+ //id=ID
+ public Assignment getIdAssignment_0() { return cIdAssignment_0; }
+
+ //ID
+ public RuleCall getIdIDTerminalRuleCall_0_0() { return cIdIDTerminalRuleCall_0_0; }
+
+ //binding=TemplateBinding?
+ public Assignment getBindingAssignment_1() { return cBindingAssignment_1; }
+
+ //TemplateBinding
+ public RuleCall getBindingTemplateBindingParserRuleCall_1_0() { return cBindingTemplateBindingParserRuleCall_1_0; }
+
+ //("::" remaining=QualifiedNameWithBinding)?
+ public Group getGroup_2() { return cGroup_2; }
+
+ //"::"
+ public Keyword getColonColonKeyword_2_0() { return cColonColonKeyword_2_0; }
+
+ //remaining=QualifiedNameWithBinding
+ public Assignment getRemainingAssignment_2_1() { return cRemainingAssignment_2_1; }
+
+ //QualifiedNameWithBinding
+ public RuleCall getRemainingQualifiedNameWithBindingParserRuleCall_2_1_0() { return cRemainingQualifiedNameWithBindingParserRuleCall_2_1_0; }
+ }
+
+ public class TupleElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Tuple");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cTupleAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+ private final Assignment cTupleElementsAssignment_2_0 = (Assignment)cGroup_2.eContents().get(0);
+ private final RuleCall cTupleElementsTupleElementParserRuleCall_2_0_0 = (RuleCall)cTupleElementsAssignment_2_0.eContents().get(0);
+ private final Group cGroup_2_1 = (Group)cGroup_2.eContents().get(1);
+ private final Keyword cCommaKeyword_2_1_0 = (Keyword)cGroup_2_1.eContents().get(0);
+ private final Assignment cTupleElementsAssignment_2_1_1 = (Assignment)cGroup_2_1.eContents().get(1);
+ private final RuleCall cTupleElementsTupleElementParserRuleCall_2_1_1_0 = (RuleCall)cTupleElementsAssignment_2_1_1.eContents().get(0);
+ private final Keyword cRightParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
+
+ //Tuple:
+ // {Tuple} "(" (tupleElements+=TupleElement ("," tupleElements+=TupleElement)*)? ")";
+ public ParserRule getRule() { return rule; }
+
+ //{Tuple} "(" (tupleElements+=TupleElement ("," tupleElements+=TupleElement)*)? ")"
+ public Group getGroup() { return cGroup; }
+
+ //{Tuple}
+ public Action getTupleAction_0() { return cTupleAction_0; }
+
+ //"("
+ public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }
+
+ //(tupleElements+=TupleElement ("," tupleElements+=TupleElement)*)?
+ public Group getGroup_2() { return cGroup_2; }
+
+ //tupleElements+=TupleElement
+ public Assignment getTupleElementsAssignment_2_0() { return cTupleElementsAssignment_2_0; }
+
+ //TupleElement
+ public RuleCall getTupleElementsTupleElementParserRuleCall_2_0_0() { return cTupleElementsTupleElementParserRuleCall_2_0_0; }
+
+ //("," tupleElements+=TupleElement)*
+ public Group getGroup_2_1() { return cGroup_2_1; }
+
+ //","
+ public Keyword getCommaKeyword_2_1_0() { return cCommaKeyword_2_1_0; }
+
+ //tupleElements+=TupleElement
+ public Assignment getTupleElementsAssignment_2_1_1() { return cTupleElementsAssignment_2_1_1; }
+
+ //TupleElement
+ public RuleCall getTupleElementsTupleElementParserRuleCall_2_1_1_0() { return cTupleElementsTupleElementParserRuleCall_2_1_1_0; }
+
+ //")"
+ public Keyword getRightParenthesisKeyword_3() { return cRightParenthesisKeyword_3; }
+ }
+
+ public class TupleElementElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TupleElement");
+ private final Assignment cArgumentAssignment = (Assignment)rule.eContents().get(1);
+ private final RuleCall cArgumentExpressionParserRuleCall_0 = (RuleCall)cArgumentAssignment.eContents().get(0);
+
+ //TupleElement:
+ // argument=Expression;
+ public ParserRule getRule() { return rule; }
+
+ //argument=Expression
+ public Assignment getArgumentAssignment() { return cArgumentAssignment; }
+
+ //Expression
+ public RuleCall getArgumentExpressionParserRuleCall_0() { return cArgumentExpressionParserRuleCall_0; }
+ }
+
+ public class ExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Expression");
+ private final RuleCall cConditionalTestExpressionParserRuleCall = (RuleCall)rule.eContents().get(1);
+
+ /// **************
+ // * Expressions
+ // ************** / Expression:
+ // ConditionalTestExpression;
+ public ParserRule getRule() { return rule; }
+
+ //ConditionalTestExpression
+ public RuleCall getConditionalTestExpressionParserRuleCall() { return cConditionalTestExpressionParserRuleCall; }
+ }
+
+ public class ConditionalTestExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ConditionalTestExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cExpAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cExpConditionalOrExpressionParserRuleCall_0_0 = (RuleCall)cExpAssignment_0.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Keyword cQuestionMarkKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+ private final Assignment cWhenTrueAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cWhenTrueConditionalTestExpressionParserRuleCall_1_1_0 = (RuleCall)cWhenTrueAssignment_1_1.eContents().get(0);
+ private final Keyword cColonKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2);
+ private final Assignment cWhenFalseAssignment_1_3 = (Assignment)cGroup_1.eContents().get(3);
+ private final RuleCall cWhenFalseConditionalTestExpressionParserRuleCall_1_3_0 = (RuleCall)cWhenFalseAssignment_1_3.eContents().get(0);
+
+ //ConditionalTestExpression:
+ // exp=ConditionalOrExpression ("?" whenTrue=ConditionalTestExpression ":" whenFalse=ConditionalTestExpression)?;
+ public ParserRule getRule() { return rule; }
+
+ //exp=ConditionalOrExpression ("?" whenTrue=ConditionalTestExpression ":" whenFalse=ConditionalTestExpression)?
+ public Group getGroup() { return cGroup; }
+
+ //exp=ConditionalOrExpression
+ public Assignment getExpAssignment_0() { return cExpAssignment_0; }
+
+ //ConditionalOrExpression
+ public RuleCall getExpConditionalOrExpressionParserRuleCall_0_0() { return cExpConditionalOrExpressionParserRuleCall_0_0; }
+
+ //("?" whenTrue=ConditionalTestExpression ":" whenFalse=ConditionalTestExpression)?
+ public Group getGroup_1() { return cGroup_1; }
+
+ //"?"
+ public Keyword getQuestionMarkKeyword_1_0() { return cQuestionMarkKeyword_1_0; }
+
+ //whenTrue=ConditionalTestExpression
+ public Assignment getWhenTrueAssignment_1_1() { return cWhenTrueAssignment_1_1; }
+
+ //ConditionalTestExpression
+ public RuleCall getWhenTrueConditionalTestExpressionParserRuleCall_1_1_0() { return cWhenTrueConditionalTestExpressionParserRuleCall_1_1_0; }
+
+ //":"
+ public Keyword getColonKeyword_1_2() { return cColonKeyword_1_2; }
+
+ //whenFalse=ConditionalTestExpression
+ public Assignment getWhenFalseAssignment_1_3() { return cWhenFalseAssignment_1_3; }
+
+ //ConditionalTestExpression
+ public RuleCall getWhenFalseConditionalTestExpressionParserRuleCall_1_3_0() { return cWhenFalseConditionalTestExpressionParserRuleCall_1_3_0; }
+ }
+
+ public class ConditionalOrExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ConditionalOrExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cExpAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cExpConditionalAndExpressionParserRuleCall_0_0 = (RuleCall)cExpAssignment_0.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Keyword cVerticalLineVerticalLineKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+ private final Assignment cExpAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cExpConditionalAndExpressionParserRuleCall_1_1_0 = (RuleCall)cExpAssignment_1_1.eContents().get(0);
+
+ //ConditionalOrExpression:
+ // exp+=ConditionalAndExpression ("||" exp+=ConditionalAndExpression)*;
+ public ParserRule getRule() { return rule; }
+
+ //exp+=ConditionalAndExpression ("||" exp+=ConditionalAndExpression)*
+ public Group getGroup() { return cGroup; }
+
+ //exp+=ConditionalAndExpression
+ public Assignment getExpAssignment_0() { return cExpAssignment_0; }
+
+ //ConditionalAndExpression
+ public RuleCall getExpConditionalAndExpressionParserRuleCall_0_0() { return cExpConditionalAndExpressionParserRuleCall_0_0; }
+
+ //("||" exp+=ConditionalAndExpression)*
+ public Group getGroup_1() { return cGroup_1; }
+
+ //"||"
+ public Keyword getVerticalLineVerticalLineKeyword_1_0() { return cVerticalLineVerticalLineKeyword_1_0; }
+
+ //exp+=ConditionalAndExpression
+ public Assignment getExpAssignment_1_1() { return cExpAssignment_1_1; }
+
+ //ConditionalAndExpression
+ public RuleCall getExpConditionalAndExpressionParserRuleCall_1_1_0() { return cExpConditionalAndExpressionParserRuleCall_1_1_0; }
+ }
+
+ public class ConditionalAndExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ConditionalAndExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cExpAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cExpInclusiveOrExpressionParserRuleCall_0_0 = (RuleCall)cExpAssignment_0.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Keyword cAmpersandAmpersandKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+ private final Assignment cExpAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cExpInclusiveOrExpressionParserRuleCall_1_1_0 = (RuleCall)cExpAssignment_1_1.eContents().get(0);
+
+ //ConditionalAndExpression:
+ // exp+=InclusiveOrExpression ("&&" exp+=InclusiveOrExpression)*;
+ public ParserRule getRule() { return rule; }
+
+ //exp+=InclusiveOrExpression ("&&" exp+=InclusiveOrExpression)*
+ public Group getGroup() { return cGroup; }
+
+ //exp+=InclusiveOrExpression
+ public Assignment getExpAssignment_0() { return cExpAssignment_0; }
+
+ //InclusiveOrExpression
+ public RuleCall getExpInclusiveOrExpressionParserRuleCall_0_0() { return cExpInclusiveOrExpressionParserRuleCall_0_0; }
+
+ //("&&" exp+=InclusiveOrExpression)*
+ public Group getGroup_1() { return cGroup_1; }
+
+ //"&&"
+ public Keyword getAmpersandAmpersandKeyword_1_0() { return cAmpersandAmpersandKeyword_1_0; }
+
+ //exp+=InclusiveOrExpression
+ public Assignment getExpAssignment_1_1() { return cExpAssignment_1_1; }
+
+ //InclusiveOrExpression
+ public RuleCall getExpInclusiveOrExpressionParserRuleCall_1_1_0() { return cExpInclusiveOrExpressionParserRuleCall_1_1_0; }
+ }
+
+ public class InclusiveOrExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "InclusiveOrExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cExpAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cExpExclusiveOrExpressionParserRuleCall_0_0 = (RuleCall)cExpAssignment_0.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Keyword cVerticalLineKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+ private final Assignment cExpAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cExpExclusiveOrExpressionParserRuleCall_1_1_0 = (RuleCall)cExpAssignment_1_1.eContents().get(0);
+
+ //InclusiveOrExpression:
+ // exp+=ExclusiveOrExpression ("|" exp+=ExclusiveOrExpression)*;
+ public ParserRule getRule() { return rule; }
+
+ //exp+=ExclusiveOrExpression ("|" exp+=ExclusiveOrExpression)*
+ public Group getGroup() { return cGroup; }
+
+ //exp+=ExclusiveOrExpression
+ public Assignment getExpAssignment_0() { return cExpAssignment_0; }
+
+ //ExclusiveOrExpression
+ public RuleCall getExpExclusiveOrExpressionParserRuleCall_0_0() { return cExpExclusiveOrExpressionParserRuleCall_0_0; }
+
+ //("|" exp+=ExclusiveOrExpression)*
+ public Group getGroup_1() { return cGroup_1; }
+
+ //"|"
+ public Keyword getVerticalLineKeyword_1_0() { return cVerticalLineKeyword_1_0; }
+
+ //exp+=ExclusiveOrExpression
+ public Assignment getExpAssignment_1_1() { return cExpAssignment_1_1; }
+
+ //ExclusiveOrExpression
+ public RuleCall getExpExclusiveOrExpressionParserRuleCall_1_1_0() { return cExpExclusiveOrExpressionParserRuleCall_1_1_0; }
+ }
+
+ public class ExclusiveOrExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ExclusiveOrExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cExpAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cExpAndExpressionParserRuleCall_0_0 = (RuleCall)cExpAssignment_0.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Keyword cCircumflexAccentKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+ private final Assignment cExpAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cExpAndExpressionParserRuleCall_1_1_0 = (RuleCall)cExpAssignment_1_1.eContents().get(0);
+
+ //ExclusiveOrExpression:
+ // exp+=AndExpression ("^" exp+=AndExpression)*;
+ public ParserRule getRule() { return rule; }
+
+ //exp+=AndExpression ("^" exp+=AndExpression)*
+ public Group getGroup() { return cGroup; }
+
+ //exp+=AndExpression
+ public Assignment getExpAssignment_0() { return cExpAssignment_0; }
+
+ //AndExpression
+ public RuleCall getExpAndExpressionParserRuleCall_0_0() { return cExpAndExpressionParserRuleCall_0_0; }
+
+ //("^" exp+=AndExpression)*
+ public Group getGroup_1() { return cGroup_1; }
+
+ //"^"
+ public Keyword getCircumflexAccentKeyword_1_0() { return cCircumflexAccentKeyword_1_0; }
+
+ //exp+=AndExpression
+ public Assignment getExpAssignment_1_1() { return cExpAssignment_1_1; }
+
+ //AndExpression
+ public RuleCall getExpAndExpressionParserRuleCall_1_1_0() { return cExpAndExpressionParserRuleCall_1_1_0; }
+ }
+
+ public class AndExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "AndExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cExpAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cExpEqualityExpressionParserRuleCall_0_0 = (RuleCall)cExpAssignment_0.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Keyword cAmpersandKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+ private final Assignment cExpAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cExpEqualityExpressionParserRuleCall_1_1_0 = (RuleCall)cExpAssignment_1_1.eContents().get(0);
+
+ //AndExpression:
+ // exp+=EqualityExpression ("&" exp+=EqualityExpression)*;
+ public ParserRule getRule() { return rule; }
+
+ //exp+=EqualityExpression ("&" exp+=EqualityExpression)*
+ public Group getGroup() { return cGroup; }
+
+ //exp+=EqualityExpression
+ public Assignment getExpAssignment_0() { return cExpAssignment_0; }
+
+ //EqualityExpression
+ public RuleCall getExpEqualityExpressionParserRuleCall_0_0() { return cExpEqualityExpressionParserRuleCall_0_0; }
+
+ //("&" exp+=EqualityExpression)*
+ public Group getGroup_1() { return cGroup_1; }
+
+ //"&"
+ public Keyword getAmpersandKeyword_1_0() { return cAmpersandKeyword_1_0; }
+
+ //exp+=EqualityExpression
+ public Assignment getExpAssignment_1_1() { return cExpAssignment_1_1; }
+
+ //EqualityExpression
+ public RuleCall getExpEqualityExpressionParserRuleCall_1_1_0() { return cExpEqualityExpressionParserRuleCall_1_1_0; }
+ }
+
+ public class EqualityExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "EqualityExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cExpAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cExpClassificationExpressionParserRuleCall_0_0 = (RuleCall)cExpAssignment_0.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Assignment cOpAssignment_1_0 = (Assignment)cGroup_1.eContents().get(0);
+ private final Alternatives cOpAlternatives_1_0_0 = (Alternatives)cOpAssignment_1_0.eContents().get(0);
+ private final Keyword cOpEqualsSignEqualsSignKeyword_1_0_0_0 = (Keyword)cOpAlternatives_1_0_0.eContents().get(0);
+ private final Keyword cOpExclamationMarkEqualsSignKeyword_1_0_0_1 = (Keyword)cOpAlternatives_1_0_0.eContents().get(1);
+ private final Assignment cExpAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cExpClassificationExpressionParserRuleCall_1_1_0 = (RuleCall)cExpAssignment_1_1.eContents().get(0);
+
+ //EqualityExpression:
+ // exp+=ClassificationExpression (op+=("==" | "!=") exp+=ClassificationExpression)*;
+ public ParserRule getRule() { return rule; }
+
+ //exp+=ClassificationExpression (op+=("==" | "!=") exp+=ClassificationExpression)*
+ public Group getGroup() { return cGroup; }
+
+ //exp+=ClassificationExpression
+ public Assignment getExpAssignment_0() { return cExpAssignment_0; }
+
+ //ClassificationExpression
+ public RuleCall getExpClassificationExpressionParserRuleCall_0_0() { return cExpClassificationExpressionParserRuleCall_0_0; }
+
+ //(op+=("==" | "!=") exp+=ClassificationExpression)*
+ public Group getGroup_1() { return cGroup_1; }
+
+ //op+=("==" | "!=")
+ public Assignment getOpAssignment_1_0() { return cOpAssignment_1_0; }
+
+ //"==" | "!="
+ public Alternatives getOpAlternatives_1_0_0() { return cOpAlternatives_1_0_0; }
+
+ //"=="
+ public Keyword getOpEqualsSignEqualsSignKeyword_1_0_0_0() { return cOpEqualsSignEqualsSignKeyword_1_0_0_0; }
+
+ //"!="
+ public Keyword getOpExclamationMarkEqualsSignKeyword_1_0_0_1() { return cOpExclamationMarkEqualsSignKeyword_1_0_0_1; }
+
+ //exp+=ClassificationExpression
+ public Assignment getExpAssignment_1_1() { return cExpAssignment_1_1; }
+
+ //ClassificationExpression
+ public RuleCall getExpClassificationExpressionParserRuleCall_1_1_0() { return cExpClassificationExpressionParserRuleCall_1_1_0; }
+ }
+
+ public class ClassificationExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ClassificationExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cExpAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cExpRelationalExpressionParserRuleCall_0_0 = (RuleCall)cExpAssignment_0.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Assignment cOpAssignment_1_0 = (Assignment)cGroup_1.eContents().get(0);
+ private final Alternatives cOpAlternatives_1_0_0 = (Alternatives)cOpAssignment_1_0.eContents().get(0);
+ private final Keyword cOpInstanceofKeyword_1_0_0_0 = (Keyword)cOpAlternatives_1_0_0.eContents().get(0);
+ private final Keyword cOpHastypeKeyword_1_0_0_1 = (Keyword)cOpAlternatives_1_0_0.eContents().get(1);
+ private final Assignment cTypeNameAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cTypeNameNameExpressionParserRuleCall_1_1_0 = (RuleCall)cTypeNameAssignment_1_1.eContents().get(0);
+
+ ////enum EqualityOperator :
+ //// EQUALS = '==' |
+ //// NOT_EQUALS = '!='
+ ////;
+ //ClassificationExpression:
+ // exp=RelationalExpression (op=("instanceof" | "hastype") typeName=NameExpression)?;
+ public ParserRule getRule() { return rule; }
+
+ //exp=RelationalExpression (op=("instanceof" | "hastype") typeName=NameExpression)?
+ public Group getGroup() { return cGroup; }
+
+ //exp=RelationalExpression
+ public Assignment getExpAssignment_0() { return cExpAssignment_0; }
+
+ //RelationalExpression
+ public RuleCall getExpRelationalExpressionParserRuleCall_0_0() { return cExpRelationalExpressionParserRuleCall_0_0; }
+
+ //(op=("instanceof" | "hastype") typeName=NameExpression)?
+ public Group getGroup_1() { return cGroup_1; }
+
+ //op=("instanceof" | "hastype")
+ public Assignment getOpAssignment_1_0() { return cOpAssignment_1_0; }
+
+ //"instanceof" | "hastype"
+ public Alternatives getOpAlternatives_1_0_0() { return cOpAlternatives_1_0_0; }
+
+ //"instanceof"
+ public Keyword getOpInstanceofKeyword_1_0_0_0() { return cOpInstanceofKeyword_1_0_0_0; }
+
+ //"hastype"
+ public Keyword getOpHastypeKeyword_1_0_0_1() { return cOpHastypeKeyword_1_0_0_1; }
+
+ //typeName=NameExpression
+ public Assignment getTypeNameAssignment_1_1() { return cTypeNameAssignment_1_1; }
+
+ //NameExpression
+ public RuleCall getTypeNameNameExpressionParserRuleCall_1_1_0() { return cTypeNameNameExpressionParserRuleCall_1_1_0; }
+ }
+
+ public class RelationalExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "RelationalExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cLeftAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cLeftShiftExpressionParserRuleCall_0_0 = (RuleCall)cLeftAssignment_0.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Assignment cOpAssignment_1_0 = (Assignment)cGroup_1.eContents().get(0);
+ private final Alternatives cOpAlternatives_1_0_0 = (Alternatives)cOpAssignment_1_0.eContents().get(0);
+ private final Keyword cOpLessThanSignKeyword_1_0_0_0 = (Keyword)cOpAlternatives_1_0_0.eContents().get(0);
+ private final Keyword cOpGreaterThanSignKeyword_1_0_0_1 = (Keyword)cOpAlternatives_1_0_0.eContents().get(1);
+ private final Keyword cOpLessThanSignEqualsSignKeyword_1_0_0_2 = (Keyword)cOpAlternatives_1_0_0.eContents().get(2);
+ private final Keyword cOpGreaterThanSignEqualsSignKeyword_1_0_0_3 = (Keyword)cOpAlternatives_1_0_0.eContents().get(3);
+ private final Assignment cRightAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cRightShiftExpressionParserRuleCall_1_1_0 = (RuleCall)cRightAssignment_1_1.eContents().get(0);
+
+ ////enum ClassificationOperator :
+ //// INSTANCEOF = 'instanceof' |
+ //// HASTYPE = 'hastype'
+ ////;
+ //RelationalExpression:
+ // left=ShiftExpression (op=("<" | ">" | "<=" | ">=") right=ShiftExpression)?;
+ public ParserRule getRule() { return rule; }
+
+ //left=ShiftExpression (op=("<" | ">" | "<=" | ">=") right=ShiftExpression)?
+ public Group getGroup() { return cGroup; }
+
+ //left=ShiftExpression
+ public Assignment getLeftAssignment_0() { return cLeftAssignment_0; }
+
+ //ShiftExpression
+ public RuleCall getLeftShiftExpressionParserRuleCall_0_0() { return cLeftShiftExpressionParserRuleCall_0_0; }
+
+ //(op=("<" | ">" | "<=" | ">=") right=ShiftExpression)?
+ public Group getGroup_1() { return cGroup_1; }
+
+ //op=("<" | ">" | "<=" | ">=")
+ public Assignment getOpAssignment_1_0() { return cOpAssignment_1_0; }
+
+ //"<" | ">" | "<=" | ">="
+ public Alternatives getOpAlternatives_1_0_0() { return cOpAlternatives_1_0_0; }
+
+ //"<"
+ public Keyword getOpLessThanSignKeyword_1_0_0_0() { return cOpLessThanSignKeyword_1_0_0_0; }
+
+ //">"
+ public Keyword getOpGreaterThanSignKeyword_1_0_0_1() { return cOpGreaterThanSignKeyword_1_0_0_1; }
+
+ //"<="
+ public Keyword getOpLessThanSignEqualsSignKeyword_1_0_0_2() { return cOpLessThanSignEqualsSignKeyword_1_0_0_2; }
+
+ //">="
+ public Keyword getOpGreaterThanSignEqualsSignKeyword_1_0_0_3() { return cOpGreaterThanSignEqualsSignKeyword_1_0_0_3; }
+
+ //right=ShiftExpression
+ public Assignment getRightAssignment_1_1() { return cRightAssignment_1_1; }
+
+ //ShiftExpression
+ public RuleCall getRightShiftExpressionParserRuleCall_1_1_0() { return cRightShiftExpressionParserRuleCall_1_1_0; }
+ }
+
+ public class ShiftExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ShiftExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cExpAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cExpAdditiveExpressionParserRuleCall_0_0 = (RuleCall)cExpAssignment_0.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Assignment cOpAssignment_1_0 = (Assignment)cGroup_1.eContents().get(0);
+ private final Alternatives cOpAlternatives_1_0_0 = (Alternatives)cOpAssignment_1_0.eContents().get(0);
+ private final Keyword cOpLessThanSignLessThanSignKeyword_1_0_0_0 = (Keyword)cOpAlternatives_1_0_0.eContents().get(0);
+ private final Keyword cOpGreaterThanSignGreaterThanSignKeyword_1_0_0_1 = (Keyword)cOpAlternatives_1_0_0.eContents().get(1);
+ private final Keyword cOpGreaterThanSignGreaterThanSignGreaterThanSignKeyword_1_0_0_2 = (Keyword)cOpAlternatives_1_0_0.eContents().get(2);
+ private final Assignment cExpAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cExpAdditiveExpressionParserRuleCall_1_1_0 = (RuleCall)cExpAssignment_1_1.eContents().get(0);
+
+ ////RelationalOperator :
+ //// LOWER = '<' |
+ //// UPPER = '>' |
+ //// LOWER_EQUALS = '<=' |
+ //// UPPER_EQUALS = '>='
+ ////;
+ //ShiftExpression:
+ // exp+=AdditiveExpression (op=("<<" | ">>" | ">>>") exp+=AdditiveExpression)?;
+ public ParserRule getRule() { return rule; }
+
+ //exp+=AdditiveExpression (op=("<<" | ">>" | ">>>") exp+=AdditiveExpression)?
+ public Group getGroup() { return cGroup; }
+
+ //exp+=AdditiveExpression
+ public Assignment getExpAssignment_0() { return cExpAssignment_0; }
+
+ //AdditiveExpression
+ public RuleCall getExpAdditiveExpressionParserRuleCall_0_0() { return cExpAdditiveExpressionParserRuleCall_0_0; }
+
+ //(op=("<<" | ">>" | ">>>") exp+=AdditiveExpression)?
+ public Group getGroup_1() { return cGroup_1; }
+
+ //op=("<<" | ">>" | ">>>")
+ public Assignment getOpAssignment_1_0() { return cOpAssignment_1_0; }
+
+ //"<<" | ">>" | ">>>"
+ public Alternatives getOpAlternatives_1_0_0() { return cOpAlternatives_1_0_0; }
+
+ //"<<"
+ public Keyword getOpLessThanSignLessThanSignKeyword_1_0_0_0() { return cOpLessThanSignLessThanSignKeyword_1_0_0_0; }
+
+ //">>"
+ public Keyword getOpGreaterThanSignGreaterThanSignKeyword_1_0_0_1() { return cOpGreaterThanSignGreaterThanSignKeyword_1_0_0_1; }
+
+ //">>>"
+ public Keyword getOpGreaterThanSignGreaterThanSignGreaterThanSignKeyword_1_0_0_2() { return cOpGreaterThanSignGreaterThanSignGreaterThanSignKeyword_1_0_0_2; }
+
+ //exp+=AdditiveExpression
+ public Assignment getExpAssignment_1_1() { return cExpAssignment_1_1; }
+
+ //AdditiveExpression
+ public RuleCall getExpAdditiveExpressionParserRuleCall_1_1_0() { return cExpAdditiveExpressionParserRuleCall_1_1_0; }
+ }
+
+ public class AdditiveExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "AdditiveExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cExpAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cExpMultiplicativeExpressionParserRuleCall_0_0 = (RuleCall)cExpAssignment_0.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Assignment cOpAssignment_1_0 = (Assignment)cGroup_1.eContents().get(0);
+ private final Alternatives cOpAlternatives_1_0_0 = (Alternatives)cOpAssignment_1_0.eContents().get(0);
+ private final Keyword cOpPlusSignKeyword_1_0_0_0 = (Keyword)cOpAlternatives_1_0_0.eContents().get(0);
+ private final Keyword cOpHyphenMinusKeyword_1_0_0_1 = (Keyword)cOpAlternatives_1_0_0.eContents().get(1);
+ private final Assignment cExpAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cExpMultiplicativeExpressionParserRuleCall_1_1_0 = (RuleCall)cExpAssignment_1_1.eContents().get(0);
+
+ ////enum ShiftOperator :
+ //// LSHIFT = '<<' |
+ //// RSHIFT = '>>' |
+ //// URSHIFT = '>>>'
+ ////;
+ //AdditiveExpression:
+ // exp+=MultiplicativeExpression (op+=("+" | "-") exp+=MultiplicativeExpression)*;
+ public ParserRule getRule() { return rule; }
+
+ //exp+=MultiplicativeExpression (op+=("+" | "-") exp+=MultiplicativeExpression)*
+ public Group getGroup() { return cGroup; }
+
+ //exp+=MultiplicativeExpression
+ public Assignment getExpAssignment_0() { return cExpAssignment_0; }
+
+ //MultiplicativeExpression
+ public RuleCall getExpMultiplicativeExpressionParserRuleCall_0_0() { return cExpMultiplicativeExpressionParserRuleCall_0_0; }
+
+ //(op+=("+" | "-") exp+=MultiplicativeExpression)*
+ public Group getGroup_1() { return cGroup_1; }
+
+ //op+=("+" | "-")
+ public Assignment getOpAssignment_1_0() { return cOpAssignment_1_0; }
+
+ //"+" | "-"
+ public Alternatives getOpAlternatives_1_0_0() { return cOpAlternatives_1_0_0; }
+
+ //"+"
+ public Keyword getOpPlusSignKeyword_1_0_0_0() { return cOpPlusSignKeyword_1_0_0_0; }
+
+ //"-"
+ public Keyword getOpHyphenMinusKeyword_1_0_0_1() { return cOpHyphenMinusKeyword_1_0_0_1; }
+
+ //exp+=MultiplicativeExpression
+ public Assignment getExpAssignment_1_1() { return cExpAssignment_1_1; }
+
+ //MultiplicativeExpression
+ public RuleCall getExpMultiplicativeExpressionParserRuleCall_1_1_0() { return cExpMultiplicativeExpressionParserRuleCall_1_1_0; }
+ }
+
+ public class MultiplicativeExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "MultiplicativeExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cExpAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cExpUnaryExpressionParserRuleCall_0_0 = (RuleCall)cExpAssignment_0.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Assignment cOpAssignment_1_0 = (Assignment)cGroup_1.eContents().get(0);
+ private final Alternatives cOpAlternatives_1_0_0 = (Alternatives)cOpAssignment_1_0.eContents().get(0);
+ private final Keyword cOpAsteriskKeyword_1_0_0_0 = (Keyword)cOpAlternatives_1_0_0.eContents().get(0);
+ private final Keyword cOpSolidusKeyword_1_0_0_1 = (Keyword)cOpAlternatives_1_0_0.eContents().get(1);
+ private final Keyword cOpPercentSignKeyword_1_0_0_2 = (Keyword)cOpAlternatives_1_0_0.eContents().get(2);
+ private final Assignment cExpAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cExpUnaryExpressionParserRuleCall_1_1_0 = (RuleCall)cExpAssignment_1_1.eContents().get(0);
+
+ ////enum AdditiveOp :
+ //// PLUS = '+' |
+ //// MINUS = '-'
+ ////;
+ //MultiplicativeExpression:
+ // exp+=UnaryExpression (op+=("*" | "/" | "%") exp+=UnaryExpression)*;
+ public ParserRule getRule() { return rule; }
+
+ //exp+=UnaryExpression (op+=("*" | "/" | "%") exp+=UnaryExpression)*
+ public Group getGroup() { return cGroup; }
+
+ //exp+=UnaryExpression
+ public Assignment getExpAssignment_0() { return cExpAssignment_0; }
+
+ //UnaryExpression
+ public RuleCall getExpUnaryExpressionParserRuleCall_0_0() { return cExpUnaryExpressionParserRuleCall_0_0; }
+
+ //(op+=("*" | "/" | "%") exp+=UnaryExpression)*
+ public Group getGroup_1() { return cGroup_1; }
+
+ //op+=("*" | "/" | "%")
+ public Assignment getOpAssignment_1_0() { return cOpAssignment_1_0; }
+
+ //"*" | "/" | "%"
+ public Alternatives getOpAlternatives_1_0_0() { return cOpAlternatives_1_0_0; }
+
+ //"*"
+ public Keyword getOpAsteriskKeyword_1_0_0_0() { return cOpAsteriskKeyword_1_0_0_0; }
+
+ //"/"
+ public Keyword getOpSolidusKeyword_1_0_0_1() { return cOpSolidusKeyword_1_0_0_1; }
+
+ //"%"
+ public Keyword getOpPercentSignKeyword_1_0_0_2() { return cOpPercentSignKeyword_1_0_0_2; }
+
+ //exp+=UnaryExpression
+ public Assignment getExpAssignment_1_1() { return cExpAssignment_1_1; }
+
+ //UnaryExpression
+ public RuleCall getExpUnaryExpressionParserRuleCall_1_1_0() { return cExpUnaryExpressionParserRuleCall_1_1_0; }
+ }
+
+ public class UnaryExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "UnaryExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cOpAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final Alternatives cOpAlternatives_0_0 = (Alternatives)cOpAssignment_0.eContents().get(0);
+ private final Keyword cOpExclamationMarkKeyword_0_0_0 = (Keyword)cOpAlternatives_0_0.eContents().get(0);
+ private final Keyword cOpHyphenMinusKeyword_0_0_1 = (Keyword)cOpAlternatives_0_0.eContents().get(1);
+ private final Keyword cOpPlusSignKeyword_0_0_2 = (Keyword)cOpAlternatives_0_0.eContents().get(2);
+ private final Keyword cOpDollarSignKeyword_0_0_3 = (Keyword)cOpAlternatives_0_0.eContents().get(3);
+ private final Keyword cOpTildeKeyword_0_0_4 = (Keyword)cOpAlternatives_0_0.eContents().get(4);
+ private final Assignment cExpAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cExpPrimaryExpressionParserRuleCall_1_0 = (RuleCall)cExpAssignment_1.eContents().get(0);
+
+ ////enum MultiplicativeOp :
+ //// MULT = '*' |
+ //// DIV = '/' |
+ //// MOD = '%'
+ ////;
+ //UnaryExpression:
+ // op=("!" | "-" | "+" | "$" | "~")? exp=PrimaryExpression;
+ public ParserRule getRule() { return rule; }
+
+ //op=("!" | "-" | "+" | "$" | "~")? exp=PrimaryExpression
+ public Group getGroup() { return cGroup; }
+
+ //op=("!" | "-" | "+" | "$" | "~")?
+ public Assignment getOpAssignment_0() { return cOpAssignment_0; }
+
+ //"!" | "-" | "+" | "$" | "~"
+ public Alternatives getOpAlternatives_0_0() { return cOpAlternatives_0_0; }
+
+ //"!"
+ public Keyword getOpExclamationMarkKeyword_0_0_0() { return cOpExclamationMarkKeyword_0_0_0; }
+
+ //"-"
+ public Keyword getOpHyphenMinusKeyword_0_0_1() { return cOpHyphenMinusKeyword_0_0_1; }
+
+ //"+"
+ public Keyword getOpPlusSignKeyword_0_0_2() { return cOpPlusSignKeyword_0_0_2; }
+
+ //"$"
+ public Keyword getOpDollarSignKeyword_0_0_3() { return cOpDollarSignKeyword_0_0_3; }
+
+ //"~"
+ public Keyword getOpTildeKeyword_0_0_4() { return cOpTildeKeyword_0_0_4; }
+
+ //exp=PrimaryExpression
+ public Assignment getExpAssignment_1() { return cExpAssignment_1; }
+
+ //PrimaryExpression
+ public RuleCall getExpPrimaryExpressionParserRuleCall_1_0() { return cExpPrimaryExpressionParserRuleCall_1_0; }
+ }
+
+ public class PrimaryExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "PrimaryExpression");
+ private final Assignment cPrefixAssignment = (Assignment)rule.eContents().get(1);
+ private final RuleCall cPrefixValueSpecificationParserRuleCall_0 = (RuleCall)cPrefixAssignment.eContents().get(0);
+
+ ////PrimaryExpression :
+ //// prefix = ValueSpecification (suffix = SuffixExpression)?
+ ////;
+ //PrimaryExpression:
+ // prefix=ValueSpecification;
+ public ParserRule getRule() { return rule; }
+
+ //prefix=ValueSpecification
+ public Assignment getPrefixAssignment() { return cPrefixAssignment; }
+
+ //ValueSpecification
+ public RuleCall getPrefixValueSpecificationParserRuleCall_0() { return cPrefixValueSpecificationParserRuleCall_0; }
+ }
+
+ public class SuffixExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SuffixExpression");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cOperationCallExpressionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cPropertyCallExpressionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+ private final RuleCall cLinkOperationExpressionParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+ private final RuleCall cSequenceOperationExpressionParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
+ private final RuleCall cSequenceReductionExpressionParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
+ private final RuleCall cSequenceExpansionExpressionParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
+ private final RuleCall cClassExtentExpressionParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6);
+
+ //SuffixExpression:
+ // OperationCallExpression | PropertyCallExpression | LinkOperationExpression | SequenceOperationExpression |
+ // SequenceReductionExpression | SequenceExpansionExpression | ClassExtentExpression;
+ public ParserRule getRule() { return rule; }
+
+ //OperationCallExpression | PropertyCallExpression | LinkOperationExpression | SequenceOperationExpression |
+ //SequenceReductionExpression | SequenceExpansionExpression | ClassExtentExpression
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //OperationCallExpression
+ public RuleCall getOperationCallExpressionParserRuleCall_0() { return cOperationCallExpressionParserRuleCall_0; }
+
+ //PropertyCallExpression
+ public RuleCall getPropertyCallExpressionParserRuleCall_1() { return cPropertyCallExpressionParserRuleCall_1; }
+
+ //LinkOperationExpression
+ public RuleCall getLinkOperationExpressionParserRuleCall_2() { return cLinkOperationExpressionParserRuleCall_2; }
+
+ //SequenceOperationExpression
+ public RuleCall getSequenceOperationExpressionParserRuleCall_3() { return cSequenceOperationExpressionParserRuleCall_3; }
+
+ //SequenceReductionExpression
+ public RuleCall getSequenceReductionExpressionParserRuleCall_4() { return cSequenceReductionExpressionParserRuleCall_4; }
+
+ //SequenceExpansionExpression
+ public RuleCall getSequenceExpansionExpressionParserRuleCall_5() { return cSequenceExpansionExpressionParserRuleCall_5; }
+
+ //ClassExtentExpression
+ public RuleCall getClassExtentExpressionParserRuleCall_6() { return cClassExtentExpressionParserRuleCall_6; }
+ }
+
+ public class OperationCallExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "OperationCallExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cFullStopKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cOperationNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cOperationNameIDTerminalRuleCall_1_0 = (RuleCall)cOperationNameAssignment_1.eContents().get(0);
+ private final Assignment cTupleAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cTupleTupleParserRuleCall_2_0 = (RuleCall)cTupleAssignment_2.eContents().get(0);
+ private final Assignment cSuffixAssignment_3 = (Assignment)cGroup.eContents().get(3);
+ private final RuleCall cSuffixSuffixExpressionParserRuleCall_3_0 = (RuleCall)cSuffixAssignment_3.eContents().get(0);
+
+ //OperationCallExpression:
+ // "." operationName=ID tuple=Tuple suffix=SuffixExpression?;
+ public ParserRule getRule() { return rule; }
+
+ //"." operationName=ID tuple=Tuple suffix=SuffixExpression?
+ public Group getGroup() { return cGroup; }
+
+ //"."
+ public Keyword getFullStopKeyword_0() { return cFullStopKeyword_0; }
+
+ //operationName=ID
+ public Assignment getOperationNameAssignment_1() { return cOperationNameAssignment_1; }
+
+ //ID
+ public RuleCall getOperationNameIDTerminalRuleCall_1_0() { return cOperationNameIDTerminalRuleCall_1_0; }
+
+ //tuple=Tuple
+ public Assignment getTupleAssignment_2() { return cTupleAssignment_2; }
+
+ //Tuple
+ public RuleCall getTupleTupleParserRuleCall_2_0() { return cTupleTupleParserRuleCall_2_0; }
+
+ //suffix=SuffixExpression?
+ public Assignment getSuffixAssignment_3() { return cSuffixAssignment_3; }
+
+ //SuffixExpression
+ public RuleCall getSuffixSuffixExpressionParserRuleCall_3_0() { return cSuffixSuffixExpressionParserRuleCall_3_0; }
+ }
+
+ public class PropertyCallExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "PropertyCallExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cFullStopKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cPropertyNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cPropertyNameIDTerminalRuleCall_1_0 = (RuleCall)cPropertyNameAssignment_1.eContents().get(0);
+ private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+ private final Keyword cLeftSquareBracketKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+ private final Assignment cIndexAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
+ private final RuleCall cIndexExpressionParserRuleCall_2_1_0 = (RuleCall)cIndexAssignment_2_1.eContents().get(0);
+ private final Keyword cRightSquareBracketKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2);
+ private final Assignment cSuffixAssignment_3 = (Assignment)cGroup.eContents().get(3);
+ private final RuleCall cSuffixSuffixExpressionParserRuleCall_3_0 = (RuleCall)cSuffixAssignment_3.eContents().get(0);
+
+ //// OperationCallExpressionWithoutDot :
+ //// operationName = ID tuple = Tuple (suffix = SuffixExpression)?
+ //// ;
+ //PropertyCallExpression:
+ // "." propertyName=ID ("[" index=Expression "]")? suffix=SuffixExpression?;
+ public ParserRule getRule() { return rule; }
+
+ //"." propertyName=ID ("[" index=Expression "]")? suffix=SuffixExpression?
+ public Group getGroup() { return cGroup; }
+
+ //"."
+ public Keyword getFullStopKeyword_0() { return cFullStopKeyword_0; }
+
+ //propertyName=ID
+ public Assignment getPropertyNameAssignment_1() { return cPropertyNameAssignment_1; }
+
+ //ID
+ public RuleCall getPropertyNameIDTerminalRuleCall_1_0() { return cPropertyNameIDTerminalRuleCall_1_0; }
+
+ //("[" index=Expression "]")?
+ public Group getGroup_2() { return cGroup_2; }
+
+ //"["
+ public Keyword getLeftSquareBracketKeyword_2_0() { return cLeftSquareBracketKeyword_2_0; }
+
+ //index=Expression
+ public Assignment getIndexAssignment_2_1() { return cIndexAssignment_2_1; }
+
+ //Expression
+ public RuleCall getIndexExpressionParserRuleCall_2_1_0() { return cIndexExpressionParserRuleCall_2_1_0; }
+
+ //"]"
+ public Keyword getRightSquareBracketKeyword_2_2() { return cRightSquareBracketKeyword_2_2; }
+
+ //suffix=SuffixExpression?
+ public Assignment getSuffixAssignment_3() { return cSuffixAssignment_3; }
+
+ //SuffixExpression
+ public RuleCall getSuffixSuffixExpressionParserRuleCall_3_0() { return cSuffixSuffixExpressionParserRuleCall_3_0; }
+ }
+
+ public class LinkOperationExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LinkOperationExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cFullStopKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cKindAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cKindLinkOperationKindEnumRuleCall_1_0 = (RuleCall)cKindAssignment_1.eContents().get(0);
+ private final Assignment cTupleAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cTupleLinkOperationTupleParserRuleCall_2_0 = (RuleCall)cTupleAssignment_2.eContents().get(0);
+
+ //LinkOperationExpression:
+ // "." kind=LinkOperationKind tuple=LinkOperationTuple;
+ public ParserRule getRule() { return rule; }
+
+ //"." kind=LinkOperationKind tuple=LinkOperationTuple
+ public Group getGroup() { return cGroup; }
+
+ //"."
+ public Keyword getFullStopKeyword_0() { return cFullStopKeyword_0; }
+
+ //kind=LinkOperationKind
+ public Assignment getKindAssignment_1() { return cKindAssignment_1; }
+
+ //LinkOperationKind
+ public RuleCall getKindLinkOperationKindEnumRuleCall_1_0() { return cKindLinkOperationKindEnumRuleCall_1_0; }
+
+ //tuple=LinkOperationTuple
+ public Assignment getTupleAssignment_2() { return cTupleAssignment_2; }
+
+ //LinkOperationTuple
+ public RuleCall getTupleLinkOperationTupleParserRuleCall_2_0() { return cTupleLinkOperationTupleParserRuleCall_2_0; }
+ }
+
+ public class LinkOperationTupleElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LinkOperationTuple");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cLeftParenthesisKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cLinkOperationTupleElementAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cLinkOperationTupleElementLinkOperationTupleElementParserRuleCall_1_0 = (RuleCall)cLinkOperationTupleElementAssignment_1.eContents().get(0);
+ private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+ private final Keyword cCommaKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+ private final Assignment cLinkOperationTupleElementAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
+ private final RuleCall cLinkOperationTupleElementLinkOperationTupleElementParserRuleCall_2_1_0 = (RuleCall)cLinkOperationTupleElementAssignment_2_1.eContents().get(0);
+ private final Keyword cRightParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
+
+ //LinkOperationTuple:
+ // "(" linkOperationTupleElement+=LinkOperationTupleElement ("," linkOperationTupleElement+=LinkOperationTupleElement)*
+ // ")";
+ public ParserRule getRule() { return rule; }
+
+ //"(" linkOperationTupleElement+=LinkOperationTupleElement ("," linkOperationTupleElement+=LinkOperationTupleElement)* ")"
+ public Group getGroup() { return cGroup; }
+
+ //"("
+ public Keyword getLeftParenthesisKeyword_0() { return cLeftParenthesisKeyword_0; }
+
+ //linkOperationTupleElement+=LinkOperationTupleElement
+ public Assignment getLinkOperationTupleElementAssignment_1() { return cLinkOperationTupleElementAssignment_1; }
+
+ //LinkOperationTupleElement
+ public RuleCall getLinkOperationTupleElementLinkOperationTupleElementParserRuleCall_1_0() { return cLinkOperationTupleElementLinkOperationTupleElementParserRuleCall_1_0; }
+
+ //("," linkOperationTupleElement+=LinkOperationTupleElement)*
+ public Group getGroup_2() { return cGroup_2; }
+
+ //","
+ public Keyword getCommaKeyword_2_0() { return cCommaKeyword_2_0; }
+
+ //linkOperationTupleElement+=LinkOperationTupleElement
+ public Assignment getLinkOperationTupleElementAssignment_2_1() { return cLinkOperationTupleElementAssignment_2_1; }
+
+ //LinkOperationTupleElement
+ public RuleCall getLinkOperationTupleElementLinkOperationTupleElementParserRuleCall_2_1_0() { return cLinkOperationTupleElementLinkOperationTupleElementParserRuleCall_2_1_0; }
+
+ //")"
+ public Keyword getRightParenthesisKeyword_3() { return cRightParenthesisKeyword_3; }
+ }
+
+ public class LinkOperationTupleElementElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LinkOperationTupleElement");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cRoleAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cRoleIDTerminalRuleCall_0_0 = (RuleCall)cRoleAssignment_0.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Keyword cLeftSquareBracketKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+ private final Assignment cRoleIndexAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cRoleIndexExpressionParserRuleCall_1_1_0 = (RuleCall)cRoleIndexAssignment_1_1.eContents().get(0);
+ private final Keyword cRightSquareBracketKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2);
+ private final Keyword cEqualsSignGreaterThanSignKeyword_2 = (Keyword)cGroup.eContents().get(2);
+ private final Assignment cObjectAssignment_3 = (Assignment)cGroup.eContents().get(3);
+ private final RuleCall cObjectExpressionParserRuleCall_3_0 = (RuleCall)cObjectAssignment_3.eContents().get(0);
+
+ ////LinkOperationTupleElement :
+ //// objectOrRole = ID (('['roleIndex = Expression ']')? '=>' object = ID)?
+ ////;
+ //LinkOperationTupleElement:
+ // role=ID ("[" roleIndex=Expression "]")? "=>" object=Expression;
+ public ParserRule getRule() { return rule; }
+
+ //role=ID ("[" roleIndex=Expression "]")? "=>" object=Expression
+ public Group getGroup() { return cGroup; }
+
+ //role=ID
+ public Assignment getRoleAssignment_0() { return cRoleAssignment_0; }
+
+ //ID
+ public RuleCall getRoleIDTerminalRuleCall_0_0() { return cRoleIDTerminalRuleCall_0_0; }
+
+ //("[" roleIndex=Expression "]")?
+ public Group getGroup_1() { return cGroup_1; }
+
+ //"["
+ public Keyword getLeftSquareBracketKeyword_1_0() { return cLeftSquareBracketKeyword_1_0; }
+
+ //roleIndex=Expression
+ public Assignment getRoleIndexAssignment_1_1() { return cRoleIndexAssignment_1_1; }
+
+ //Expression
+ public RuleCall getRoleIndexExpressionParserRuleCall_1_1_0() { return cRoleIndexExpressionParserRuleCall_1_1_0; }
+
+ //"]"
+ public Keyword getRightSquareBracketKeyword_1_2() { return cRightSquareBracketKeyword_1_2; }
+
+ //"=>"
+ public Keyword getEqualsSignGreaterThanSignKeyword_2() { return cEqualsSignGreaterThanSignKeyword_2; }
+
+ //object=Expression
+ public Assignment getObjectAssignment_3() { return cObjectAssignment_3; }
+
+ //Expression
+ public RuleCall getObjectExpressionParserRuleCall_3_0() { return cObjectExpressionParserRuleCall_3_0; }
+ }
+
+ public class SequenceOperationExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SequenceOperationExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cHyphenMinusGreaterThanSignKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cOperationNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cOperationNameQualifiedNameWithBindingParserRuleCall_1_0 = (RuleCall)cOperationNameAssignment_1.eContents().get(0);
+ private final Assignment cTupleAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cTupleTupleParserRuleCall_2_0 = (RuleCall)cTupleAssignment_2.eContents().get(0);
+ private final Assignment cSuffixAssignment_3 = (Assignment)cGroup.eContents().get(3);
+ private final RuleCall cSuffixSuffixExpressionParserRuleCall_3_0 = (RuleCall)cSuffixAssignment_3.eContents().get(0);
+
+ //SequenceOperationExpression: //'->' operationName = ID tuple = Tuple (suffix = SuffixExpression) ?
+ // "->" operationName=QualifiedNameWithBinding tuple=Tuple suffix=SuffixExpression?;
+ public ParserRule getRule() { return rule; }
+
+ ////'->' operationName = ID tuple = Tuple (suffix = SuffixExpression) ?
+ //"->" operationName=QualifiedNameWithBinding tuple=Tuple suffix=SuffixExpression?
+ public Group getGroup() { return cGroup; }
+
+ ////'->' operationName = ID tuple = Tuple (suffix = SuffixExpression) ?
+ //"->"
+ public Keyword getHyphenMinusGreaterThanSignKeyword_0() { return cHyphenMinusGreaterThanSignKeyword_0; }
+
+ //operationName=QualifiedNameWithBinding
+ public Assignment getOperationNameAssignment_1() { return cOperationNameAssignment_1; }
+
+ //QualifiedNameWithBinding
+ public RuleCall getOperationNameQualifiedNameWithBindingParserRuleCall_1_0() { return cOperationNameQualifiedNameWithBindingParserRuleCall_1_0; }
+
+ //tuple=Tuple
+ public Assignment getTupleAssignment_2() { return cTupleAssignment_2; }
+
+ //Tuple
+ public RuleCall getTupleTupleParserRuleCall_2_0() { return cTupleTupleParserRuleCall_2_0; }
+
+ //suffix=SuffixExpression?
+ public Assignment getSuffixAssignment_3() { return cSuffixAssignment_3; }
+
+ //SuffixExpression
+ public RuleCall getSuffixSuffixExpressionParserRuleCall_3_0() { return cSuffixSuffixExpressionParserRuleCall_3_0; }
+ }
+
+ public class SequenceReductionExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SequenceReductionExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cHyphenMinusGreaterThanSignKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Keyword cReduceKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cIsOrderedAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final Keyword cIsOrderedOrderedKeyword_2_0 = (Keyword)cIsOrderedAssignment_2.eContents().get(0);
+ private final Assignment cBehaviorAssignment_3 = (Assignment)cGroup.eContents().get(3);
+ private final RuleCall cBehaviorQualifiedNameWithBindingParserRuleCall_3_0 = (RuleCall)cBehaviorAssignment_3.eContents().get(0);
+ private final Assignment cSuffixAssignment_4 = (Assignment)cGroup.eContents().get(4);
+ private final RuleCall cSuffixSuffixExpressionParserRuleCall_4_0 = (RuleCall)cSuffixAssignment_4.eContents().get(0);
+
+ //SequenceReductionExpression:
+ // "->" "reduce" isOrdered?="ordered"? behavior=QualifiedNameWithBinding suffix=SuffixExpression?;
+ public ParserRule getRule() { return rule; }
+
+ //"->" "reduce" isOrdered?="ordered"? behavior=QualifiedNameWithBinding suffix=SuffixExpression?
+ public Group getGroup() { return cGroup; }
+
+ //"->"
+ public Keyword getHyphenMinusGreaterThanSignKeyword_0() { return cHyphenMinusGreaterThanSignKeyword_0; }
+
+ //"reduce"
+ public Keyword getReduceKeyword_1() { return cReduceKeyword_1; }
+
+ //isOrdered?="ordered"?
+ public Assignment getIsOrderedAssignment_2() { return cIsOrderedAssignment_2; }
+
+ //"ordered"
+ public Keyword getIsOrderedOrderedKeyword_2_0() { return cIsOrderedOrderedKeyword_2_0; }
+
+ //behavior=QualifiedNameWithBinding
+ public Assignment getBehaviorAssignment_3() { return cBehaviorAssignment_3; }
+
+ //QualifiedNameWithBinding
+ public RuleCall getBehaviorQualifiedNameWithBindingParserRuleCall_3_0() { return cBehaviorQualifiedNameWithBindingParserRuleCall_3_0; }
+
+ //suffix=SuffixExpression?
+ public Assignment getSuffixAssignment_4() { return cSuffixAssignment_4; }
+
+ //SuffixExpression
+ public RuleCall getSuffixSuffixExpressionParserRuleCall_4_0() { return cSuffixSuffixExpressionParserRuleCall_4_0; }
+ }
+
+ public class SequenceExpansionExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SequenceExpansionExpression");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cSelectOrRejectOperationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cCollectOrIterateOperationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+ private final RuleCall cForAllOrExistsOrOneOperationParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+ private final RuleCall cIsUniqueOperationParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
+
+ //SequenceExpansionExpression:
+ // SelectOrRejectOperation | CollectOrIterateOperation | ForAllOrExistsOrOneOperation | IsUniqueOperation;
+ public ParserRule getRule() { return rule; }
+
+ //SelectOrRejectOperation | CollectOrIterateOperation | ForAllOrExistsOrOneOperation | IsUniqueOperation
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //SelectOrRejectOperation
+ public RuleCall getSelectOrRejectOperationParserRuleCall_0() { return cSelectOrRejectOperationParserRuleCall_0; }
+
+ //CollectOrIterateOperation
+ public RuleCall getCollectOrIterateOperationParserRuleCall_1() { return cCollectOrIterateOperationParserRuleCall_1; }
+
+ //ForAllOrExistsOrOneOperation
+ public RuleCall getForAllOrExistsOrOneOperationParserRuleCall_2() { return cForAllOrExistsOrOneOperationParserRuleCall_2; }
+
+ //IsUniqueOperation
+ public RuleCall getIsUniqueOperationParserRuleCall_3() { return cIsUniqueOperationParserRuleCall_3; }
+ }
+
+ public class SelectOrRejectOperationElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SelectOrRejectOperation");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cHyphenMinusGreaterThanSignKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cOpAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cOpSelectOrRejectOperatorEnumRuleCall_1_0 = (RuleCall)cOpAssignment_1.eContents().get(0);
+ private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+ private final Keyword cLeftParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final Assignment cExprAssignment_4 = (Assignment)cGroup.eContents().get(4);
+ private final RuleCall cExprExpressionParserRuleCall_4_0 = (RuleCall)cExprAssignment_4.eContents().get(0);
+ private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
+ private final Assignment cSuffixAssignment_6 = (Assignment)cGroup.eContents().get(6);
+ private final RuleCall cSuffixSuffixExpressionParserRuleCall_6_0 = (RuleCall)cSuffixAssignment_6.eContents().get(0);
+
+ //SelectOrRejectOperation:
+ // "->" op=SelectOrRejectOperator name=ID "(" expr=Expression ")" suffix=SuffixExpression?;
+ public ParserRule getRule() { return rule; }
+
+ //"->" op=SelectOrRejectOperator name=ID "(" expr=Expression ")" suffix=SuffixExpression?
+ public Group getGroup() { return cGroup; }
+
+ //"->"
+ public Keyword getHyphenMinusGreaterThanSignKeyword_0() { return cHyphenMinusGreaterThanSignKeyword_0; }
+
+ //op=SelectOrRejectOperator
+ public Assignment getOpAssignment_1() { return cOpAssignment_1; }
+
+ //SelectOrRejectOperator
+ public RuleCall getOpSelectOrRejectOperatorEnumRuleCall_1_0() { return cOpSelectOrRejectOperatorEnumRuleCall_1_0; }
+
+ //name=ID
+ public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+ //ID
+ public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
+
+ //"("
+ public Keyword getLeftParenthesisKeyword_3() { return cLeftParenthesisKeyword_3; }
+
+ //expr=Expression
+ public Assignment getExprAssignment_4() { return cExprAssignment_4; }
+
+ //Expression
+ public RuleCall getExprExpressionParserRuleCall_4_0() { return cExprExpressionParserRuleCall_4_0; }
+
+ //")"
+ public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; }
+
+ //suffix=SuffixExpression?
+ public Assignment getSuffixAssignment_6() { return cSuffixAssignment_6; }
+
+ //SuffixExpression
+ public RuleCall getSuffixSuffixExpressionParserRuleCall_6_0() { return cSuffixSuffixExpressionParserRuleCall_6_0; }
+ }
+
+ public class CollectOrIterateOperationElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "CollectOrIterateOperation");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cHyphenMinusGreaterThanSignKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cOpAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cOpCollectOrIterateOperatorEnumRuleCall_1_0 = (RuleCall)cOpAssignment_1.eContents().get(0);
+ private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+ private final Keyword cLeftParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final Assignment cExprAssignment_4 = (Assignment)cGroup.eContents().get(4);
+ private final RuleCall cExprExpressionParserRuleCall_4_0 = (RuleCall)cExprAssignment_4.eContents().get(0);
+ private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
+ private final Assignment cSuffixAssignment_6 = (Assignment)cGroup.eContents().get(6);
+ private final RuleCall cSuffixSuffixExpressionParserRuleCall_6_0 = (RuleCall)cSuffixAssignment_6.eContents().get(0);
+
+ //CollectOrIterateOperation:
+ // "->" op=CollectOrIterateOperator name=ID "(" expr=Expression ")" suffix=SuffixExpression?;
+ public ParserRule getRule() { return rule; }
+
+ //"->" op=CollectOrIterateOperator name=ID "(" expr=Expression ")" suffix=SuffixExpression?
+ public Group getGroup() { return cGroup; }
+
+ //"->"
+ public Keyword getHyphenMinusGreaterThanSignKeyword_0() { return cHyphenMinusGreaterThanSignKeyword_0; }
+
+ //op=CollectOrIterateOperator
+ public Assignment getOpAssignment_1() { return cOpAssignment_1; }
+
+ //CollectOrIterateOperator
+ public RuleCall getOpCollectOrIterateOperatorEnumRuleCall_1_0() { return cOpCollectOrIterateOperatorEnumRuleCall_1_0; }
+
+ //name=ID
+ public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+ //ID
+ public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
+
+ //"("
+ public Keyword getLeftParenthesisKeyword_3() { return cLeftParenthesisKeyword_3; }
+
+ //expr=Expression
+ public Assignment getExprAssignment_4() { return cExprAssignment_4; }
+
+ //Expression
+ public RuleCall getExprExpressionParserRuleCall_4_0() { return cExprExpressionParserRuleCall_4_0; }
+
+ //")"
+ public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; }
+
+ //suffix=SuffixExpression?
+ public Assignment getSuffixAssignment_6() { return cSuffixAssignment_6; }
+
+ //SuffixExpression
+ public RuleCall getSuffixSuffixExpressionParserRuleCall_6_0() { return cSuffixSuffixExpressionParserRuleCall_6_0; }
+ }
+
+ public class ForAllOrExistsOrOneOperationElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ForAllOrExistsOrOneOperation");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cHyphenMinusGreaterThanSignKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cOpAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cOpForAllOrExistsOrOneOperatorEnumRuleCall_1_0 = (RuleCall)cOpAssignment_1.eContents().get(0);
+ private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+ private final Keyword cLeftParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final Assignment cExprAssignment_4 = (Assignment)cGroup.eContents().get(4);
+ private final RuleCall cExprExpressionParserRuleCall_4_0 = (RuleCall)cExprAssignment_4.eContents().get(0);
+ private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
+ private final Assignment cSuffixAssignment_6 = (Assignment)cGroup.eContents().get(6);
+ private final RuleCall cSuffixSuffixExpressionParserRuleCall_6_0 = (RuleCall)cSuffixAssignment_6.eContents().get(0);
+
+ //ForAllOrExistsOrOneOperation:
+ // "->" op=ForAllOrExistsOrOneOperator name=ID "(" expr=Expression ")" suffix=SuffixExpression?;
+ public ParserRule getRule() { return rule; }
+
+ //"->" op=ForAllOrExistsOrOneOperator name=ID "(" expr=Expression ")" suffix=SuffixExpression?
+ public Group getGroup() { return cGroup; }
+
+ //"->"
+ public Keyword getHyphenMinusGreaterThanSignKeyword_0() { return cHyphenMinusGreaterThanSignKeyword_0; }
+
+ //op=ForAllOrExistsOrOneOperator
+ public Assignment getOpAssignment_1() { return cOpAssignment_1; }
+
+ //ForAllOrExistsOrOneOperator
+ public RuleCall getOpForAllOrExistsOrOneOperatorEnumRuleCall_1_0() { return cOpForAllOrExistsOrOneOperatorEnumRuleCall_1_0; }
+
+ //name=ID
+ public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+ //ID
+ public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
+
+ //"("
+ public Keyword getLeftParenthesisKeyword_3() { return cLeftParenthesisKeyword_3; }
+
+ //expr=Expression
+ public Assignment getExprAssignment_4() { return cExprAssignment_4; }
+
+ //Expression
+ public RuleCall getExprExpressionParserRuleCall_4_0() { return cExprExpressionParserRuleCall_4_0; }
+
+ //")"
+ public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; }
+
+ //suffix=SuffixExpression?
+ public Assignment getSuffixAssignment_6() { return cSuffixAssignment_6; }
+
+ //SuffixExpression
+ public RuleCall getSuffixSuffixExpressionParserRuleCall_6_0() { return cSuffixSuffixExpressionParserRuleCall_6_0; }
+ }
+
+ public class IsUniqueOperationElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "IsUniqueOperation");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cHyphenMinusGreaterThanSignKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Keyword cIsUniqueKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+ private final Keyword cLeftParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final Assignment cExprAssignment_4 = (Assignment)cGroup.eContents().get(4);
+ private final RuleCall cExprExpressionParserRuleCall_4_0 = (RuleCall)cExprAssignment_4.eContents().get(0);
+ private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
+ private final Assignment cSuffixAssignment_6 = (Assignment)cGroup.eContents().get(6);
+ private final RuleCall cSuffixSuffixExpressionParserRuleCall_6_0 = (RuleCall)cSuffixAssignment_6.eContents().get(0);
+
+ //IsUniqueOperation:
+ // "->" "isUnique" name=ID "(" expr=Expression ")" suffix=SuffixExpression?;
+ public ParserRule getRule() { return rule; }
+
+ //"->" "isUnique" name=ID "(" expr=Expression ")" suffix=SuffixExpression?
+ public Group getGroup() { return cGroup; }
+
+ //"->"
+ public Keyword getHyphenMinusGreaterThanSignKeyword_0() { return cHyphenMinusGreaterThanSignKeyword_0; }
+
+ //"isUnique"
+ public Keyword getIsUniqueKeyword_1() { return cIsUniqueKeyword_1; }
+
+ //name=ID
+ public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+ //ID
+ public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
+
+ //"("
+ public Keyword getLeftParenthesisKeyword_3() { return cLeftParenthesisKeyword_3; }
+
+ //expr=Expression
+ public Assignment getExprAssignment_4() { return cExprAssignment_4; }
+
+ //Expression
+ public RuleCall getExprExpressionParserRuleCall_4_0() { return cExprExpressionParserRuleCall_4_0; }
+
+ //")"
+ public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; }
+
+ //suffix=SuffixExpression?
+ public Assignment getSuffixAssignment_6() { return cSuffixAssignment_6; }
+
+ //SuffixExpression
+ public RuleCall getSuffixSuffixExpressionParserRuleCall_6_0() { return cSuffixSuffixExpressionParserRuleCall_6_0; }
+ }
+
+ public class ValueSpecificationElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ValueSpecification");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cNameExpressionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cLITERALParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+ private final RuleCall cThisExpressionParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+ private final RuleCall cSuperInvocationExpressionParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
+ private final RuleCall cInstanceCreationExpressionParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
+ private final RuleCall cParenthesizedExpressionParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
+ private final RuleCall cNullExpressionParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6);
+
+ //ValueSpecification:
+ // NameExpression | LITERAL | ThisExpression | SuperInvocationExpression | InstanceCreationExpression |
+ // ParenthesizedExpression | NullExpression;
+ public ParserRule getRule() { return rule; }
+
+ //NameExpression | LITERAL | ThisExpression | SuperInvocationExpression | InstanceCreationExpression |
+ //ParenthesizedExpression | NullExpression
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //NameExpression
+ public RuleCall getNameExpressionParserRuleCall_0() { return cNameExpressionParserRuleCall_0; }
+
+ //LITERAL
+ public RuleCall getLITERALParserRuleCall_1() { return cLITERALParserRuleCall_1; }
+
+ //ThisExpression
+ public RuleCall getThisExpressionParserRuleCall_2() { return cThisExpressionParserRuleCall_2; }
+
+ //SuperInvocationExpression
+ public RuleCall getSuperInvocationExpressionParserRuleCall_3() { return cSuperInvocationExpressionParserRuleCall_3; }
+
+ //InstanceCreationExpression
+ public RuleCall getInstanceCreationExpressionParserRuleCall_4() { return cInstanceCreationExpressionParserRuleCall_4; }
+
+ //ParenthesizedExpression
+ public RuleCall getParenthesizedExpressionParserRuleCall_5() { return cParenthesizedExpressionParserRuleCall_5; }
+
+ //NullExpression
+ public RuleCall getNullExpressionParserRuleCall_6() { return cNullExpressionParserRuleCall_6; }
+ }
+
+ public class NonLiteralValueSpecificationElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "NonLiteralValueSpecification");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cNameExpressionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cParenthesizedExpressionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+ private final RuleCall cInstanceCreationExpressionParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+ private final RuleCall cThisExpressionParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
+ private final RuleCall cSuperInvocationExpressionParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
+
+ //NonLiteralValueSpecification:
+ // NameExpression | ParenthesizedExpression | InstanceCreationExpression | ThisExpression | SuperInvocationExpression;
+ public ParserRule getRule() { return rule; }
+
+ //NameExpression | ParenthesizedExpression | InstanceCreationExpression | ThisExpression | SuperInvocationExpression
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //NameExpression
+ public RuleCall getNameExpressionParserRuleCall_0() { return cNameExpressionParserRuleCall_0; }
+
+ //ParenthesizedExpression
+ public RuleCall getParenthesizedExpressionParserRuleCall_1() { return cParenthesizedExpressionParserRuleCall_1; }
+
+ //InstanceCreationExpression
+ public RuleCall getInstanceCreationExpressionParserRuleCall_2() { return cInstanceCreationExpressionParserRuleCall_2; }
+
+ //ThisExpression
+ public RuleCall getThisExpressionParserRuleCall_3() { return cThisExpressionParserRuleCall_3; }
+
+ //SuperInvocationExpression
+ public RuleCall getSuperInvocationExpressionParserRuleCall_4() { return cSuperInvocationExpressionParserRuleCall_4; }
+ }
+
+ public class ParenthesizedExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ParenthesizedExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cLeftParenthesisKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cExpOrTypeCastAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cExpOrTypeCastExpressionParserRuleCall_1_0 = (RuleCall)cExpOrTypeCastAssignment_1.eContents().get(0);
+ private final Keyword cRightParenthesisKeyword_2 = (Keyword)cGroup.eContents().get(2);
+ private final Alternatives cAlternatives_3 = (Alternatives)cGroup.eContents().get(3);
+ private final Assignment cCastedAssignment_3_0 = (Assignment)cAlternatives_3.eContents().get(0);
+ private final RuleCall cCastedNonLiteralValueSpecificationParserRuleCall_3_0_0 = (RuleCall)cCastedAssignment_3_0.eContents().get(0);
+ private final Assignment cSuffixAssignment_3_1 = (Assignment)cAlternatives_3.eContents().get(1);
+ private final RuleCall cSuffixSuffixExpressionParserRuleCall_3_1_0 = (RuleCall)cSuffixAssignment_3_1.eContents().get(0);
+
+ //ParenthesizedExpression:
+ // "(" expOrTypeCast=Expression ")" (casted=NonLiteralValueSpecification | suffix=SuffixExpression)?;
+ public ParserRule getRule() { return rule; }
+
+ //"(" expOrTypeCast=Expression ")" (casted=NonLiteralValueSpecification | suffix=SuffixExpression)?
+ public Group getGroup() { return cGroup; }
+
+ //"("
+ public Keyword getLeftParenthesisKeyword_0() { return cLeftParenthesisKeyword_0; }
+
+ //expOrTypeCast=Expression
+ public Assignment getExpOrTypeCastAssignment_1() { return cExpOrTypeCastAssignment_1; }
+
+ //Expression
+ public RuleCall getExpOrTypeCastExpressionParserRuleCall_1_0() { return cExpOrTypeCastExpressionParserRuleCall_1_0; }
+
+ //")"
+ public Keyword getRightParenthesisKeyword_2() { return cRightParenthesisKeyword_2; }
+
+ //(casted=NonLiteralValueSpecification | suffix=SuffixExpression)?
+ public Alternatives getAlternatives_3() { return cAlternatives_3; }
+
+ //casted=NonLiteralValueSpecification
+ public Assignment getCastedAssignment_3_0() { return cCastedAssignment_3_0; }
+
+ //NonLiteralValueSpecification
+ public RuleCall getCastedNonLiteralValueSpecificationParserRuleCall_3_0_0() { return cCastedNonLiteralValueSpecificationParserRuleCall_3_0_0; }
+
+ //suffix=SuffixExpression
+ public Assignment getSuffixAssignment_3_1() { return cSuffixAssignment_3_1; }
+
+ //SuffixExpression
+ public RuleCall getSuffixSuffixExpressionParserRuleCall_3_1_0() { return cSuffixSuffixExpressionParserRuleCall_3_1_0; }
+ }
+
+ public class NullExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "NullExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cNullExpressionAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cNullKeyword_1 = (Keyword)cGroup.eContents().get(1);
+
+ //NullExpression:
+ // {NullExpression} "null";
+ public ParserRule getRule() { return rule; }
+
+ //{NullExpression} "null"
+ public Group getGroup() { return cGroup; }
+
+ //{NullExpression}
+ public Action getNullExpressionAction_0() { return cNullExpressionAction_0; }
+
+ //"null"
+ public Keyword getNullKeyword_1() { return cNullKeyword_1; }
+ }
+
+ public class ThisExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ThisExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cThisExpressionAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cThisKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cSuffixAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cSuffixSuffixExpressionParserRuleCall_2_0 = (RuleCall)cSuffixAssignment_2.eContents().get(0);
+
+ //ThisExpression:
+ // {ThisExpression} "this" suffix=SuffixExpression?;
+ public ParserRule getRule() { return rule; }
+
+ //{ThisExpression} "this" suffix=SuffixExpression?
+ public Group getGroup() { return cGroup; }
+
+ //{ThisExpression}
+ public Action getThisExpressionAction_0() { return cThisExpressionAction_0; }
+
+ //"this"
+ public Keyword getThisKeyword_1() { return cThisKeyword_1; }
+
+ //suffix=SuffixExpression?
+ public Assignment getSuffixAssignment_2() { return cSuffixAssignment_2; }
+
+ //SuffixExpression
+ public RuleCall getSuffixSuffixExpressionParserRuleCall_2_0() { return cSuffixSuffixExpressionParserRuleCall_2_0; }
+ }
+
+ public class SuperInvocationExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SuperInvocationExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cSuperKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
+ private final Assignment cTupleAssignment_1_0 = (Assignment)cAlternatives_1.eContents().get(0);
+ private final RuleCall cTupleTupleParserRuleCall_1_0_0 = (RuleCall)cTupleAssignment_1_0.eContents().get(0);
+ private final Group cGroup_1_1 = (Group)cAlternatives_1.eContents().get(1);
+ private final Keyword cFullStopKeyword_1_1_0 = (Keyword)cGroup_1_1.eContents().get(0);
+ private final Assignment cOperationNameAssignment_1_1_1 = (Assignment)cGroup_1_1.eContents().get(1);
+ private final RuleCall cOperationNameQualifiedNameWithBindingParserRuleCall_1_1_1_0 = (RuleCall)cOperationNameAssignment_1_1_1.eContents().get(0);
+ private final Assignment cTupleAssignment_1_1_2 = (Assignment)cGroup_1_1.eContents().get(2);
+ private final RuleCall cTupleTupleParserRuleCall_1_1_2_0 = (RuleCall)cTupleAssignment_1_1_2.eContents().get(0);
+
+ //// SuperInvocationExpression :
+ //// //{SuperInvocationExpression} 'super' ('.' qualifiedNameRoot = ID '::' qualifiedNameRemaining = NameExpression)? //(suffix = SuffixExpression) ?
+ //// 'super' ('.' className = ID '::' operationCallWithoutDot = OperationCallExpressionWithoutDot | operationCall = OperationCallExpression)
+ ////;
+ //SuperInvocationExpression: //{SuperInvocationExpression} 'super' ('.' qualifiedNameRoot = ID '::' qualifiedNameRemaining = NameExpression)? //(suffix = SuffixExpression) ?
+ ////'super' ('.' className = ID '::' operationCallWithoutDot = OperationCallExpressionWithoutDot | operationCall = OperationCallExpression)
+ ////'super' ((tuple = Tuple) |
+ //// ('.' (path = QualifiedNamePath) operation = ID tuple = Tuple))
+ // "super" (tuple=Tuple | "." operationName=QualifiedNameWithBinding tuple=Tuple);
+ public ParserRule getRule() { return rule; }
+
+ ////{SuperInvocationExpression} 'super' ('.' qualifiedNameRoot = ID '::' qualifiedNameRemaining = NameExpression)? //(suffix = SuffixExpression) ?
+ ////'super' ('.' className = ID '::' operationCallWithoutDot = OperationCallExpressionWithoutDot | operationCall = OperationCallExpression)
+ ////'super' ((tuple = Tuple) |
+ //// ('.' (path = QualifiedNamePath) operation = ID tuple = Tuple))
+ //"super" (tuple=Tuple | "." operationName=QualifiedNameWithBinding tuple=Tuple)
+ public Group getGroup() { return cGroup; }
+
+ ////{SuperInvocationExpression} 'super' ('.' qualifiedNameRoot = ID '::' qualifiedNameRemaining = NameExpression)? //(suffix = SuffixExpression) ?
+ ////'super' ('.' className = ID '::' operationCallWithoutDot = OperationCallExpressionWithoutDot | operationCall = OperationCallExpression)
+ ////'super' ((tuple = Tuple) |
+ //// ('.' (path = QualifiedNamePath) operation = ID tuple = Tuple))
+ //"super"
+ public Keyword getSuperKeyword_0() { return cSuperKeyword_0; }
+
+ //tuple=Tuple | "." operationName=QualifiedNameWithBinding tuple=Tuple
+ public Alternatives getAlternatives_1() { return cAlternatives_1; }
+
+ //tuple=Tuple
+ public Assignment getTupleAssignment_1_0() { return cTupleAssignment_1_0; }
+
+ //Tuple
+ public RuleCall getTupleTupleParserRuleCall_1_0_0() { return cTupleTupleParserRuleCall_1_0_0; }
+
+ //"." operationName=QualifiedNameWithBinding tuple=Tuple
+ public Group getGroup_1_1() { return cGroup_1_1; }
+
+ //"."
+ public Keyword getFullStopKeyword_1_1_0() { return cFullStopKeyword_1_1_0; }
+
+ //operationName=QualifiedNameWithBinding
+ public Assignment getOperationNameAssignment_1_1_1() { return cOperationNameAssignment_1_1_1; }
+
+ //QualifiedNameWithBinding
+ public RuleCall getOperationNameQualifiedNameWithBindingParserRuleCall_1_1_1_0() { return cOperationNameQualifiedNameWithBindingParserRuleCall_1_1_1_0; }
+
+ //tuple=Tuple
+ public Assignment getTupleAssignment_1_1_2() { return cTupleAssignment_1_1_2; }
+
+ //Tuple
+ public RuleCall getTupleTupleParserRuleCall_1_1_2_0() { return cTupleTupleParserRuleCall_1_1_2_0; }
+ }
+
+ public class InstanceCreationExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "InstanceCreationExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cNewKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cConstructorAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cConstructorQualifiedNameWithBindingParserRuleCall_1_0 = (RuleCall)cConstructorAssignment_1.eContents().get(0);
+ private final Assignment cTupleAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cTupleInstanceCreationTupleParserRuleCall_2_0 = (RuleCall)cTupleAssignment_2.eContents().get(0);
+ private final Assignment cSuffixAssignment_3 = (Assignment)cGroup.eContents().get(3);
+ private final RuleCall cSuffixSuffixExpressionParserRuleCall_3_0 = (RuleCall)cSuffixAssignment_3.eContents().get(0);
+
+ ////InstanceCreationExpression :
+ ////'new' constructor=QualifiedNameWithBinding
+ //// (tuple = Tuple | sequenceConstuctionCompletion = SequenceConstructionCompletion) (suffix = SuffixExpression) ?
+ ////'new' constructor=QualifiedNameWithBinding
+ //// tuple = Tuple (suffix = SuffixExpression) ?
+ ////;
+ //InstanceCreationExpression: //'new' constructor=QualifiedNameWithBinding
+ //// (tuple = Tuple | sequenceConstuctionCompletion = SequenceConstructionCompletion) (suffix = SuffixExpression) ?
+ // "new" constructor=QualifiedNameWithBinding tuple=InstanceCreationTuple suffix=SuffixExpression?;
+ public ParserRule getRule() { return rule; }
+
+ ////'new' constructor=QualifiedNameWithBinding
+ //// (tuple = Tuple | sequenceConstuctionCompletion = SequenceConstructionCompletion) (suffix = SuffixExpression) ?
+ //"new" constructor=QualifiedNameWithBinding tuple=InstanceCreationTuple suffix=SuffixExpression?
+ public Group getGroup() { return cGroup; }
+
+ ////'new' constructor=QualifiedNameWithBinding
+ //// (tuple = Tuple | sequenceConstuctionCompletion = SequenceConstructionCompletion) (suffix = SuffixExpression) ?
+ //"new"
+ public Keyword getNewKeyword_0() { return cNewKeyword_0; }
+
+ //constructor=QualifiedNameWithBinding
+ public Assignment getConstructorAssignment_1() { return cConstructorAssignment_1; }
+
+ //QualifiedNameWithBinding
+ public RuleCall getConstructorQualifiedNameWithBindingParserRuleCall_1_0() { return cConstructorQualifiedNameWithBindingParserRuleCall_1_0; }
+
+ //tuple=InstanceCreationTuple
+ public Assignment getTupleAssignment_2() { return cTupleAssignment_2; }
+
+ //InstanceCreationTuple
+ public RuleCall getTupleInstanceCreationTupleParserRuleCall_2_0() { return cTupleInstanceCreationTupleParserRuleCall_2_0; }
+
+ //suffix=SuffixExpression?
+ public Assignment getSuffixAssignment_3() { return cSuffixAssignment_3; }
+
+ //SuffixExpression
+ public RuleCall getSuffixSuffixExpressionParserRuleCall_3_0() { return cSuffixSuffixExpressionParserRuleCall_3_0; }
+ }
+
+ public class InstanceCreationTupleElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "InstanceCreationTuple");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cInstanceCreationTupleAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+ private final Assignment cInstanceCreationTupleElementAssignment_2_0 = (Assignment)cGroup_2.eContents().get(0);
+ private final RuleCall cInstanceCreationTupleElementInstanceCreationTupleElementParserRuleCall_2_0_0 = (RuleCall)cInstanceCreationTupleElementAssignment_2_0.eContents().get(0);
+ private final Group cGroup_2_1 = (Group)cGroup_2.eContents().get(1);
+ private final Keyword cCommaKeyword_2_1_0 = (Keyword)cGroup_2_1.eContents().get(0);
+ private final Assignment cInstanceCreationTupleElementAssignment_2_1_1 = (Assignment)cGroup_2_1.eContents().get(1);
+ private final RuleCall cInstanceCreationTupleElementInstanceCreationTupleElementParserRuleCall_2_1_1_0 = (RuleCall)cInstanceCreationTupleElementAssignment_2_1_1.eContents().get(0);
+ private final Keyword cRightParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
+
+ //InstanceCreationTuple:
+ // {InstanceCreationTuple} "(" (instanceCreationTupleElement+=InstanceCreationTupleElement (","
+ // instanceCreationTupleElement+=InstanceCreationTupleElement)*)? ")";
+ public ParserRule getRule() { return rule; }
+
+ //{InstanceCreationTuple} "(" (instanceCreationTupleElement+=InstanceCreationTupleElement (","
+ //instanceCreationTupleElement+=InstanceCreationTupleElement)*)? ")"
+ public Group getGroup() { return cGroup; }
+
+ //{InstanceCreationTuple}
+ public Action getInstanceCreationTupleAction_0() { return cInstanceCreationTupleAction_0; }
+
+ //"("
+ public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }
+
+ //(instanceCreationTupleElement+=InstanceCreationTupleElement (","
+ //instanceCreationTupleElement+=InstanceCreationTupleElement)*)?
+ public Group getGroup_2() { return cGroup_2; }
+
+ //instanceCreationTupleElement+=InstanceCreationTupleElement
+ public Assignment getInstanceCreationTupleElementAssignment_2_0() { return cInstanceCreationTupleElementAssignment_2_0; }
+
+ //InstanceCreationTupleElement
+ public RuleCall getInstanceCreationTupleElementInstanceCreationTupleElementParserRuleCall_2_0_0() { return cInstanceCreationTupleElementInstanceCreationTupleElementParserRuleCall_2_0_0; }
+
+ //("," instanceCreationTupleElement+=InstanceCreationTupleElement)*
+ public Group getGroup_2_1() { return cGroup_2_1; }
+
+ //","
+ public Keyword getCommaKeyword_2_1_0() { return cCommaKeyword_2_1_0; }
+
+ //instanceCreationTupleElement+=InstanceCreationTupleElement
+ public Assignment getInstanceCreationTupleElementAssignment_2_1_1() { return cInstanceCreationTupleElementAssignment_2_1_1; }
+
+ //InstanceCreationTupleElement
+ public RuleCall getInstanceCreationTupleElementInstanceCreationTupleElementParserRuleCall_2_1_1_0() { return cInstanceCreationTupleElementInstanceCreationTupleElementParserRuleCall_2_1_1_0; }
+
+ //")"
+ public Keyword getRightParenthesisKeyword_3() { return cRightParenthesisKeyword_3; }
+ }
+
+ public class InstanceCreationTupleElementElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "InstanceCreationTupleElement");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cRoleAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cRoleIDTerminalRuleCall_0_0 = (RuleCall)cRoleAssignment_0.eContents().get(0);
+ private final Keyword cEqualsSignGreaterThanSignKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cObjectAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cObjectExpressionParserRuleCall_2_0 = (RuleCall)cObjectAssignment_2.eContents().get(0);
+
+ ////LinkOperationTupleElement :
+ //// objectOrRole = ID (('['roleIndex = Expression ']')? '=>' object = ID)?
+ ////;
+ //InstanceCreationTupleElement:
+ // role=ID "=>" object=Expression;
+ public ParserRule getRule() { return rule; }
+
+ //role=ID "=>" object=Expression
+ public Group getGroup() { return cGroup; }
+
+ //role=ID
+ public Assignment getRoleAssignment_0() { return cRoleAssignment_0; }
+
+ //ID
+ public RuleCall getRoleIDTerminalRuleCall_0_0() { return cRoleIDTerminalRuleCall_0_0; }
+
+ //"=>"
+ public Keyword getEqualsSignGreaterThanSignKeyword_1() { return cEqualsSignGreaterThanSignKeyword_1; }
+
+ //object=Expression
+ public Assignment getObjectAssignment_2() { return cObjectAssignment_2; }
+
+ //Expression
+ public RuleCall getObjectExpressionParserRuleCall_2_0() { return cObjectExpressionParserRuleCall_2_0; }
+ }
+
+ public class SequenceConstructionOrAccessCompletionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SequenceConstructionOrAccessCompletion");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0);
+ private final Assignment cMultiplicityIndicatorAssignment_0_0 = (Assignment)cGroup_0.eContents().get(0);
+ private final Keyword cMultiplicityIndicatorLeftSquareBracketKeyword_0_0_0 = (Keyword)cMultiplicityIndicatorAssignment_0_0.eContents().get(0);
+ private final Alternatives cAlternatives_0_1 = (Alternatives)cGroup_0.eContents().get(1);
+ private final Assignment cAccessCompletionAssignment_0_1_0 = (Assignment)cAlternatives_0_1.eContents().get(0);
+ private final RuleCall cAccessCompletionAccessCompletionParserRuleCall_0_1_0_0 = (RuleCall)cAccessCompletionAssignment_0_1_0.eContents().get(0);
+ private final Assignment cSequenceCompletionAssignment_0_1_1 = (Assignment)cAlternatives_0_1.eContents().get(1);
+ private final RuleCall cSequenceCompletionPartialSequenceConstructionCompletionParserRuleCall_0_1_1_0 = (RuleCall)cSequenceCompletionAssignment_0_1_1.eContents().get(0);
+ private final Assignment cExpressionAssignment_1 = (Assignment)cAlternatives.eContents().get(1);
+ private final RuleCall cExpressionSequenceConstructionExpressionParserRuleCall_1_0 = (RuleCall)cExpressionAssignment_1.eContents().get(0);
+
+ //SequenceConstructionOrAccessCompletion:
+ // multiplicityIndicator?="[" (accessCompletion=AccessCompletion |
+ // sequenceCompletion=PartialSequenceConstructionCompletion) | expression=SequenceConstructionExpression;
+ public ParserRule getRule() { return rule; }
+
+ //multiplicityIndicator?="[" (accessCompletion=AccessCompletion |
+ //sequenceCompletion=PartialSequenceConstructionCompletion) | expression=SequenceConstructionExpression
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //multiplicityIndicator?="[" (accessCompletion=AccessCompletion |
+ //sequenceCompletion=PartialSequenceConstructionCompletion)
+ public Group getGroup_0() { return cGroup_0; }
+
+ //multiplicityIndicator?="["
+ public Assignment getMultiplicityIndicatorAssignment_0_0() { return cMultiplicityIndicatorAssignment_0_0; }
+
+ //"["
+ public Keyword getMultiplicityIndicatorLeftSquareBracketKeyword_0_0_0() { return cMultiplicityIndicatorLeftSquareBracketKeyword_0_0_0; }
+
+ //accessCompletion=AccessCompletion | sequenceCompletion=PartialSequenceConstructionCompletion
+ public Alternatives getAlternatives_0_1() { return cAlternatives_0_1; }
+
+ //accessCompletion=AccessCompletion
+ public Assignment getAccessCompletionAssignment_0_1_0() { return cAccessCompletionAssignment_0_1_0; }
+
+ //AccessCompletion
+ public RuleCall getAccessCompletionAccessCompletionParserRuleCall_0_1_0_0() { return cAccessCompletionAccessCompletionParserRuleCall_0_1_0_0; }
+
+ //sequenceCompletion=PartialSequenceConstructionCompletion
+ public Assignment getSequenceCompletionAssignment_0_1_1() { return cSequenceCompletionAssignment_0_1_1; }
+
+ //PartialSequenceConstructionCompletion
+ public RuleCall getSequenceCompletionPartialSequenceConstructionCompletionParserRuleCall_0_1_1_0() { return cSequenceCompletionPartialSequenceConstructionCompletionParserRuleCall_0_1_1_0; }
+
+ //expression=SequenceConstructionExpression
+ public Assignment getExpressionAssignment_1() { return cExpressionAssignment_1; }
+
+ //SequenceConstructionExpression
+ public RuleCall getExpressionSequenceConstructionExpressionParserRuleCall_1_0() { return cExpressionSequenceConstructionExpressionParserRuleCall_1_0; }
+ }
+
+ public class AccessCompletionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "AccessCompletion");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cAccessIndexAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cAccessIndexExpressionParserRuleCall_0_0 = (RuleCall)cAccessIndexAssignment_0.eContents().get(0);
+ private final Keyword cRightSquareBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
+
+ //AccessCompletion:
+ // accessIndex=Expression "]";
+ public ParserRule getRule() { return rule; }
+
+ //accessIndex=Expression "]"
+ public Group getGroup() { return cGroup; }
+
+ //accessIndex=Expression
+ public Assignment getAccessIndexAssignment_0() { return cAccessIndexAssignment_0; }
+
+ //Expression
+ public RuleCall getAccessIndexExpressionParserRuleCall_0_0() { return cAccessIndexExpressionParserRuleCall_0_0; }
+
+ //"]"
+ public Keyword getRightSquareBracketKeyword_1() { return cRightSquareBracketKeyword_1; }
+ }
+
+ public class PartialSequenceConstructionCompletionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "PartialSequenceConstructionCompletion");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cRightSquareBracketKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cExpressionAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cExpressionSequenceConstructionExpressionParserRuleCall_1_0 = (RuleCall)cExpressionAssignment_1.eContents().get(0);
+
+ //PartialSequenceConstructionCompletion:
+ // "]" expression=SequenceConstructionExpression;
+ public ParserRule getRule() { return rule; }
+
+ //"]" expression=SequenceConstructionExpression
+ public Group getGroup() { return cGroup; }
+
+ //"]"
+ public Keyword getRightSquareBracketKeyword_0() { return cRightSquareBracketKeyword_0; }
+
+ //expression=SequenceConstructionExpression
+ public Assignment getExpressionAssignment_1() { return cExpressionAssignment_1; }
+
+ //SequenceConstructionExpression
+ public RuleCall getExpressionSequenceConstructionExpressionParserRuleCall_1_0() { return cExpressionSequenceConstructionExpressionParserRuleCall_1_0; }
+ }
+
+ public class SequenceConstructionExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SequenceConstructionExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cLeftCurlyBracketKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cSequenceElementAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cSequenceElementSequenceElementParserRuleCall_1_0 = (RuleCall)cSequenceElementAssignment_1.eContents().get(0);
+ private final Alternatives cAlternatives_2 = (Alternatives)cGroup.eContents().get(2);
+ private final Group cGroup_2_0 = (Group)cAlternatives_2.eContents().get(0);
+ private final Keyword cCommaKeyword_2_0_0 = (Keyword)cGroup_2_0.eContents().get(0);
+ private final Assignment cSequenceElementAssignment_2_0_1 = (Assignment)cGroup_2_0.eContents().get(1);
+ private final RuleCall cSequenceElementSequenceElementParserRuleCall_2_0_1_0 = (RuleCall)cSequenceElementAssignment_2_0_1.eContents().get(0);
+ private final Group cGroup_2_1 = (Group)cAlternatives_2.eContents().get(1);
+ private final Keyword cFullStopFullStopKeyword_2_1_0 = (Keyword)cGroup_2_1.eContents().get(0);
+ private final Assignment cRangeUpperAssignment_2_1_1 = (Assignment)cGroup_2_1.eContents().get(1);
+ private final RuleCall cRangeUpperExpressionParserRuleCall_2_1_1_0 = (RuleCall)cRangeUpperAssignment_2_1_1.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
+
+ ////SequenceConstructionCompletion :
+ //// (multiplicityIndicator ?= '['']')? expression = SequenceConstructionExpression
+ ////;
+ //SequenceConstructionExpression:
+ // "{" sequenceElement+=SequenceElement (("," sequenceElement+=SequenceElement)* | ".." rangeUpper=Expression) "}";
+ public ParserRule getRule() { return rule; }
+
+ //"{" sequenceElement+=SequenceElement (("," sequenceElement+=SequenceElement)* | ".." rangeUpper=Expression) "}"
+ public Group getGroup() { return cGroup; }
+
+ //"{"
+ public Keyword getLeftCurlyBracketKeyword_0() { return cLeftCurlyBracketKeyword_0; }
+
+ //sequenceElement+=SequenceElement
+ public Assignment getSequenceElementAssignment_1() { return cSequenceElementAssignment_1; }
+
+ //SequenceElement
+ public RuleCall getSequenceElementSequenceElementParserRuleCall_1_0() { return cSequenceElementSequenceElementParserRuleCall_1_0; }
+
+ //("," sequenceElement+=SequenceElement)* | ".." rangeUpper=Expression
+ public Alternatives getAlternatives_2() { return cAlternatives_2; }
+
+ //("," sequenceElement+=SequenceElement)*
+ public Group getGroup_2_0() { return cGroup_2_0; }
+
+ //","
+ public Keyword getCommaKeyword_2_0_0() { return cCommaKeyword_2_0_0; }
+
+ //sequenceElement+=SequenceElement
+ public Assignment getSequenceElementAssignment_2_0_1() { return cSequenceElementAssignment_2_0_1; }
+
+ //SequenceElement
+ public RuleCall getSequenceElementSequenceElementParserRuleCall_2_0_1_0() { return cSequenceElementSequenceElementParserRuleCall_2_0_1_0; }
+
+ //".." rangeUpper=Expression
+ public Group getGroup_2_1() { return cGroup_2_1; }
+
+ //".."
+ public Keyword getFullStopFullStopKeyword_2_1_0() { return cFullStopFullStopKeyword_2_1_0; }
+
+ //rangeUpper=Expression
+ public Assignment getRangeUpperAssignment_2_1_1() { return cRangeUpperAssignment_2_1_1; }
+
+ //Expression
+ public RuleCall getRangeUpperExpressionParserRuleCall_2_1_1_0() { return cRangeUpperExpressionParserRuleCall_2_1_1_0; }
+
+ //"}"
+ public Keyword getRightCurlyBracketKeyword_3() { return cRightCurlyBracketKeyword_3; }
+ }
+
+ public class SequenceElementElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SequenceElement");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cExpressionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cSequenceConstructionExpressionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+
+ //SequenceElement:
+ // Expression | SequenceConstructionExpression;
+ public ParserRule getRule() { return rule; }
+
+ //Expression | SequenceConstructionExpression
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //Expression
+ public RuleCall getExpressionParserRuleCall_0() { return cExpressionParserRuleCall_0; }
+
+ //SequenceConstructionExpression
+ public RuleCall getSequenceConstructionExpressionParserRuleCall_1() { return cSequenceConstructionExpressionParserRuleCall_1; }
+ }
+
+ public class ClassExtentExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ClassExtentExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cClassExtentExpressionAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cFullStopKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Keyword cAllInstancesKeyword_2 = (Keyword)cGroup.eContents().get(2);
+ private final Keyword cLeftParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final Keyword cRightParenthesisKeyword_4 = (Keyword)cGroup.eContents().get(4);
+
+ //ClassExtentExpression:
+ // {ClassExtentExpression} "." "allInstances" "(" ")";
+ public ParserRule getRule() { return rule; }
+
+ //{ClassExtentExpression} "." "allInstances" "(" ")"
+ public Group getGroup() { return cGroup; }
+
+ //{ClassExtentExpression}
+ public Action getClassExtentExpressionAction_0() { return cClassExtentExpressionAction_0; }
+
+ //"."
+ public Keyword getFullStopKeyword_1() { return cFullStopKeyword_1; }
+
+ //"allInstances"
+ public Keyword getAllInstancesKeyword_2() { return cAllInstancesKeyword_2; }
+
+ //"("
+ public Keyword getLeftParenthesisKeyword_3() { return cLeftParenthesisKeyword_3; }
+
+ //")"
+ public Keyword getRightParenthesisKeyword_4() { return cRightParenthesisKeyword_4; }
+ }
+
+ public class BlockElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Block");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cLeftCurlyBracketKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Action cBlockAction_1 = (Action)cGroup.eContents().get(1);
+ private final Assignment cSequenceAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cSequenceStatementSequenceParserRuleCall_2_0 = (RuleCall)cSequenceAssignment_2.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
+
+ /// *****************
+ // * Statements
+ // **************** / Block:
+ // "{" {Block} sequence=StatementSequence? "}";
+ public ParserRule getRule() { return rule; }
+
+ //"{" {Block} sequence=StatementSequence? "}"
+ public Group getGroup() { return cGroup; }
+
+ //"{"
+ public Keyword getLeftCurlyBracketKeyword_0() { return cLeftCurlyBracketKeyword_0; }
+
+ //{Block}
+ public Action getBlockAction_1() { return cBlockAction_1; }
+
+ //sequence=StatementSequence?
+ public Assignment getSequenceAssignment_2() { return cSequenceAssignment_2; }
+
+ //StatementSequence
+ public RuleCall getSequenceStatementSequenceParserRuleCall_2_0() { return cSequenceStatementSequenceParserRuleCall_2_0; }
+
+ //"}"
+ public Keyword getRightCurlyBracketKeyword_3() { return cRightCurlyBracketKeyword_3; }
+ }
+
+ public class StatementSequenceElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "StatementSequence");
+ private final Assignment cStatementsAssignment = (Assignment)rule.eContents().get(1);
+ private final RuleCall cStatementsDocumentedStatementParserRuleCall_0 = (RuleCall)cStatementsAssignment.eContents().get(0);
+
+ //StatementSequence:
+ // statements+=DocumentedStatement+;
+ public ParserRule getRule() { return rule; }
+
+ //statements+=DocumentedStatement+
+ public Assignment getStatementsAssignment() { return cStatementsAssignment; }
+
+ //DocumentedStatement
+ public RuleCall getStatementsDocumentedStatementParserRuleCall_0() { return cStatementsDocumentedStatementParserRuleCall_0; }
+ }
+
+ public class DocumentedStatementElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DocumentedStatement");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cCommentAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final Alternatives cCommentAlternatives_0_0 = (Alternatives)cCommentAssignment_0.eContents().get(0);
+ private final RuleCall cCommentML_COMMENTTerminalRuleCall_0_0_0 = (RuleCall)cCommentAlternatives_0_0.eContents().get(0);
+ private final RuleCall cCommentSL_COMMENTTerminalRuleCall_0_0_1 = (RuleCall)cCommentAlternatives_0_0.eContents().get(1);
+ private final Assignment cStatementAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cStatementStatementParserRuleCall_1_0 = (RuleCall)cStatementAssignment_1.eContents().get(0);
+
+ //DocumentedStatement:
+ // comment=(ML_COMMENT | SL_COMMENT)? statement=Statement;
+ public ParserRule getRule() { return rule; }
+
+ //comment=(ML_COMMENT | SL_COMMENT)? statement=Statement
+ public Group getGroup() { return cGroup; }
+
+ //comment=(ML_COMMENT | SL_COMMENT)?
+ public Assignment getCommentAssignment_0() { return cCommentAssignment_0; }
+
+ //ML_COMMENT | SL_COMMENT
+ public Alternatives getCommentAlternatives_0_0() { return cCommentAlternatives_0_0; }
+
+ //ML_COMMENT
+ public RuleCall getCommentML_COMMENTTerminalRuleCall_0_0_0() { return cCommentML_COMMENTTerminalRuleCall_0_0_0; }
+
+ //SL_COMMENT
+ public RuleCall getCommentSL_COMMENTTerminalRuleCall_0_0_1() { return cCommentSL_COMMENTTerminalRuleCall_0_0_1; }
+
+ //statement=Statement
+ public Assignment getStatementAssignment_1() { return cStatementAssignment_1; }
+
+ //Statement
+ public RuleCall getStatementStatementParserRuleCall_1_0() { return cStatementStatementParserRuleCall_1_0; }
+ }
+
+ public class InlineStatementElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "InlineStatement");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cSolidusAsteriskCommercialAtKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Keyword cInlineKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Keyword cLeftParenthesisKeyword_2 = (Keyword)cGroup.eContents().get(2);
+ private final Assignment cLangageNameAssignment_3 = (Assignment)cGroup.eContents().get(3);
+ private final RuleCall cLangageNameIDTerminalRuleCall_3_0 = (RuleCall)cLangageNameAssignment_3.eContents().get(0);
+ private final Keyword cRightParenthesisKeyword_4 = (Keyword)cGroup.eContents().get(4);
+ private final Assignment cBodyAssignment_5 = (Assignment)cGroup.eContents().get(5);
+ private final RuleCall cBodySTRINGTerminalRuleCall_5_0 = (RuleCall)cBodyAssignment_5.eContents().get(0);
+ private final Keyword cAsteriskSolidusKeyword_6 = (Keyword)cGroup.eContents().get(6);
+
+ //InlineStatement:
+ // "/ *@" "inline" "(" langageName=ID ")" body=STRING "* /";
+ public ParserRule getRule() { return rule; }
+
+ //"/ *@" "inline" "(" langageName=ID ")" body=STRING "* /"
+ public Group getGroup() { return cGroup; }
+
+ //"/ *@"
+ public Keyword getSolidusAsteriskCommercialAtKeyword_0() { return cSolidusAsteriskCommercialAtKeyword_0; }
+
+ //"inline"
+ public Keyword getInlineKeyword_1() { return cInlineKeyword_1; }
+
+ //"("
+ public Keyword getLeftParenthesisKeyword_2() { return cLeftParenthesisKeyword_2; }
+
+ //langageName=ID
+ public Assignment getLangageNameAssignment_3() { return cLangageNameAssignment_3; }
+
+ //ID
+ public RuleCall getLangageNameIDTerminalRuleCall_3_0() { return cLangageNameIDTerminalRuleCall_3_0; }
+
+ //")"
+ public Keyword getRightParenthesisKeyword_4() { return cRightParenthesisKeyword_4; }
+
+ //body=STRING
+ public Assignment getBodyAssignment_5() { return cBodyAssignment_5; }
+
+ //STRING
+ public RuleCall getBodySTRINGTerminalRuleCall_5_0() { return cBodySTRINGTerminalRuleCall_5_0; }
+
+ //"* /"
+ public Keyword getAsteriskSolidusKeyword_6() { return cAsteriskSolidusKeyword_6; }
+ }
+
+ public class AnnotatedStatementElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "AnnotatedStatement");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cSolidusSolidusCommercialAtKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cAnnotationAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cAnnotationAnnotationParserRuleCall_1_0 = (RuleCall)cAnnotationAssignment_1.eContents().get(0);
+ private final Assignment cStatementAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cStatementStatementParserRuleCall_2_0 = (RuleCall)cStatementAssignment_2.eContents().get(0);
+
+ //AnnotatedStatement:
+ // "//@" annotation= //block = Block
+ // Annotation statement=Statement;
+ public ParserRule getRule() { return rule; }
+
+ //"//@" annotation= //block = Block
+ //Annotation statement=Statement
+ public Group getGroup() { return cGroup; }
+
+ //"//@"
+ public Keyword getSolidusSolidusCommercialAtKeyword_0() { return cSolidusSolidusCommercialAtKeyword_0; }
+
+ //annotation= //block = Block
+ //Annotation
+ public Assignment getAnnotationAssignment_1() { return cAnnotationAssignment_1; }
+
+ ////block = Block
+ //Annotation
+ public RuleCall getAnnotationAnnotationParserRuleCall_1_0() { return cAnnotationAnnotationParserRuleCall_1_0; }
+
+ //statement=Statement
+ public Assignment getStatementAssignment_2() { return cStatementAssignment_2; }
+
+ //Statement
+ public RuleCall getStatementStatementParserRuleCall_2_0() { return cStatementStatementParserRuleCall_2_0; }
+ }
+
+ public class StatementElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Statement");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cAnnotatedStatementParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cInlineStatementParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+ private final RuleCall cBlockStatementParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+ private final RuleCall cEmptyStatementParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
+ private final RuleCall cLocalNameDeclarationStatementParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
+ private final RuleCall cIfStatementParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
+ private final RuleCall cSwitchStatementParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6);
+ private final RuleCall cWhileStatementParserRuleCall_7 = (RuleCall)cAlternatives.eContents().get(7);
+ private final RuleCall cDoStatementParserRuleCall_8 = (RuleCall)cAlternatives.eContents().get(8);
+ private final RuleCall cForStatementParserRuleCall_9 = (RuleCall)cAlternatives.eContents().get(9);
+ private final RuleCall cBreakStatementParserRuleCall_10 = (RuleCall)cAlternatives.eContents().get(10);
+ private final RuleCall cReturnStatementParserRuleCall_11 = (RuleCall)cAlternatives.eContents().get(11);
+ private final RuleCall cAcceptStatementParserRuleCall_12 = (RuleCall)cAlternatives.eContents().get(12);
+ private final RuleCall cClassifyStatementParserRuleCall_13 = (RuleCall)cAlternatives.eContents().get(13);
+ private final RuleCall cInvocationOrAssignementOrDeclarationStatementParserRuleCall_14 = (RuleCall)cAlternatives.eContents().get(14);
+ private final RuleCall cSuperInvocationStatementParserRuleCall_15 = (RuleCall)cAlternatives.eContents().get(15);
+ private final RuleCall cThisInvocationStatementParserRuleCall_16 = (RuleCall)cAlternatives.eContents().get(16);
+ private final RuleCall cInstanceCreationInvocationStatementParserRuleCall_17 = (RuleCall)cAlternatives.eContents().get(17);
+
+ //Statement:
+ // AnnotatedStatement | InlineStatement | BlockStatement | EmptyStatement | LocalNameDeclarationStatement | IfStatement |
+ // SwitchStatement | WhileStatement | DoStatement | ForStatement | BreakStatement | ReturnStatement | AcceptStatement |
+ // ClassifyStatement | InvocationOrAssignementOrDeclarationStatement | SuperInvocationStatement | ThisInvocationStatement
+ // | InstanceCreationInvocationStatement;
+ public ParserRule getRule() { return rule; }
+
+ //AnnotatedStatement | InlineStatement | BlockStatement | EmptyStatement | LocalNameDeclarationStatement | IfStatement |
+ //SwitchStatement | WhileStatement | DoStatement | ForStatement | BreakStatement | ReturnStatement | AcceptStatement |
+ //ClassifyStatement | InvocationOrAssignementOrDeclarationStatement | SuperInvocationStatement | ThisInvocationStatement
+ //| InstanceCreationInvocationStatement
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //AnnotatedStatement
+ public RuleCall getAnnotatedStatementParserRuleCall_0() { return cAnnotatedStatementParserRuleCall_0; }
+
+ //InlineStatement
+ public RuleCall getInlineStatementParserRuleCall_1() { return cInlineStatementParserRuleCall_1; }
+
+ //BlockStatement
+ public RuleCall getBlockStatementParserRuleCall_2() { return cBlockStatementParserRuleCall_2; }
+
+ //EmptyStatement
+ public RuleCall getEmptyStatementParserRuleCall_3() { return cEmptyStatementParserRuleCall_3; }
+
+ //LocalNameDeclarationStatement
+ public RuleCall getLocalNameDeclarationStatementParserRuleCall_4() { return cLocalNameDeclarationStatementParserRuleCall_4; }
+
+ //IfStatement
+ public RuleCall getIfStatementParserRuleCall_5() { return cIfStatementParserRuleCall_5; }
+
+ //SwitchStatement
+ public RuleCall getSwitchStatementParserRuleCall_6() { return cSwitchStatementParserRuleCall_6; }
+
+ //WhileStatement
+ public RuleCall getWhileStatementParserRuleCall_7() { return cWhileStatementParserRuleCall_7; }
+
+ //DoStatement
+ public RuleCall getDoStatementParserRuleCall_8() { return cDoStatementParserRuleCall_8; }
+
+ //ForStatement
+ public RuleCall getForStatementParserRuleCall_9() { return cForStatementParserRuleCall_9; }
+
+ //BreakStatement
+ public RuleCall getBreakStatementParserRuleCall_10() { return cBreakStatementParserRuleCall_10; }
+
+ //ReturnStatement
+ public RuleCall getReturnStatementParserRuleCall_11() { return cReturnStatementParserRuleCall_11; }
+
+ //AcceptStatement
+ public RuleCall getAcceptStatementParserRuleCall_12() { return cAcceptStatementParserRuleCall_12; }
+
+ //ClassifyStatement
+ public RuleCall getClassifyStatementParserRuleCall_13() { return cClassifyStatementParserRuleCall_13; }
+
+ //InvocationOrAssignementOrDeclarationStatement
+ public RuleCall getInvocationOrAssignementOrDeclarationStatementParserRuleCall_14() { return cInvocationOrAssignementOrDeclarationStatementParserRuleCall_14; }
+
+ //SuperInvocationStatement
+ public RuleCall getSuperInvocationStatementParserRuleCall_15() { return cSuperInvocationStatementParserRuleCall_15; }
+
+ //ThisInvocationStatement
+ public RuleCall getThisInvocationStatementParserRuleCall_16() { return cThisInvocationStatementParserRuleCall_16; }
+
+ //InstanceCreationInvocationStatement
+ public RuleCall getInstanceCreationInvocationStatementParserRuleCall_17() { return cInstanceCreationInvocationStatementParserRuleCall_17; }
+ }
+
+ public class AnnotationElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Annotation");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cKindAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cKindAnnotationKindEnumRuleCall_0_0 = (RuleCall)cKindAssignment_0.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Keyword cLeftParenthesisKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+ private final Assignment cArgsAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cArgsIDTerminalRuleCall_1_1_0 = (RuleCall)cArgsAssignment_1_1.eContents().get(0);
+ private final Group cGroup_1_2 = (Group)cGroup_1.eContents().get(2);
+ private final Keyword cCommaKeyword_1_2_0 = (Keyword)cGroup_1_2.eContents().get(0);
+ private final Assignment cArgsAssignment_1_2_1 = (Assignment)cGroup_1_2.eContents().get(1);
+ private final RuleCall cArgsIDTerminalRuleCall_1_2_1_0 = (RuleCall)cArgsAssignment_1_2_1.eContents().get(0);
+ private final Keyword cRightParenthesisKeyword_1_3 = (Keyword)cGroup_1.eContents().get(3);
+
+ //Annotation:
+ // kind=AnnotationKind ("(" args+=ID ("," args+=ID)* ")")?;
+ public ParserRule getRule() { return rule; }
+
+ //kind=AnnotationKind ("(" args+=ID ("," args+=ID)* ")")?
+ public Group getGroup() { return cGroup; }
+
+ //kind=AnnotationKind
+ public Assignment getKindAssignment_0() { return cKindAssignment_0; }
+
+ //AnnotationKind
+ public RuleCall getKindAnnotationKindEnumRuleCall_0_0() { return cKindAnnotationKindEnumRuleCall_0_0; }
+
+ //("(" args+=ID ("," args+=ID)* ")")?
+ public Group getGroup_1() { return cGroup_1; }
+
+ //"("
+ public Keyword getLeftParenthesisKeyword_1_0() { return cLeftParenthesisKeyword_1_0; }
+
+ //args+=ID
+ public Assignment getArgsAssignment_1_1() { return cArgsAssignment_1_1; }
+
+ //ID
+ public RuleCall getArgsIDTerminalRuleCall_1_1_0() { return cArgsIDTerminalRuleCall_1_1_0; }
+
+ //("," args+=ID)*
+ public Group getGroup_1_2() { return cGroup_1_2; }
+
+ //","
+ public Keyword getCommaKeyword_1_2_0() { return cCommaKeyword_1_2_0; }
+
+ //args+=ID
+ public Assignment getArgsAssignment_1_2_1() { return cArgsAssignment_1_2_1; }
+
+ //ID
+ public RuleCall getArgsIDTerminalRuleCall_1_2_1_0() { return cArgsIDTerminalRuleCall_1_2_1_0; }
+
+ //")"
+ public Keyword getRightParenthesisKeyword_1_3() { return cRightParenthesisKeyword_1_3; }
+ }
+
+ public class BlockStatementElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "BlockStatement");
+ private final Assignment cBlockAssignment = (Assignment)rule.eContents().get(1);
+ private final RuleCall cBlockBlockParserRuleCall_0 = (RuleCall)cBlockAssignment.eContents().get(0);
+
+ //BlockStatement:
+ // block=Block;
+ public ParserRule getRule() { return rule; }
+
+ //block=Block
+ public Assignment getBlockAssignment() { return cBlockAssignment; }
+
+ //Block
+ public RuleCall getBlockBlockParserRuleCall_0() { return cBlockBlockParserRuleCall_0; }
+ }
+
+ public class EmptyStatementElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "EmptyStatement");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cEmptyStatementAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cSemicolonKeyword_1 = (Keyword)cGroup.eContents().get(1);
+
+ //EmptyStatement:
+ // {EmptyStatement} ";";
+ public ParserRule getRule() { return rule; }
+
+ //{EmptyStatement} ";"
+ public Group getGroup() { return cGroup; }
+
+ //{EmptyStatement}
+ public Action getEmptyStatementAction_0() { return cEmptyStatementAction_0; }
+
+ //";"
+ public Keyword getSemicolonKeyword_1() { return cSemicolonKeyword_1; }
+ }
+
+ public class LocalNameDeclarationStatementElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LocalNameDeclarationStatement");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cLetKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cVarNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cVarNameIDTerminalRuleCall_1_0 = (RuleCall)cVarNameAssignment_1.eContents().get(0);
+ private final Keyword cColonKeyword_2 = (Keyword)cGroup.eContents().get(2);
+ private final Assignment cTypeAssignment_3 = (Assignment)cGroup.eContents().get(3);
+ private final RuleCall cTypeQualifiedNameWithBindingParserRuleCall_3_0 = (RuleCall)cTypeAssignment_3.eContents().get(0);
+ private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
+ private final Assignment cMultiplicityIndicatorAssignment_4_0 = (Assignment)cGroup_4.eContents().get(0);
+ private final Keyword cMultiplicityIndicatorLeftSquareBracketKeyword_4_0_0 = (Keyword)cMultiplicityIndicatorAssignment_4_0.eContents().get(0);
+ private final Keyword cRightSquareBracketKeyword_4_1 = (Keyword)cGroup_4.eContents().get(1);
+ private final Keyword cEqualsSignKeyword_5 = (Keyword)cGroup.eContents().get(5);
+ private final Assignment cInitAssignment_6 = (Assignment)cGroup.eContents().get(6);
+ private final RuleCall cInitSequenceElementParserRuleCall_6_0 = (RuleCall)cInitAssignment_6.eContents().get(0);
+ private final Keyword cSemicolonKeyword_7 = (Keyword)cGroup.eContents().get(7);
+
+ //LocalNameDeclarationStatement:
+ // "let" varName=ID ":" type=QualifiedNameWithBinding (multiplicityIndicator?="[" "]")? //'=' init = Expression ';'
+ // "=" init=SequenceElement ";";
+ public ParserRule getRule() { return rule; }
+
+ //"let" varName=ID ":" type=QualifiedNameWithBinding (multiplicityIndicator?="[" "]")? //'=' init = Expression ';'
+ //"=" init=SequenceElement ";"
+ public Group getGroup() { return cGroup; }
+
+ //"let"
+ public Keyword getLetKeyword_0() { return cLetKeyword_0; }
+
+ //varName=ID
+ public Assignment getVarNameAssignment_1() { return cVarNameAssignment_1; }
+
+ //ID
+ public RuleCall getVarNameIDTerminalRuleCall_1_0() { return cVarNameIDTerminalRuleCall_1_0; }
+
+ //":"
+ public Keyword getColonKeyword_2() { return cColonKeyword_2; }
+
+ //type=QualifiedNameWithBinding
+ public Assignment getTypeAssignment_3() { return cTypeAssignment_3; }
+
+ //QualifiedNameWithBinding
+ public RuleCall getTypeQualifiedNameWithBindingParserRuleCall_3_0() { return cTypeQualifiedNameWithBindingParserRuleCall_3_0; }
+
+ //(multiplicityIndicator?="[" "]")?
+ public Group getGroup_4() { return cGroup_4; }
+
+ //multiplicityIndicator?="["
+ public Assignment getMultiplicityIndicatorAssignment_4_0() { return cMultiplicityIndicatorAssignment_4_0; }
+
+ //"["
+ public Keyword getMultiplicityIndicatorLeftSquareBracketKeyword_4_0_0() { return cMultiplicityIndicatorLeftSquareBracketKeyword_4_0_0; }
+
+ //"]"
+ public Keyword getRightSquareBracketKeyword_4_1() { return cRightSquareBracketKeyword_4_1; }
+
+ ////'=' init = Expression ';'
+ //"="
+ public Keyword getEqualsSignKeyword_5() { return cEqualsSignKeyword_5; }
+
+ //init=SequenceElement
+ public Assignment getInitAssignment_6() { return cInitAssignment_6; }
+
+ //SequenceElement
+ public RuleCall getInitSequenceElementParserRuleCall_6_0() { return cInitSequenceElementParserRuleCall_6_0; }
+
+ //";"
+ public Keyword getSemicolonKeyword_7() { return cSemicolonKeyword_7; }
+ }
+
+ public class IfStatementElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "IfStatement");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cIfKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cSequentialClaussesAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cSequentialClaussesSequentialClausesParserRuleCall_1_0 = (RuleCall)cSequentialClaussesAssignment_1.eContents().get(0);
+ private final Assignment cFinalClauseAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cFinalClauseFinalClauseParserRuleCall_2_0 = (RuleCall)cFinalClauseAssignment_2.eContents().get(0);
+
+ //IfStatement:
+ // "if" sequentialClausses=SequentialClauses finalClause=FinalClause?;
+ public ParserRule getRule() { return rule; }
+
+ //"if" sequentialClausses=SequentialClauses finalClause=FinalClause?
+ public Group getGroup() { return cGroup; }
+
+ //"if"
+ public Keyword getIfKeyword_0() { return cIfKeyword_0; }
+
+ //sequentialClausses=SequentialClauses
+ public Assignment getSequentialClaussesAssignment_1() { return cSequentialClaussesAssignment_1; }
+
+ //SequentialClauses
+ public RuleCall getSequentialClaussesSequentialClausesParserRuleCall_1_0() { return cSequentialClaussesSequentialClausesParserRuleCall_1_0; }
+
+ //finalClause=FinalClause?
+ public Assignment getFinalClauseAssignment_2() { return cFinalClauseAssignment_2; }
+
+ //FinalClause
+ public RuleCall getFinalClauseFinalClauseParserRuleCall_2_0() { return cFinalClauseFinalClauseParserRuleCall_2_0; }
+ }
+
+ public class SequentialClausesElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SequentialClauses");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cConccurentClausesAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cConccurentClausesConcurrentClausesParserRuleCall_0_0 = (RuleCall)cConccurentClausesAssignment_0.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Keyword cElseKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+ private final Keyword cIfKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1);
+ private final Assignment cConccurentClausesAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2);
+ private final RuleCall cConccurentClausesConcurrentClausesParserRuleCall_1_2_0 = (RuleCall)cConccurentClausesAssignment_1_2.eContents().get(0);
+
+ //SequentialClauses:
+ // conccurentClauses+=ConcurrentClauses ("else" "if" conccurentClauses+=ConcurrentClauses)*;
+ public ParserRule getRule() { return rule; }
+
+ //conccurentClauses+=ConcurrentClauses ("else" "if" conccurentClauses+=ConcurrentClauses)*
+ public Group getGroup() { return cGroup; }
+
+ //conccurentClauses+=ConcurrentClauses
+ public Assignment getConccurentClausesAssignment_0() { return cConccurentClausesAssignment_0; }
+
+ //ConcurrentClauses
+ public RuleCall getConccurentClausesConcurrentClausesParserRuleCall_0_0() { return cConccurentClausesConcurrentClausesParserRuleCall_0_0; }
+
+ //("else" "if" conccurentClauses+=ConcurrentClauses)*
+ public Group getGroup_1() { return cGroup_1; }
+
+ //"else"
+ public Keyword getElseKeyword_1_0() { return cElseKeyword_1_0; }
+
+ //"if"
+ public Keyword getIfKeyword_1_1() { return cIfKeyword_1_1; }
+
+ //conccurentClauses+=ConcurrentClauses
+ public Assignment getConccurentClausesAssignment_1_2() { return cConccurentClausesAssignment_1_2; }
+
+ //ConcurrentClauses
+ public RuleCall getConccurentClausesConcurrentClausesParserRuleCall_1_2_0() { return cConccurentClausesConcurrentClausesParserRuleCall_1_2_0; }
+ }
+
+ public class ConcurrentClausesElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ConcurrentClauses");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cNonFinalClauseAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cNonFinalClauseNonFinalClauseParserRuleCall_0_0 = (RuleCall)cNonFinalClauseAssignment_0.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Keyword cOrKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+ private final Keyword cIfKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1);
+ private final Assignment cNonFinalClauseAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2);
+ private final RuleCall cNonFinalClauseNonFinalClauseParserRuleCall_1_2_0 = (RuleCall)cNonFinalClauseAssignment_1_2.eContents().get(0);
+
+ //ConcurrentClauses:
+ // nonFinalClause+=NonFinalClause ("or" "if" nonFinalClause+=NonFinalClause)*;
+ public ParserRule getRule() { return rule; }
+
+ //nonFinalClause+=NonFinalClause ("or" "if" nonFinalClause+=NonFinalClause)*
+ public Group getGroup() { return cGroup; }
+
+ //nonFinalClause+=NonFinalClause
+ public Assignment getNonFinalClauseAssignment_0() { return cNonFinalClauseAssignment_0; }
+
+ //NonFinalClause
+ public RuleCall getNonFinalClauseNonFinalClauseParserRuleCall_0_0() { return cNonFinalClauseNonFinalClauseParserRuleCall_0_0; }
+
+ //("or" "if" nonFinalClause+=NonFinalClause)*
+ public Group getGroup_1() { return cGroup_1; }
+
+ //"or"
+ public Keyword getOrKeyword_1_0() { return cOrKeyword_1_0; }
+
+ //"if"
+ public Keyword getIfKeyword_1_1() { return cIfKeyword_1_1; }
+
+ //nonFinalClause+=NonFinalClause
+ public Assignment getNonFinalClauseAssignment_1_2() { return cNonFinalClauseAssignment_1_2; }
+
+ //NonFinalClause
+ public RuleCall getNonFinalClauseNonFinalClauseParserRuleCall_1_2_0() { return cNonFinalClauseNonFinalClauseParserRuleCall_1_2_0; }
+ }
+
+ public class NonFinalClauseElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "NonFinalClause");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cLeftParenthesisKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cConditionAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cConditionExpressionParserRuleCall_1_0 = (RuleCall)cConditionAssignment_1.eContents().get(0);
+ private final Keyword cRightParenthesisKeyword_2 = (Keyword)cGroup.eContents().get(2);
+ private final Assignment cBlockAssignment_3 = (Assignment)cGroup.eContents().get(3);
+ private final RuleCall cBlockBlockParserRuleCall_3_0 = (RuleCall)cBlockAssignment_3.eContents().get(0);
+
+ //NonFinalClause:
+ // "(" condition=Expression ")" block=Block;
+ public ParserRule getRule() { return rule; }
+
+ //"(" condition=Expression ")" block=Block
+ public Group getGroup() { return cGroup; }
+
+ //"("
+ public Keyword getLeftParenthesisKeyword_0() { return cLeftParenthesisKeyword_0; }
+
+ //condition=Expression
+ public Assignment getConditionAssignment_1() { return cConditionAssignment_1; }
+
+ //Expression
+ public RuleCall getConditionExpressionParserRuleCall_1_0() { return cConditionExpressionParserRuleCall_1_0; }
+
+ //")"
+ public Keyword getRightParenthesisKeyword_2() { return cRightParenthesisKeyword_2; }
+
+ //block=Block
+ public Assignment getBlockAssignment_3() { return cBlockAssignment_3; }
+
+ //Block
+ public RuleCall getBlockBlockParserRuleCall_3_0() { return cBlockBlockParserRuleCall_3_0; }
+ }
+
+ public class FinalClauseElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "FinalClause");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cElseKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cBlockAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cBlockBlockParserRuleCall_1_0 = (RuleCall)cBlockAssignment_1.eContents().get(0);
+
+ //FinalClause:
+ // "else" block=Block;
+ public ParserRule getRule() { return rule; }
+
+ //"else" block=Block
+ public Group getGroup() { return cGroup; }
+
+ //"else"
+ public Keyword getElseKeyword_0() { return cElseKeyword_0; }
+
+ //block=Block
+ public Assignment getBlockAssignment_1() { return cBlockAssignment_1; }
+
+ //Block
+ public RuleCall getBlockBlockParserRuleCall_1_0() { return cBlockBlockParserRuleCall_1_0; }
+ }
+
+ public class SwitchStatementElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SwitchStatement");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cSwitchKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cExpressionAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cExpressionExpressionParserRuleCall_2_0 = (RuleCall)cExpressionAssignment_2.eContents().get(0);
+ private final Keyword cRightParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final Keyword cLeftCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+ private final Assignment cSwitchClauseAssignment_5 = (Assignment)cGroup.eContents().get(5);
+ private final RuleCall cSwitchClauseSwitchClauseParserRuleCall_5_0 = (RuleCall)cSwitchClauseAssignment_5.eContents().get(0);
+ private final Assignment cDefaultClauseAssignment_6 = (Assignment)cGroup.eContents().get(6);
+ private final RuleCall cDefaultClauseSwitchDefaultClauseParserRuleCall_6_0 = (RuleCall)cDefaultClauseAssignment_6.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_7 = (Keyword)cGroup.eContents().get(7);
+
+ //SwitchStatement:
+ // "switch" "(" expression=Expression ")" "{" switchClause+=SwitchClause* defaultClause=SwitchDefaultClause? "}";
+ public ParserRule getRule() { return rule; }
+
+ //"switch" "(" expression=Expression ")" "{" switchClause+=SwitchClause* defaultClause=SwitchDefaultClause? "}"
+ public Group getGroup() { return cGroup; }
+
+ //"switch"
+ public Keyword getSwitchKeyword_0() { return cSwitchKeyword_0; }
+
+ //"("
+ public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }
+
+ //expression=Expression
+ public Assignment getExpressionAssignment_2() { return cExpressionAssignment_2; }
+
+ //Expression
+ public RuleCall getExpressionExpressionParserRuleCall_2_0() { return cExpressionExpressionParserRuleCall_2_0; }
+
+ //")"
+ public Keyword getRightParenthesisKeyword_3() { return cRightParenthesisKeyword_3; }
+
+ //"{"
+ public Keyword getLeftCurlyBracketKeyword_4() { return cLeftCurlyBracketKeyword_4; }
+
+ //switchClause+=SwitchClause*
+ public Assignment getSwitchClauseAssignment_5() { return cSwitchClauseAssignment_5; }
+
+ //SwitchClause
+ public RuleCall getSwitchClauseSwitchClauseParserRuleCall_5_0() { return cSwitchClauseSwitchClauseParserRuleCall_5_0; }
+
+ //defaultClause=SwitchDefaultClause?
+ public Assignment getDefaultClauseAssignment_6() { return cDefaultClauseAssignment_6; }
+
+ //SwitchDefaultClause
+ public RuleCall getDefaultClauseSwitchDefaultClauseParserRuleCall_6_0() { return cDefaultClauseSwitchDefaultClauseParserRuleCall_6_0; }
+
+ //"}"
+ public Keyword getRightCurlyBracketKeyword_7() { return cRightCurlyBracketKeyword_7; }
+ }
+
+ public class SwitchClauseElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SwitchClause");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cSwitchCaseAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cSwitchCaseSwitchCaseParserRuleCall_0_0 = (RuleCall)cSwitchCaseAssignment_0.eContents().get(0);
+ private final Assignment cSwitchCaseAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cSwitchCaseSwitchCaseParserRuleCall_1_0 = (RuleCall)cSwitchCaseAssignment_1.eContents().get(0);
+ private final Assignment cStatementSequenceAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cStatementSequenceNonEmptyStatementSequenceParserRuleCall_2_0 = (RuleCall)cStatementSequenceAssignment_2.eContents().get(0);
+
+ //SwitchClause:
+ // switchCase+=SwitchCase switchCase+=SwitchCase* statementSequence=NonEmptyStatementSequence;
+ public ParserRule getRule() { return rule; }
+
+ //switchCase+=SwitchCase switchCase+=SwitchCase* statementSequence=NonEmptyStatementSequence
+ public Group getGroup() { return cGroup; }
+
+ //switchCase+=SwitchCase
+ public Assignment getSwitchCaseAssignment_0() { return cSwitchCaseAssignment_0; }
+
+ //SwitchCase
+ public RuleCall getSwitchCaseSwitchCaseParserRuleCall_0_0() { return cSwitchCaseSwitchCaseParserRuleCall_0_0; }
+
+ //switchCase+=SwitchCase*
+ public Assignment getSwitchCaseAssignment_1() { return cSwitchCaseAssignment_1; }
+
+ //SwitchCase
+ public RuleCall getSwitchCaseSwitchCaseParserRuleCall_1_0() { return cSwitchCaseSwitchCaseParserRuleCall_1_0; }
+
+ //statementSequence=NonEmptyStatementSequence
+ public Assignment getStatementSequenceAssignment_2() { return cStatementSequenceAssignment_2; }
+
+ //NonEmptyStatementSequence
+ public RuleCall getStatementSequenceNonEmptyStatementSequenceParserRuleCall_2_0() { return cStatementSequenceNonEmptyStatementSequenceParserRuleCall_2_0; }
+ }
+
+ public class SwitchCaseElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SwitchCase");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cCaseKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cExpressionAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cExpressionExpressionParserRuleCall_1_0 = (RuleCall)cExpressionAssignment_1.eContents().get(0);
+ private final Keyword cColonKeyword_2 = (Keyword)cGroup.eContents().get(2);
+
+ //SwitchCase:
+ // "case" expression=Expression ":";
+ public ParserRule getRule() { return rule; }
+
+ //"case" expression=Expression ":"
+ public Group getGroup() { return cGroup; }
+
+ //"case"
+ public Keyword getCaseKeyword_0() { return cCaseKeyword_0; }
+
+ //expression=Expression
+ public Assignment getExpressionAssignment_1() { return cExpressionAssignment_1; }
+
+ //Expression
+ public RuleCall getExpressionExpressionParserRuleCall_1_0() { return cExpressionExpressionParserRuleCall_1_0; }
+
+ //":"
+ public Keyword getColonKeyword_2() { return cColonKeyword_2; }
+ }
+
+ public class SwitchDefaultClauseElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SwitchDefaultClause");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cDefaultKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Keyword cColonKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cStatementSequenceAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cStatementSequenceNonEmptyStatementSequenceParserRuleCall_2_0 = (RuleCall)cStatementSequenceAssignment_2.eContents().get(0);
+
+ //SwitchDefaultClause:
+ // "default" ":" statementSequence=NonEmptyStatementSequence;
+ public ParserRule getRule() { return rule; }
+
+ //"default" ":" statementSequence=NonEmptyStatementSequence
+ public Group getGroup() { return cGroup; }
+
+ //"default"
+ public Keyword getDefaultKeyword_0() { return cDefaultKeyword_0; }
+
+ //":"
+ public Keyword getColonKeyword_1() { return cColonKeyword_1; }
+
+ //statementSequence=NonEmptyStatementSequence
+ public Assignment getStatementSequenceAssignment_2() { return cStatementSequenceAssignment_2; }
+
+ //NonEmptyStatementSequence
+ public RuleCall getStatementSequenceNonEmptyStatementSequenceParserRuleCall_2_0() { return cStatementSequenceNonEmptyStatementSequenceParserRuleCall_2_0; }
+ }
+
+ public class NonEmptyStatementSequenceElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "NonEmptyStatementSequence");
+ private final Assignment cStatementAssignment = (Assignment)rule.eContents().get(1);
+ private final RuleCall cStatementDocumentedStatementParserRuleCall_0 = (RuleCall)cStatementAssignment.eContents().get(0);
+
+ //NonEmptyStatementSequence:
+ // statement+=DocumentedStatement+;
+ public ParserRule getRule() { return rule; }
+
+ //statement+=DocumentedStatement+
+ public Assignment getStatementAssignment() { return cStatementAssignment; }
+
+ //DocumentedStatement
+ public RuleCall getStatementDocumentedStatementParserRuleCall_0() { return cStatementDocumentedStatementParserRuleCall_0; }
+ }
+
+ public class WhileStatementElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "WhileStatement");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cWhileKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cConditionAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cConditionExpressionParserRuleCall_2_0 = (RuleCall)cConditionAssignment_2.eContents().get(0);
+ private final Keyword cRightParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final Assignment cBlockAssignment_4 = (Assignment)cGroup.eContents().get(4);
+ private final RuleCall cBlockBlockParserRuleCall_4_0 = (RuleCall)cBlockAssignment_4.eContents().get(0);
+
+ /// * WHILE STATEMENTS * / WhileStatement:
+ // "while" "(" condition=Expression ")" block=Block;
+ public ParserRule getRule() { return rule; }
+
+ //"while" "(" condition=Expression ")" block=Block
+ public Group getGroup() { return cGroup; }
+
+ //"while"
+ public Keyword getWhileKeyword_0() { return cWhileKeyword_0; }
+
+ //"("
+ public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }
+
+ //condition=Expression
+ public Assignment getConditionAssignment_2() { return cConditionAssignment_2; }
+
+ //Expression
+ public RuleCall getConditionExpressionParserRuleCall_2_0() { return cConditionExpressionParserRuleCall_2_0; }
+
+ //")"
+ public Keyword getRightParenthesisKeyword_3() { return cRightParenthesisKeyword_3; }
+
+ //block=Block
+ public Assignment getBlockAssignment_4() { return cBlockAssignment_4; }
+
+ //Block
+ public RuleCall getBlockBlockParserRuleCall_4_0() { return cBlockBlockParserRuleCall_4_0; }
+ }
+
+ public class DoStatementElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DoStatement");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cDoKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cBlockAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cBlockBlockParserRuleCall_1_0 = (RuleCall)cBlockAssignment_1.eContents().get(0);
+ private final Keyword cWhileKeyword_2 = (Keyword)cGroup.eContents().get(2);
+ private final Keyword cLeftParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final Assignment cConditionAssignment_4 = (Assignment)cGroup.eContents().get(4);
+ private final RuleCall cConditionExpressionParserRuleCall_4_0 = (RuleCall)cConditionAssignment_4.eContents().get(0);
+ private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
+ private final Keyword cSemicolonKeyword_6 = (Keyword)cGroup.eContents().get(6);
+
+ /// * DO STATEMENTS * / DoStatement:
+ // "do" block=Block "while" "(" condition=Expression ")" ";";
+ public ParserRule getRule() { return rule; }
+
+ //"do" block=Block "while" "(" condition=Expression ")" ";"
+ public Group getGroup() { return cGroup; }
+
+ //"do"
+ public Keyword getDoKeyword_0() { return cDoKeyword_0; }
+
+ //block=Block
+ public Assignment getBlockAssignment_1() { return cBlockAssignment_1; }
+
+ //Block
+ public RuleCall getBlockBlockParserRuleCall_1_0() { return cBlockBlockParserRuleCall_1_0; }
+
+ //"while"
+ public Keyword getWhileKeyword_2() { return cWhileKeyword_2; }
+
+ //"("
+ public Keyword getLeftParenthesisKeyword_3() { return cLeftParenthesisKeyword_3; }
+
+ //condition=Expression
+ public Assignment getConditionAssignment_4() { return cConditionAssignment_4; }
+
+ //Expression
+ public RuleCall getConditionExpressionParserRuleCall_4_0() { return cConditionExpressionParserRuleCall_4_0; }
+
+ //")"
+ public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; }
+
+ //";"
+ public Keyword getSemicolonKeyword_6() { return cSemicolonKeyword_6; }
+ }
+
+ public class ForStatementElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ForStatement");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cForKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cControlAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cControlForControlParserRuleCall_2_0 = (RuleCall)cControlAssignment_2.eContents().get(0);
+ private final Keyword cRightParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final Assignment cBlockAssignment_4 = (Assignment)cGroup.eContents().get(4);
+ private final RuleCall cBlockBlockParserRuleCall_4_0 = (RuleCall)cBlockAssignment_4.eContents().get(0);
+
+ /// * FOR STATEMENTS * / ForStatement:
+ // "for" "(" control=ForControl ")" block=Block;
+ public ParserRule getRule() { return rule; }
+
+ //"for" "(" control=ForControl ")" block=Block
+ public Group getGroup() { return cGroup; }
+
+ //"for"
+ public Keyword getForKeyword_0() { return cForKeyword_0; }
+
+ //"("
+ public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }
+
+ //control=ForControl
+ public Assignment getControlAssignment_2() { return cControlAssignment_2; }
+
+ //ForControl
+ public RuleCall getControlForControlParserRuleCall_2_0() { return cControlForControlParserRuleCall_2_0; }
+
+ //")"
+ public Keyword getRightParenthesisKeyword_3() { return cRightParenthesisKeyword_3; }
+
+ //block=Block
+ public Assignment getBlockAssignment_4() { return cBlockAssignment_4; }
+
+ //Block
+ public RuleCall getBlockBlockParserRuleCall_4_0() { return cBlockBlockParserRuleCall_4_0; }
+ }
+
+ public class ForControlElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ForControl");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cLoopVariableDefinitionAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cLoopVariableDefinitionLoopVariableDefinitionParserRuleCall_0_0 = (RuleCall)cLoopVariableDefinitionAssignment_0.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Keyword cCommaKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+ private final Assignment cLoopVariableDefinitionAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cLoopVariableDefinitionLoopVariableDefinitionParserRuleCall_1_1_0 = (RuleCall)cLoopVariableDefinitionAssignment_1_1.eContents().get(0);
+
+ //ForControl:
+ // loopVariableDefinition+=LoopVariableDefinition ("," loopVariableDefinition+=LoopVariableDefinition)*;
+ public ParserRule getRule() { return rule; }
+
+ //loopVariableDefinition+=LoopVariableDefinition ("," loopVariableDefinition+=LoopVariableDefinition)*
+ public Group getGroup() { return cGroup; }
+
+ //loopVariableDefinition+=LoopVariableDefinition
+ public Assignment getLoopVariableDefinitionAssignment_0() { return cLoopVariableDefinitionAssignment_0; }
+
+ //LoopVariableDefinition
+ public RuleCall getLoopVariableDefinitionLoopVariableDefinitionParserRuleCall_0_0() { return cLoopVariableDefinitionLoopVariableDefinitionParserRuleCall_0_0; }
+
+ //("," loopVariableDefinition+=LoopVariableDefinition)*
+ public Group getGroup_1() { return cGroup_1; }
+
+ //","
+ public Keyword getCommaKeyword_1_0() { return cCommaKeyword_1_0; }
+
+ //loopVariableDefinition+=LoopVariableDefinition
+ public Assignment getLoopVariableDefinitionAssignment_1_1() { return cLoopVariableDefinitionAssignment_1_1; }
+
+ //LoopVariableDefinition
+ public RuleCall getLoopVariableDefinitionLoopVariableDefinitionParserRuleCall_1_1_0() { return cLoopVariableDefinitionLoopVariableDefinitionParserRuleCall_1_1_0; }
+ }
+
+ public class LoopVariableDefinitionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LoopVariableDefinition");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0);
+ private final Assignment cNameAssignment_0_0 = (Assignment)cGroup_0.eContents().get(0);
+ private final RuleCall cNameIDTerminalRuleCall_0_0_0 = (RuleCall)cNameAssignment_0_0.eContents().get(0);
+ private final Keyword cInKeyword_0_1 = (Keyword)cGroup_0.eContents().get(1);
+ private final Assignment cExpression1Assignment_0_2 = (Assignment)cGroup_0.eContents().get(2);
+ private final RuleCall cExpression1ExpressionParserRuleCall_0_2_0 = (RuleCall)cExpression1Assignment_0_2.eContents().get(0);
+ private final Group cGroup_0_3 = (Group)cGroup_0.eContents().get(3);
+ private final Keyword cFullStopFullStopKeyword_0_3_0 = (Keyword)cGroup_0_3.eContents().get(0);
+ private final Assignment cExpression2Assignment_0_3_1 = (Assignment)cGroup_0_3.eContents().get(1);
+ private final RuleCall cExpression2ExpressionParserRuleCall_0_3_1_0 = (RuleCall)cExpression2Assignment_0_3_1.eContents().get(0);
+ private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1);
+ private final Assignment cTypeAssignment_1_0 = (Assignment)cGroup_1.eContents().get(0);
+ private final RuleCall cTypeQualifiedNameWithBindingParserRuleCall_1_0_0 = (RuleCall)cTypeAssignment_1_0.eContents().get(0);
+ private final Assignment cNameAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cNameIDTerminalRuleCall_1_1_0 = (RuleCall)cNameAssignment_1_1.eContents().get(0);
+ private final Keyword cColonKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2);
+ private final Assignment cExpressionAssignment_1_3 = (Assignment)cGroup_1.eContents().get(3);
+ private final RuleCall cExpressionExpressionParserRuleCall_1_3_0 = (RuleCall)cExpressionAssignment_1_3.eContents().get(0);
+
+ //LoopVariableDefinition:
+ // name=ID "in" expression1=Expression (".." expression2=Expression)? | type=QualifiedNameWithBinding name=ID ":"
+ // expression=Expression;
+ public ParserRule getRule() { return rule; }
+
+ //name=ID "in" expression1=Expression (".." expression2=Expression)? | type=QualifiedNameWithBinding name=ID ":"
+ //expression=Expression
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //name=ID "in" expression1=Expression (".." expression2=Expression)?
+ public Group getGroup_0() { return cGroup_0; }
+
+ //name=ID
+ public Assignment getNameAssignment_0_0() { return cNameAssignment_0_0; }
+
+ //ID
+ public RuleCall getNameIDTerminalRuleCall_0_0_0() { return cNameIDTerminalRuleCall_0_0_0; }
+
+ //"in"
+ public Keyword getInKeyword_0_1() { return cInKeyword_0_1; }
+
+ //expression1=Expression
+ public Assignment getExpression1Assignment_0_2() { return cExpression1Assignment_0_2; }
+
+ //Expression
+ public RuleCall getExpression1ExpressionParserRuleCall_0_2_0() { return cExpression1ExpressionParserRuleCall_0_2_0; }
+
+ //(".." expression2=Expression)?
+ public Group getGroup_0_3() { return cGroup_0_3; }
+
+ //".."
+ public Keyword getFullStopFullStopKeyword_0_3_0() { return cFullStopFullStopKeyword_0_3_0; }
+
+ //expression2=Expression
+ public Assignment getExpression2Assignment_0_3_1() { return cExpression2Assignment_0_3_1; }
+
+ //Expression
+ public RuleCall getExpression2ExpressionParserRuleCall_0_3_1_0() { return cExpression2ExpressionParserRuleCall_0_3_1_0; }
+
+ //type=QualifiedNameWithBinding name=ID ":" expression=Expression
+ public Group getGroup_1() { return cGroup_1; }
+
+ //type=QualifiedNameWithBinding
+ public Assignment getTypeAssignment_1_0() { return cTypeAssignment_1_0; }
+
+ //QualifiedNameWithBinding
+ public RuleCall getTypeQualifiedNameWithBindingParserRuleCall_1_0_0() { return cTypeQualifiedNameWithBindingParserRuleCall_1_0_0; }
+
+ //name=ID
+ public Assignment getNameAssignment_1_1() { return cNameAssignment_1_1; }
+
+ //ID
+ public RuleCall getNameIDTerminalRuleCall_1_1_0() { return cNameIDTerminalRuleCall_1_1_0; }
+
+ //":"
+ public Keyword getColonKeyword_1_2() { return cColonKeyword_1_2; }
+
+ //expression=Expression
+ public Assignment getExpressionAssignment_1_3() { return cExpressionAssignment_1_3; }
+
+ //Expression
+ public RuleCall getExpressionExpressionParserRuleCall_1_3_0() { return cExpressionExpressionParserRuleCall_1_3_0; }
+ }
+
+ public class BreakStatementElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "BreakStatement");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cBreakStatementAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cBreakKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Keyword cSemicolonKeyword_2 = (Keyword)cGroup.eContents().get(2);
+
+ /// * BREAK STATEMENTS * / BreakStatement:
+ // {BreakStatement} "break" ";";
+ public ParserRule getRule() { return rule; }
+
+ //{BreakStatement} "break" ";"
+ public Group getGroup() { return cGroup; }
+
+ //{BreakStatement}
+ public Action getBreakStatementAction_0() { return cBreakStatementAction_0; }
+
+ //"break"
+ public Keyword getBreakKeyword_1() { return cBreakKeyword_1; }
+
+ //";"
+ public Keyword getSemicolonKeyword_2() { return cSemicolonKeyword_2; }
+ }
+
+ public class ReturnStatementElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ReturnStatement");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cReturnKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cExpressionAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cExpressionExpressionParserRuleCall_1_0 = (RuleCall)cExpressionAssignment_1.eContents().get(0);
+ private final Keyword cSemicolonKeyword_2 = (Keyword)cGroup.eContents().get(2);
+
+ /// * RETURN STATEMENTS * / ReturnStatement:
+ // "return" expression=Expression ";";
+ public ParserRule getRule() { return rule; }
+
+ //"return" expression=Expression ";"
+ public Group getGroup() { return cGroup; }
+
+ //"return"
+ public Keyword getReturnKeyword_0() { return cReturnKeyword_0; }
+
+ //expression=Expression
+ public Assignment getExpressionAssignment_1() { return cExpressionAssignment_1; }
+
+ //Expression
+ public RuleCall getExpressionExpressionParserRuleCall_1_0() { return cExpressionExpressionParserRuleCall_1_0; }
+
+ //";"
+ public Keyword getSemicolonKeyword_2() { return cSemicolonKeyword_2; }
+ }
+
+ public class AcceptStatementElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "AcceptStatement");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cClauseAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cClauseAcceptClauseParserRuleCall_0_0 = (RuleCall)cClauseAssignment_0.eContents().get(0);
+ private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
+ private final Assignment cSimpleAcceptAssignment_1_0 = (Assignment)cAlternatives_1.eContents().get(0);
+ private final RuleCall cSimpleAcceptSimpleAcceptStatementCompletionParserRuleCall_1_0_0 = (RuleCall)cSimpleAcceptAssignment_1_0.eContents().get(0);
+ private final Assignment cCompoundAcceptAssignment_1_1 = (Assignment)cAlternatives_1.eContents().get(1);
+ private final RuleCall cCompoundAcceptCompoundAcceptStatementCompletionParserRuleCall_1_1_0 = (RuleCall)cCompoundAcceptAssignment_1_1.eContents().get(0);
+
+ /// * ACCEPT STATEMENTS * / AcceptStatement:
+ // clause=AcceptClause (simpleAccept=SimpleAcceptStatementCompletion | compoundAccept=CompoundAcceptStatementCompletion);
+ public ParserRule getRule() { return rule; }
+
+ //clause=AcceptClause (simpleAccept=SimpleAcceptStatementCompletion | compoundAccept=CompoundAcceptStatementCompletion)
+ public Group getGroup() { return cGroup; }
+
+ //clause=AcceptClause
+ public Assignment getClauseAssignment_0() { return cClauseAssignment_0; }
+
+ //AcceptClause
+ public RuleCall getClauseAcceptClauseParserRuleCall_0_0() { return cClauseAcceptClauseParserRuleCall_0_0; }
+
+ //simpleAccept=SimpleAcceptStatementCompletion | compoundAccept=CompoundAcceptStatementCompletion
+ public Alternatives getAlternatives_1() { return cAlternatives_1; }
+
+ //simpleAccept=SimpleAcceptStatementCompletion
+ public Assignment getSimpleAcceptAssignment_1_0() { return cSimpleAcceptAssignment_1_0; }
+
+ //SimpleAcceptStatementCompletion
+ public RuleCall getSimpleAcceptSimpleAcceptStatementCompletionParserRuleCall_1_0_0() { return cSimpleAcceptSimpleAcceptStatementCompletionParserRuleCall_1_0_0; }
+
+ //compoundAccept=CompoundAcceptStatementCompletion
+ public Assignment getCompoundAcceptAssignment_1_1() { return cCompoundAcceptAssignment_1_1; }
+
+ //CompoundAcceptStatementCompletion
+ public RuleCall getCompoundAcceptCompoundAcceptStatementCompletionParserRuleCall_1_1_0() { return cCompoundAcceptCompoundAcceptStatementCompletionParserRuleCall_1_1_0; }
+ }
+
+ public class SimpleAcceptStatementCompletionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SimpleAcceptStatementCompletion");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cSimpleAcceptStatementCompletionAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cSemicolonKeyword_1 = (Keyword)cGroup.eContents().get(1);
+
+ //SimpleAcceptStatementCompletion:
+ // {SimpleAcceptStatementCompletion} ";";
+ public ParserRule getRule() { return rule; }
+
+ //{SimpleAcceptStatementCompletion} ";"
+ public Group getGroup() { return cGroup; }
+
+ //{SimpleAcceptStatementCompletion}
+ public Action getSimpleAcceptStatementCompletionAction_0() { return cSimpleAcceptStatementCompletionAction_0; }
+
+ //";"
+ public Keyword getSemicolonKeyword_1() { return cSemicolonKeyword_1; }
+ }
+
+ public class CompoundAcceptStatementCompletionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "CompoundAcceptStatementCompletion");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cBlockAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cBlockBlockParserRuleCall_0_0 = (RuleCall)cBlockAssignment_0.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Keyword cOrKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+ private final Assignment cAcceptBlockAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cAcceptBlockAcceptBlockParserRuleCall_1_1_0 = (RuleCall)cAcceptBlockAssignment_1_1.eContents().get(0);
+
+ //CompoundAcceptStatementCompletion:
+ // block=Block ("or" acceptBlock+=AcceptBlock)*;
+ public ParserRule getRule() { return rule; }
+
+ //block=Block ("or" acceptBlock+=AcceptBlock)*
+ public Group getGroup() { return cGroup; }
+
+ //block=Block
+ public Assignment getBlockAssignment_0() { return cBlockAssignment_0; }
+
+ //Block
+ public RuleCall getBlockBlockParserRuleCall_0_0() { return cBlockBlockParserRuleCall_0_0; }
+
+ //("or" acceptBlock+=AcceptBlock)*
+ public Group getGroup_1() { return cGroup_1; }
+
+ //"or"
+ public Keyword getOrKeyword_1_0() { return cOrKeyword_1_0; }
+
+ //acceptBlock+=AcceptBlock
+ public Assignment getAcceptBlockAssignment_1_1() { return cAcceptBlockAssignment_1_1; }
+
+ //AcceptBlock
+ public RuleCall getAcceptBlockAcceptBlockParserRuleCall_1_1_0() { return cAcceptBlockAcceptBlockParserRuleCall_1_1_0; }
+ }
+
+ public class AcceptBlockElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "AcceptBlock");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cClauseAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cClauseAcceptClauseParserRuleCall_0_0 = (RuleCall)cClauseAssignment_0.eContents().get(0);
+ private final Assignment cBlockAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cBlockBlockParserRuleCall_1_0 = (RuleCall)cBlockAssignment_1.eContents().get(0);
+
+ //AcceptBlock:
+ // clause=AcceptClause block=Block;
+ public ParserRule getRule() { return rule; }
+
+ //clause=AcceptClause block=Block
+ public Group getGroup() { return cGroup; }
+
+ //clause=AcceptClause
+ public Assignment getClauseAssignment_0() { return cClauseAssignment_0; }
+
+ //AcceptClause
+ public RuleCall getClauseAcceptClauseParserRuleCall_0_0() { return cClauseAcceptClauseParserRuleCall_0_0; }
+
+ //block=Block
+ public Assignment getBlockAssignment_1() { return cBlockAssignment_1; }
+
+ //Block
+ public RuleCall getBlockBlockParserRuleCall_1_0() { return cBlockBlockParserRuleCall_1_0; }
+ }
+
+ public class AcceptClauseElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "AcceptClause");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cAcceptKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+ private final Assignment cNameAssignment_2_0 = (Assignment)cGroup_2.eContents().get(0);
+ private final RuleCall cNameIDTerminalRuleCall_2_0_0 = (RuleCall)cNameAssignment_2_0.eContents().get(0);
+ private final Keyword cColonKeyword_2_1 = (Keyword)cGroup_2.eContents().get(1);
+ private final Assignment cQualifiedNameListAssignment_3 = (Assignment)cGroup.eContents().get(3);
+ private final RuleCall cQualifiedNameListQualifiedNameListParserRuleCall_3_0 = (RuleCall)cQualifiedNameListAssignment_3.eContents().get(0);
+ private final Keyword cRightParenthesisKeyword_4 = (Keyword)cGroup.eContents().get(4);
+
+ //AcceptClause:
+ // "accept" "(" (name=ID ":")? qualifiedNameList=QualifiedNameList ")";
+ public ParserRule getRule() { return rule; }
+
+ //"accept" "(" (name=ID ":")? qualifiedNameList=QualifiedNameList ")"
+ public Group getGroup() { return cGroup; }
+
+ //"accept"
+ public Keyword getAcceptKeyword_0() { return cAcceptKeyword_0; }
+
+ //"("
+ public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }
+
+ //(name=ID ":")?
+ public Group getGroup_2() { return cGroup_2; }
+
+ //name=ID
+ public Assignment getNameAssignment_2_0() { return cNameAssignment_2_0; }
+
+ //ID
+ public RuleCall getNameIDTerminalRuleCall_2_0_0() { return cNameIDTerminalRuleCall_2_0_0; }
+
+ //":"
+ public Keyword getColonKeyword_2_1() { return cColonKeyword_2_1; }
+
+ //qualifiedNameList=QualifiedNameList
+ public Assignment getQualifiedNameListAssignment_3() { return cQualifiedNameListAssignment_3; }
+
+ //QualifiedNameList
+ public RuleCall getQualifiedNameListQualifiedNameListParserRuleCall_3_0() { return cQualifiedNameListQualifiedNameListParserRuleCall_3_0; }
+
+ //")"
+ public Keyword getRightParenthesisKeyword_4() { return cRightParenthesisKeyword_4; }
+ }
+
+ public class ClassifyStatementElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ClassifyStatement");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cClassifyKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cExpressionAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cExpressionExpressionParserRuleCall_1_0 = (RuleCall)cExpressionAssignment_1.eContents().get(0);
+ private final Assignment cClauseAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cClauseClassificationClauseParserRuleCall_2_0 = (RuleCall)cClauseAssignment_2.eContents().get(0);
+ private final Keyword cSemicolonKeyword_3 = (Keyword)cGroup.eContents().get(3);
+
+ /// * CLASSIFY STATEMENTS * / ClassifyStatement:
+ // "classify" expression=Expression clause=ClassificationClause ";";
+ public ParserRule getRule() { return rule; }
+
+ //"classify" expression=Expression clause=ClassificationClause ";"
+ public Group getGroup() { return cGroup; }
+
+ //"classify"
+ public Keyword getClassifyKeyword_0() { return cClassifyKeyword_0; }
+
+ //expression=Expression
+ public Assignment getExpressionAssignment_1() { return cExpressionAssignment_1; }
+
+ //Expression
+ public RuleCall getExpressionExpressionParserRuleCall_1_0() { return cExpressionExpressionParserRuleCall_1_0; }
+
+ //clause=ClassificationClause
+ public Assignment getClauseAssignment_2() { return cClauseAssignment_2; }
+
+ //ClassificationClause
+ public RuleCall getClauseClassificationClauseParserRuleCall_2_0() { return cClauseClassificationClauseParserRuleCall_2_0; }
+
+ //";"
+ public Keyword getSemicolonKeyword_3() { return cSemicolonKeyword_3; }
+ }
+
+ public class ClassificationClauseElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ClassificationClause");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0);
+ private final Assignment cClassifyFromClauseAssignment_0_0 = (Assignment)cGroup_0.eContents().get(0);
+ private final RuleCall cClassifyFromClauseClassificationFromClauseParserRuleCall_0_0_0 = (RuleCall)cClassifyFromClauseAssignment_0_0.eContents().get(0);
+ private final Assignment cClassifyToClauseAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1);
+ private final RuleCall cClassifyToClauseClassificationToClauseParserRuleCall_0_1_0 = (RuleCall)cClassifyToClauseAssignment_0_1.eContents().get(0);
+ private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1);
+ private final Assignment cReclassyAllClauseAssignment_1_0 = (Assignment)cGroup_1.eContents().get(0);
+ private final RuleCall cReclassyAllClauseReclassifyAllClauseParserRuleCall_1_0_0 = (RuleCall)cReclassyAllClauseAssignment_1_0.eContents().get(0);
+ private final Assignment cClassifyToClauseAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cClassifyToClauseClassificationToClauseParserRuleCall_1_1_0 = (RuleCall)cClassifyToClauseAssignment_1_1.eContents().get(0);
+
+ //ClassificationClause:
+ // classifyFromClause=ClassificationFromClause classifyToClause=ClassificationToClause? |
+ // reclassyAllClause=ReclassifyAllClause? classifyToClause=ClassificationToClause;
+ public ParserRule getRule() { return rule; }
+
+ //classifyFromClause=ClassificationFromClause classifyToClause=ClassificationToClause? |
+ //reclassyAllClause=ReclassifyAllClause? classifyToClause=ClassificationToClause
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //classifyFromClause=ClassificationFromClause classifyToClause=ClassificationToClause?
+ public Group getGroup_0() { return cGroup_0; }
+
+ //classifyFromClause=ClassificationFromClause
+ public Assignment getClassifyFromClauseAssignment_0_0() { return cClassifyFromClauseAssignment_0_0; }
+
+ //ClassificationFromClause
+ public RuleCall getClassifyFromClauseClassificationFromClauseParserRuleCall_0_0_0() { return cClassifyFromClauseClassificationFromClauseParserRuleCall_0_0_0; }
+
+ //classifyToClause=ClassificationToClause?
+ public Assignment getClassifyToClauseAssignment_0_1() { return cClassifyToClauseAssignment_0_1; }
+
+ //ClassificationToClause
+ public RuleCall getClassifyToClauseClassificationToClauseParserRuleCall_0_1_0() { return cClassifyToClauseClassificationToClauseParserRuleCall_0_1_0; }
+
+ //reclassyAllClause=ReclassifyAllClause? classifyToClause=ClassificationToClause
+ public Group getGroup_1() { return cGroup_1; }
+
+ //reclassyAllClause=ReclassifyAllClause?
+ public Assignment getReclassyAllClauseAssignment_1_0() { return cReclassyAllClauseAssignment_1_0; }
+
+ //ReclassifyAllClause
+ public RuleCall getReclassyAllClauseReclassifyAllClauseParserRuleCall_1_0_0() { return cReclassyAllClauseReclassifyAllClauseParserRuleCall_1_0_0; }
+
+ //classifyToClause=ClassificationToClause
+ public Assignment getClassifyToClauseAssignment_1_1() { return cClassifyToClauseAssignment_1_1; }
+
+ //ClassificationToClause
+ public RuleCall getClassifyToClauseClassificationToClauseParserRuleCall_1_1_0() { return cClassifyToClauseClassificationToClauseParserRuleCall_1_1_0; }
+ }
+
+ public class ClassificationFromClauseElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ClassificationFromClause");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cFromKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cQualifiedNameListAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cQualifiedNameListQualifiedNameListParserRuleCall_1_0 = (RuleCall)cQualifiedNameListAssignment_1.eContents().get(0);
+
+ //ClassificationFromClause:
+ // "from" qualifiedNameList=QualifiedNameList;
+ public ParserRule getRule() { return rule; }
+
+ //"from" qualifiedNameList=QualifiedNameList
+ public Group getGroup() { return cGroup; }
+
+ //"from"
+ public Keyword getFromKeyword_0() { return cFromKeyword_0; }
+
+ //qualifiedNameList=QualifiedNameList
+ public Assignment getQualifiedNameListAssignment_1() { return cQualifiedNameListAssignment_1; }
+
+ //QualifiedNameList
+ public RuleCall getQualifiedNameListQualifiedNameListParserRuleCall_1_0() { return cQualifiedNameListQualifiedNameListParserRuleCall_1_0; }
+ }
+
+ public class ClassificationToClauseElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ClassificationToClause");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cToKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cQualifiedNameListAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cQualifiedNameListQualifiedNameListParserRuleCall_1_0 = (RuleCall)cQualifiedNameListAssignment_1.eContents().get(0);
+
+ //ClassificationToClause:
+ // "to" qualifiedNameList=QualifiedNameList;
+ public ParserRule getRule() { return rule; }
+
+ //"to" qualifiedNameList=QualifiedNameList
+ public Group getGroup() { return cGroup; }
+
+ //"to"
+ public Keyword getToKeyword_0() { return cToKeyword_0; }
+
+ //qualifiedNameList=QualifiedNameList
+ public Assignment getQualifiedNameListAssignment_1() { return cQualifiedNameListAssignment_1; }
+
+ //QualifiedNameList
+ public RuleCall getQualifiedNameListQualifiedNameListParserRuleCall_1_0() { return cQualifiedNameListQualifiedNameListParserRuleCall_1_0; }
+ }
+
+ public class ReclassifyAllClauseElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ReclassifyAllClause");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cReclassifyAllClauseAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cFromKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Keyword cAsteriskKeyword_2 = (Keyword)cGroup.eContents().get(2);
+
+ //ReclassifyAllClause:
+ // {ReclassifyAllClause} "from" "*";
+ public ParserRule getRule() { return rule; }
+
+ //{ReclassifyAllClause} "from" "*"
+ public Group getGroup() { return cGroup; }
+
+ //{ReclassifyAllClause}
+ public Action getReclassifyAllClauseAction_0() { return cReclassifyAllClauseAction_0; }
+
+ //"from"
+ public Keyword getFromKeyword_1() { return cFromKeyword_1; }
+
+ //"*"
+ public Keyword getAsteriskKeyword_2() { return cAsteriskKeyword_2; }
+ }
+
+ public class QualifiedNameListElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "QualifiedNameList");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cQualifiedNameAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cQualifiedNameQualifiedNameWithBindingParserRuleCall_0_0 = (RuleCall)cQualifiedNameAssignment_0.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Keyword cCommaKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+ private final Assignment cQualifiedNameAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cQualifiedNameQualifiedNameWithBindingParserRuleCall_1_1_0 = (RuleCall)cQualifiedNameAssignment_1_1.eContents().get(0);
+
+ //QualifiedNameList:
+ // qualifiedName+=QualifiedNameWithBinding ("," qualifiedName+=QualifiedNameWithBinding)*;
+ public ParserRule getRule() { return rule; }
+
+ //qualifiedName+=QualifiedNameWithBinding ("," qualifiedName+=QualifiedNameWithBinding)*
+ public Group getGroup() { return cGroup; }
+
+ //qualifiedName+=QualifiedNameWithBinding
+ public Assignment getQualifiedNameAssignment_0() { return cQualifiedNameAssignment_0; }
+
+ //QualifiedNameWithBinding
+ public RuleCall getQualifiedNameQualifiedNameWithBindingParserRuleCall_0_0() { return cQualifiedNameQualifiedNameWithBindingParserRuleCall_0_0; }
+
+ //("," qualifiedName+=QualifiedNameWithBinding)*
+ public Group getGroup_1() { return cGroup_1; }
+
+ //","
+ public Keyword getCommaKeyword_1_0() { return cCommaKeyword_1_0; }
+
+ //qualifiedName+=QualifiedNameWithBinding
+ public Assignment getQualifiedNameAssignment_1_1() { return cQualifiedNameAssignment_1_1; }
+
+ //QualifiedNameWithBinding
+ public RuleCall getQualifiedNameQualifiedNameWithBindingParserRuleCall_1_1_0() { return cQualifiedNameQualifiedNameWithBindingParserRuleCall_1_1_0; }
+ }
+
+ public class InvocationOrAssignementOrDeclarationStatementElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "InvocationOrAssignementOrDeclarationStatement");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cTypePart_OR_assignedPart_OR_invocationPartAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cTypePart_OR_assignedPart_OR_invocationPartNameExpressionParserRuleCall_0_0 = (RuleCall)cTypePart_OR_assignedPart_OR_invocationPartAssignment_0.eContents().get(0);
+ private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
+ private final Assignment cVariableDeclarationCompletionAssignment_1_0 = (Assignment)cAlternatives_1.eContents().get(0);
+ private final RuleCall cVariableDeclarationCompletionVariableDeclarationCompletionParserRuleCall_1_0_0 = (RuleCall)cVariableDeclarationCompletionAssignment_1_0.eContents().get(0);
+ private final Assignment cAssignmentCompletionAssignment_1_1 = (Assignment)cAlternatives_1.eContents().get(1);
+ private final RuleCall cAssignmentCompletionAssignmentCompletionParserRuleCall_1_1_0 = (RuleCall)cAssignmentCompletionAssignment_1_1.eContents().get(0);
+ private final Keyword cSemicolonKeyword_2 = (Keyword)cGroup.eContents().get(2);
+
+ //InvocationOrAssignementOrDeclarationStatement:
+ // typePart_OR_assignedPart_OR_invocationPart=NameExpression (variableDeclarationCompletion=VariableDeclarationCompletion //(suffixCompletion = SuffixCompletion)?
+ // | assignmentCompletion=AssignmentCompletion)? ";";
+ public ParserRule getRule() { return rule; }
+
+ //typePart_OR_assignedPart_OR_invocationPart=NameExpression (variableDeclarationCompletion=VariableDeclarationCompletion //(suffixCompletion = SuffixCompletion)?
+ //| assignmentCompletion=AssignmentCompletion)? ";"
+ public Group getGroup() { return cGroup; }
+
+ //typePart_OR_assignedPart_OR_invocationPart=NameExpression
+ public Assignment getTypePart_OR_assignedPart_OR_invocationPartAssignment_0() { return cTypePart_OR_assignedPart_OR_invocationPartAssignment_0; }
+
+ //NameExpression
+ public RuleCall getTypePart_OR_assignedPart_OR_invocationPartNameExpressionParserRuleCall_0_0() { return cTypePart_OR_assignedPart_OR_invocationPartNameExpressionParserRuleCall_0_0; }
+
+ //(variableDeclarationCompletion=VariableDeclarationCompletion //(suffixCompletion = SuffixCompletion)?
+ //| assignmentCompletion=AssignmentCompletion)?
+ public Alternatives getAlternatives_1() { return cAlternatives_1; }
+
+ //variableDeclarationCompletion=VariableDeclarationCompletion
+ public Assignment getVariableDeclarationCompletionAssignment_1_0() { return cVariableDeclarationCompletionAssignment_1_0; }
+
+ //VariableDeclarationCompletion
+ public RuleCall getVariableDeclarationCompletionVariableDeclarationCompletionParserRuleCall_1_0_0() { return cVariableDeclarationCompletionVariableDeclarationCompletionParserRuleCall_1_0_0; }
+
+ //assignmentCompletion=AssignmentCompletion
+ public Assignment getAssignmentCompletionAssignment_1_1() { return cAssignmentCompletionAssignment_1_1; }
+
+ //AssignmentCompletion
+ public RuleCall getAssignmentCompletionAssignmentCompletionParserRuleCall_1_1_0() { return cAssignmentCompletionAssignmentCompletionParserRuleCall_1_1_0; }
+
+ //";"
+ public Keyword getSemicolonKeyword_2() { return cSemicolonKeyword_2; }
+ }
+
+ public class SuperInvocationStatementElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SuperInvocationStatement");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment c_superAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall c_superSuperInvocationExpressionParserRuleCall_0_0 = (RuleCall)c_superAssignment_0.eContents().get(0);
+ private final Keyword cSemicolonKeyword_1 = (Keyword)cGroup.eContents().get(1);
+
+ //SuperInvocationStatement:
+ // _super=SuperInvocationExpression //(suffix = SuffixCompletion)? ';'
+ // ";";
+ public ParserRule getRule() { return rule; }
+
+ //_super=SuperInvocationExpression //(suffix = SuffixCompletion)? ';'
+ //";"
+ public Group getGroup() { return cGroup; }
+
+ //_super=SuperInvocationExpression
+ public Assignment get_superAssignment_0() { return c_superAssignment_0; }
+
+ //SuperInvocationExpression
+ public RuleCall get_superSuperInvocationExpressionParserRuleCall_0_0() { return c_superSuperInvocationExpressionParserRuleCall_0_0; }
+
+ ////(suffix = SuffixCompletion)? ';'
+ //";"
+ public Keyword getSemicolonKeyword_1() { return cSemicolonKeyword_1; }
+ }
+
+ public class ThisInvocationStatementElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ThisInvocationStatement");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment c_thisAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall c_thisThisExpressionParserRuleCall_0_0 = (RuleCall)c_thisAssignment_0.eContents().get(0);
+ private final Assignment cAssignmentCompletionAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cAssignmentCompletionAssignmentCompletionParserRuleCall_1_0 = (RuleCall)cAssignmentCompletionAssignment_1.eContents().get(0);
+ private final Keyword cSemicolonKeyword_2 = (Keyword)cGroup.eContents().get(2);
+
+ //ThisInvocationStatement: //_this = ThisExpression suffix = SuffixCompletion (assignmentCompletion = AssignmentCompletion)? ';'
+ // _this=ThisExpression assignmentCompletion=AssignmentCompletion? ";";
+ public ParserRule getRule() { return rule; }
+
+ ////_this = ThisExpression suffix = SuffixCompletion (assignmentCompletion = AssignmentCompletion)? ';'
+ //_this=ThisExpression assignmentCompletion=AssignmentCompletion? ";"
+ public Group getGroup() { return cGroup; }
+
+ ////_this = ThisExpression suffix = SuffixCompletion (assignmentCompletion = AssignmentCompletion)? ';'
+ //_this=ThisExpression
+ public Assignment get_thisAssignment_0() { return c_thisAssignment_0; }
+
+ //ThisExpression
+ public RuleCall get_thisThisExpressionParserRuleCall_0_0() { return c_thisThisExpressionParserRuleCall_0_0; }
+
+ //assignmentCompletion=AssignmentCompletion?
+ public Assignment getAssignmentCompletionAssignment_1() { return cAssignmentCompletionAssignment_1; }
+
+ //AssignmentCompletion
+ public RuleCall getAssignmentCompletionAssignmentCompletionParserRuleCall_1_0() { return cAssignmentCompletionAssignmentCompletionParserRuleCall_1_0; }
+
+ //";"
+ public Keyword getSemicolonKeyword_2() { return cSemicolonKeyword_2; }
+ }
+
+ public class InstanceCreationInvocationStatementElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "InstanceCreationInvocationStatement");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment c_newAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall c_newInstanceCreationExpressionParserRuleCall_0_0 = (RuleCall)c_newAssignment_0.eContents().get(0);
+ private final Keyword cSemicolonKeyword_1 = (Keyword)cGroup.eContents().get(1);
+
+ //InstanceCreationInvocationStatement:
+ // _new=InstanceCreationExpression //(suffix = SuffixCompletion)? ';'
+ // ";";
+ public ParserRule getRule() { return rule; }
+
+ //_new=InstanceCreationExpression //(suffix = SuffixCompletion)? ';'
+ //";"
+ public Group getGroup() { return cGroup; }
+
+ //_new=InstanceCreationExpression
+ public Assignment get_newAssignment_0() { return c_newAssignment_0; }
+
+ //InstanceCreationExpression
+ public RuleCall get_newInstanceCreationExpressionParserRuleCall_0_0() { return c_newInstanceCreationExpressionParserRuleCall_0_0; }
+
+ ////(suffix = SuffixCompletion)? ';'
+ //";"
+ public Keyword getSemicolonKeyword_1() { return cSemicolonKeyword_1; }
+ }
+
+ public class VariableDeclarationCompletionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "VariableDeclarationCompletion");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Group cGroup_0 = (Group)cGroup.eContents().get(0);
+ private final Assignment cMultiplicityIndicatorAssignment_0_0 = (Assignment)cGroup_0.eContents().get(0);
+ private final Keyword cMultiplicityIndicatorLeftSquareBracketKeyword_0_0_0 = (Keyword)cMultiplicityIndicatorAssignment_0_0.eContents().get(0);
+ private final Keyword cRightSquareBracketKeyword_0_1 = (Keyword)cGroup_0.eContents().get(1);
+ private final Assignment cVariableNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cVariableNameIDTerminalRuleCall_1_0 = (RuleCall)cVariableNameAssignment_1.eContents().get(0);
+ private final Assignment cInitValueAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cInitValueAssignmentCompletionParserRuleCall_2_0 = (RuleCall)cInitValueAssignment_2.eContents().get(0);
+
+ ////SuffixCompletion :
+ //// suffix = SuffixExpression
+ ////;
+ //VariableDeclarationCompletion:
+ // (multiplicityIndicator?="[" "]")? variableName=ID initValue=AssignmentCompletion;
+ public ParserRule getRule() { return rule; }
+
+ //(multiplicityIndicator?="[" "]")? variableName=ID initValue=AssignmentCompletion
+ public Group getGroup() { return cGroup; }
+
+ //(multiplicityIndicator?="[" "]")?
+ public Group getGroup_0() { return cGroup_0; }
+
+ //multiplicityIndicator?="["
+ public Assignment getMultiplicityIndicatorAssignment_0_0() { return cMultiplicityIndicatorAssignment_0_0; }
+
+ //"["
+ public Keyword getMultiplicityIndicatorLeftSquareBracketKeyword_0_0_0() { return cMultiplicityIndicatorLeftSquareBracketKeyword_0_0_0; }
+
+ //"]"
+ public Keyword getRightSquareBracketKeyword_0_1() { return cRightSquareBracketKeyword_0_1; }
+
+ //variableName=ID
+ public Assignment getVariableNameAssignment_1() { return cVariableNameAssignment_1; }
+
+ //ID
+ public RuleCall getVariableNameIDTerminalRuleCall_1_0() { return cVariableNameIDTerminalRuleCall_1_0; }
+
+ //initValue=AssignmentCompletion
+ public Assignment getInitValueAssignment_2() { return cInitValueAssignment_2; }
+
+ //AssignmentCompletion
+ public RuleCall getInitValueAssignmentCompletionParserRuleCall_2_0() { return cInitValueAssignmentCompletionParserRuleCall_2_0; }
+ }
+
+ public class AssignmentCompletionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "AssignmentCompletion");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cOpAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cOpAssignmentOperatorEnumRuleCall_0_0 = (RuleCall)cOpAssignment_0.eContents().get(0);
+ private final Assignment cRightHandSideAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cRightHandSideSequenceElementParserRuleCall_1_0 = (RuleCall)cRightHandSideAssignment_1.eContents().get(0);
+
+ ////op=('=' | '+=' | '-=' | '*=' | '%=' | '/=' | '&=' |
+ //// '|=' | '^=' | '<<=' | '>>=' | '>>>=') rightHandSide = Expression
+ //AssignmentCompletion:
+ // op=AssignmentOperator rightHandSide=SequenceElement;
+ public ParserRule getRule() { return rule; }
+
+ //op=AssignmentOperator rightHandSide=SequenceElement
+ public Group getGroup() { return cGroup; }
+
+ //op=AssignmentOperator
+ public Assignment getOpAssignment_0() { return cOpAssignment_0; }
+
+ //AssignmentOperator
+ public RuleCall getOpAssignmentOperatorEnumRuleCall_0_0() { return cOpAssignmentOperatorEnumRuleCall_0_0; }
+
+ //rightHandSide=SequenceElement
+ public Assignment getRightHandSideAssignment_1() { return cRightHandSideAssignment_1; }
+
+ //SequenceElement
+ public RuleCall getRightHandSideSequenceElementParserRuleCall_1_0() { return cRightHandSideSequenceElementParserRuleCall_1_0; }
+ }
+
+
+ public class BooleanValueElements extends AbstractEnumRuleElementFinder {
+ private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "BooleanValue");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final EnumLiteralDeclaration cTRUEEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+ private final Keyword cTRUETrueKeyword_0_0 = (Keyword)cTRUEEnumLiteralDeclaration_0.eContents().get(0);
+ private final EnumLiteralDeclaration cFALSEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+ private final Keyword cFALSEFalseKeyword_1_0 = (Keyword)cFALSEEnumLiteralDeclaration_1.eContents().get(0);
+
+ //enum BooleanValue:
+ // TRUE="true" | FALSE="false";
+ public EnumRule getRule() { return rule; }
+
+ //TRUE="true" | FALSE="false"
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //TRUE="true"
+ public EnumLiteralDeclaration getTRUEEnumLiteralDeclaration_0() { return cTRUEEnumLiteralDeclaration_0; }
+
+ //"true"
+ public Keyword getTRUETrueKeyword_0_0() { return cTRUETrueKeyword_0_0; }
+
+ //FALSE="false"
+ public EnumLiteralDeclaration getFALSEEnumLiteralDeclaration_1() { return cFALSEEnumLiteralDeclaration_1; }
+
+ //"false"
+ public Keyword getFALSEFalseKeyword_1_0() { return cFALSEFalseKeyword_1_0; }
+ }
+
+ public class LinkOperationKindElements extends AbstractEnumRuleElementFinder {
+ private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "LinkOperationKind");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final EnumLiteralDeclaration cCREATEEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+ private final Keyword cCREATECreateLinkKeyword_0_0 = (Keyword)cCREATEEnumLiteralDeclaration_0.eContents().get(0);
+ private final EnumLiteralDeclaration cDESTROYEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+ private final Keyword cDESTROYDestroyLinkKeyword_1_0 = (Keyword)cDESTROYEnumLiteralDeclaration_1.eContents().get(0);
+ private final EnumLiteralDeclaration cCLEAREnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+ private final Keyword cCLEARClearAssocKeyword_2_0 = (Keyword)cCLEAREnumLiteralDeclaration_2.eContents().get(0);
+
+ //enum LinkOperationKind:
+ // CREATE="createLink" | DESTROY="destroyLink" | CLEAR="clearAssoc";
+ public EnumRule getRule() { return rule; }
+
+ //CREATE="createLink" | DESTROY="destroyLink" | CLEAR="clearAssoc"
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //CREATE="createLink"
+ public EnumLiteralDeclaration getCREATEEnumLiteralDeclaration_0() { return cCREATEEnumLiteralDeclaration_0; }
+
+ //"createLink"
+ public Keyword getCREATECreateLinkKeyword_0_0() { return cCREATECreateLinkKeyword_0_0; }
+
+ //DESTROY="destroyLink"
+ public EnumLiteralDeclaration getDESTROYEnumLiteralDeclaration_1() { return cDESTROYEnumLiteralDeclaration_1; }
+
+ //"destroyLink"
+ public Keyword getDESTROYDestroyLinkKeyword_1_0() { return cDESTROYDestroyLinkKeyword_1_0; }
+
+ //CLEAR="clearAssoc"
+ public EnumLiteralDeclaration getCLEAREnumLiteralDeclaration_2() { return cCLEAREnumLiteralDeclaration_2; }
+
+ //"clearAssoc"
+ public Keyword getCLEARClearAssocKeyword_2_0() { return cCLEARClearAssocKeyword_2_0; }
+ }
+
+ public class SelectOrRejectOperatorElements extends AbstractEnumRuleElementFinder {
+ private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "SelectOrRejectOperator");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final EnumLiteralDeclaration cSELECTEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+ private final Keyword cSELECTSelectKeyword_0_0 = (Keyword)cSELECTEnumLiteralDeclaration_0.eContents().get(0);
+ private final EnumLiteralDeclaration cREJECTEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+ private final Keyword cREJECTRejectKeyword_1_0 = (Keyword)cREJECTEnumLiteralDeclaration_1.eContents().get(0);
+
+ //enum SelectOrRejectOperator:
+ // SELECT="select" | REJECT="reject";
+ public EnumRule getRule() { return rule; }
+
+ //SELECT="select" | REJECT="reject"
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //SELECT="select"
+ public EnumLiteralDeclaration getSELECTEnumLiteralDeclaration_0() { return cSELECTEnumLiteralDeclaration_0; }
+
+ //"select"
+ public Keyword getSELECTSelectKeyword_0_0() { return cSELECTSelectKeyword_0_0; }
+
+ //REJECT="reject"
+ public EnumLiteralDeclaration getREJECTEnumLiteralDeclaration_1() { return cREJECTEnumLiteralDeclaration_1; }
+
+ //"reject"
+ public Keyword getREJECTRejectKeyword_1_0() { return cREJECTRejectKeyword_1_0; }
+ }
+
+ public class CollectOrIterateOperatorElements extends AbstractEnumRuleElementFinder {
+ private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "CollectOrIterateOperator");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final EnumLiteralDeclaration cCOLLECTEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+ private final Keyword cCOLLECTCollectKeyword_0_0 = (Keyword)cCOLLECTEnumLiteralDeclaration_0.eContents().get(0);
+ private final EnumLiteralDeclaration cITERATEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+ private final Keyword cITERATEIterateKeyword_1_0 = (Keyword)cITERATEEnumLiteralDeclaration_1.eContents().get(0);
+
+ //enum CollectOrIterateOperator:
+ // COLLECT="collect" | ITERATE="iterate";
+ public EnumRule getRule() { return rule; }
+
+ //COLLECT="collect" | ITERATE="iterate"
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //COLLECT="collect"
+ public EnumLiteralDeclaration getCOLLECTEnumLiteralDeclaration_0() { return cCOLLECTEnumLiteralDeclaration_0; }
+
+ //"collect"
+ public Keyword getCOLLECTCollectKeyword_0_0() { return cCOLLECTCollectKeyword_0_0; }
+
+ //ITERATE="iterate"
+ public EnumLiteralDeclaration getITERATEEnumLiteralDeclaration_1() { return cITERATEEnumLiteralDeclaration_1; }
+
+ //"iterate"
+ public Keyword getITERATEIterateKeyword_1_0() { return cITERATEIterateKeyword_1_0; }
+ }
+
+ public class ForAllOrExistsOrOneOperatorElements extends AbstractEnumRuleElementFinder {
+ private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "ForAllOrExistsOrOneOperator");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final EnumLiteralDeclaration cFORALLEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+ private final Keyword cFORALLForAllKeyword_0_0 = (Keyword)cFORALLEnumLiteralDeclaration_0.eContents().get(0);
+ private final EnumLiteralDeclaration cEXISTSEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+ private final Keyword cEXISTSExistsKeyword_1_0 = (Keyword)cEXISTSEnumLiteralDeclaration_1.eContents().get(0);
+ private final EnumLiteralDeclaration cONEEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+ private final Keyword cONEOneKeyword_2_0 = (Keyword)cONEEnumLiteralDeclaration_2.eContents().get(0);
+
+ //enum ForAllOrExistsOrOneOperator:
+ // FORALL="forAll" | EXISTS="exists" | ONE="one";
+ public EnumRule getRule() { return rule; }
+
+ //FORALL="forAll" | EXISTS="exists" | ONE="one"
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //FORALL="forAll"
+ public EnumLiteralDeclaration getFORALLEnumLiteralDeclaration_0() { return cFORALLEnumLiteralDeclaration_0; }
+
+ //"forAll"
+ public Keyword getFORALLForAllKeyword_0_0() { return cFORALLForAllKeyword_0_0; }
+
+ //EXISTS="exists"
+ public EnumLiteralDeclaration getEXISTSEnumLiteralDeclaration_1() { return cEXISTSEnumLiteralDeclaration_1; }
+
+ //"exists"
+ public Keyword getEXISTSExistsKeyword_1_0() { return cEXISTSExistsKeyword_1_0; }
+
+ //ONE="one"
+ public EnumLiteralDeclaration getONEEnumLiteralDeclaration_2() { return cONEEnumLiteralDeclaration_2; }
+
+ //"one"
+ public Keyword getONEOneKeyword_2_0() { return cONEOneKeyword_2_0; }
+ }
+
+ public class AnnotationKindElements extends AbstractEnumRuleElementFinder {
+ private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "AnnotationKind");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final EnumLiteralDeclaration cISOLATEDEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+ private final Keyword cISOLATEDIsolatedKeyword_0_0 = (Keyword)cISOLATEDEnumLiteralDeclaration_0.eContents().get(0);
+ private final EnumLiteralDeclaration cDETERMINEDEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+ private final Keyword cDETERMINEDDeterminedKeyword_1_0 = (Keyword)cDETERMINEDEnumLiteralDeclaration_1.eContents().get(0);
+ private final EnumLiteralDeclaration cASSUREDEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+ private final Keyword cASSUREDAssuredKeyword_2_0 = (Keyword)cASSUREDEnumLiteralDeclaration_2.eContents().get(0);
+ private final EnumLiteralDeclaration cPARALLELEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+ private final Keyword cPARALLELParallelKeyword_3_0 = (Keyword)cPARALLELEnumLiteralDeclaration_3.eContents().get(0);
+
+ //enum AnnotationKind:
+ // ISOLATED="isolated" | DETERMINED="determined" | ASSURED="assured" | PARALLEL="parallel";
+ public EnumRule getRule() { return rule; }
+
+ //ISOLATED="isolated" | DETERMINED="determined" | ASSURED="assured" | PARALLEL="parallel"
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //ISOLATED="isolated"
+ public EnumLiteralDeclaration getISOLATEDEnumLiteralDeclaration_0() { return cISOLATEDEnumLiteralDeclaration_0; }
+
+ //"isolated"
+ public Keyword getISOLATEDIsolatedKeyword_0_0() { return cISOLATEDIsolatedKeyword_0_0; }
+
+ //DETERMINED="determined"
+ public EnumLiteralDeclaration getDETERMINEDEnumLiteralDeclaration_1() { return cDETERMINEDEnumLiteralDeclaration_1; }
+
+ //"determined"
+ public Keyword getDETERMINEDDeterminedKeyword_1_0() { return cDETERMINEDDeterminedKeyword_1_0; }
+
+ //ASSURED="assured"
+ public EnumLiteralDeclaration getASSUREDEnumLiteralDeclaration_2() { return cASSUREDEnumLiteralDeclaration_2; }
+
+ //"assured"
+ public Keyword getASSUREDAssuredKeyword_2_0() { return cASSUREDAssuredKeyword_2_0; }
+
+ //PARALLEL="parallel"
+ public EnumLiteralDeclaration getPARALLELEnumLiteralDeclaration_3() { return cPARALLELEnumLiteralDeclaration_3; }
+
+ //"parallel"
+ public Keyword getPARALLELParallelKeyword_3_0() { return cPARALLELParallelKeyword_3_0; }
+ }
+
+ public class AssignmentOperatorElements extends AbstractEnumRuleElementFinder {
+ private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "AssignmentOperator");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final EnumLiteralDeclaration cASSIGNEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+ private final Keyword cASSIGNEqualsSignKeyword_0_0 = (Keyword)cASSIGNEnumLiteralDeclaration_0.eContents().get(0);
+ private final EnumLiteralDeclaration cPLUSASSIGNEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+ private final Keyword cPLUSASSIGNPlusSignEqualsSignKeyword_1_0 = (Keyword)cPLUSASSIGNEnumLiteralDeclaration_1.eContents().get(0);
+ private final EnumLiteralDeclaration cMINUSASSIGNEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+ private final Keyword cMINUSASSIGNHyphenMinusEqualsSignKeyword_2_0 = (Keyword)cMINUSASSIGNEnumLiteralDeclaration_2.eContents().get(0);
+ private final EnumLiteralDeclaration cMULTASSIGNEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+ private final Keyword cMULTASSIGNAsteriskEqualsSignKeyword_3_0 = (Keyword)cMULTASSIGNEnumLiteralDeclaration_3.eContents().get(0);
+ private final EnumLiteralDeclaration cMODASSIGNEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
+ private final Keyword cMODASSIGNPercentSignEqualsSignKeyword_4_0 = (Keyword)cMODASSIGNEnumLiteralDeclaration_4.eContents().get(0);
+ private final EnumLiteralDeclaration cDIVASSIGNEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5);
+ private final Keyword cDIVASSIGNSolidusEqualsSignKeyword_5_0 = (Keyword)cDIVASSIGNEnumLiteralDeclaration_5.eContents().get(0);
+ private final EnumLiteralDeclaration cANDASSIGNEnumLiteralDeclaration_6 = (EnumLiteralDeclaration)cAlternatives.eContents().get(6);
+ private final Keyword cANDASSIGNAmpersandEqualsSignKeyword_6_0 = (Keyword)cANDASSIGNEnumLiteralDeclaration_6.eContents().get(0);
+ private final EnumLiteralDeclaration cORASSIGNEnumLiteralDeclaration_7 = (EnumLiteralDeclaration)cAlternatives.eContents().get(7);
+ private final Keyword cORASSIGNVerticalLineEqualsSignKeyword_7_0 = (Keyword)cORASSIGNEnumLiteralDeclaration_7.eContents().get(0);
+ private final EnumLiteralDeclaration cXORASSIGNEnumLiteralDeclaration_8 = (EnumLiteralDeclaration)cAlternatives.eContents().get(8);
+ private final Keyword cXORASSIGNCircumflexAccentEqualsSignKeyword_8_0 = (Keyword)cXORASSIGNEnumLiteralDeclaration_8.eContents().get(0);
+ private final EnumLiteralDeclaration cLSHIFTASSIGNEnumLiteralDeclaration_9 = (EnumLiteralDeclaration)cAlternatives.eContents().get(9);
+ private final Keyword cLSHIFTASSIGNLessThanSignLessThanSignEqualsSignKeyword_9_0 = (Keyword)cLSHIFTASSIGNEnumLiteralDeclaration_9.eContents().get(0);
+ private final EnumLiteralDeclaration cRSHIFTASSIGNEnumLiteralDeclaration_10 = (EnumLiteralDeclaration)cAlternatives.eContents().get(10);
+ private final Keyword cRSHIFTASSIGNGreaterThanSignGreaterThanSignEqualsSignKeyword_10_0 = (Keyword)cRSHIFTASSIGNEnumLiteralDeclaration_10.eContents().get(0);
+ private final EnumLiteralDeclaration cURSHIFTASSIGNEnumLiteralDeclaration_11 = (EnumLiteralDeclaration)cAlternatives.eContents().get(11);
+ private final Keyword cURSHIFTASSIGNGreaterThanSignGreaterThanSignGreaterThanSignEqualsSignKeyword_11_0 = (Keyword)cURSHIFTASSIGNEnumLiteralDeclaration_11.eContents().get(0);
+
+ //enum AssignmentOperator:
+ // ASSIGN="=" | PLUSASSIGN="+=" | MINUSASSIGN="-=" | MULTASSIGN="*=" | MODASSIGN="%=" | DIVASSIGN="/=" | ANDASSIGN="&=" |
+ // ORASSIGN="|=" | XORASSIGN="^=" | LSHIFTASSIGN="<<=" | RSHIFTASSIGN=">>=" | URSHIFTASSIGN=">>>=";
+ public EnumRule getRule() { return rule; }
+
+ //ASSIGN="=" | PLUSASSIGN="+=" | MINUSASSIGN="-=" | MULTASSIGN="*=" | MODASSIGN="%=" | DIVASSIGN="/=" | ANDASSIGN="&=" |
+ //ORASSIGN="|=" | XORASSIGN="^=" | LSHIFTASSIGN="<<=" | RSHIFTASSIGN=">>=" | URSHIFTASSIGN=">>>="
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //ASSIGN="="
+ public EnumLiteralDeclaration getASSIGNEnumLiteralDeclaration_0() { return cASSIGNEnumLiteralDeclaration_0; }
+
+ //"="
+ public Keyword getASSIGNEqualsSignKeyword_0_0() { return cASSIGNEqualsSignKeyword_0_0; }
+
+ //PLUSASSIGN="+="
+ public EnumLiteralDeclaration getPLUSASSIGNEnumLiteralDeclaration_1() { return cPLUSASSIGNEnumLiteralDeclaration_1; }
+
+ //"+="
+ public Keyword getPLUSASSIGNPlusSignEqualsSignKeyword_1_0() { return cPLUSASSIGNPlusSignEqualsSignKeyword_1_0; }
+
+ //MINUSASSIGN="-="
+ public EnumLiteralDeclaration getMINUSASSIGNEnumLiteralDeclaration_2() { return cMINUSASSIGNEnumLiteralDeclaration_2; }
+
+ //"-="
+ public Keyword getMINUSASSIGNHyphenMinusEqualsSignKeyword_2_0() { return cMINUSASSIGNHyphenMinusEqualsSignKeyword_2_0; }
+
+ //MULTASSIGN="*="
+ public EnumLiteralDeclaration getMULTASSIGNEnumLiteralDeclaration_3() { return cMULTASSIGNEnumLiteralDeclaration_3; }
+
+ //"*="
+ public Keyword getMULTASSIGNAsteriskEqualsSignKeyword_3_0() { return cMULTASSIGNAsteriskEqualsSignKeyword_3_0; }
+
+ //MODASSIGN="%="
+ public EnumLiteralDeclaration getMODASSIGNEnumLiteralDeclaration_4() { return cMODASSIGNEnumLiteralDeclaration_4; }
+
+ //"%="
+ public Keyword getMODASSIGNPercentSignEqualsSignKeyword_4_0() { return cMODASSIGNPercentSignEqualsSignKeyword_4_0; }
+
+ //DIVASSIGN="/="
+ public EnumLiteralDeclaration getDIVASSIGNEnumLiteralDeclaration_5() { return cDIVASSIGNEnumLiteralDeclaration_5; }
+
+ //"/="
+ public Keyword getDIVASSIGNSolidusEqualsSignKeyword_5_0() { return cDIVASSIGNSolidusEqualsSignKeyword_5_0; }
+
+ //ANDASSIGN="&="
+ public EnumLiteralDeclaration getANDASSIGNEnumLiteralDeclaration_6() { return cANDASSIGNEnumLiteralDeclaration_6; }
+
+ //"&="
+ public Keyword getANDASSIGNAmpersandEqualsSignKeyword_6_0() { return cANDASSIGNAmpersandEqualsSignKeyword_6_0; }
+
+ //ORASSIGN="|="
+ public EnumLiteralDeclaration getORASSIGNEnumLiteralDeclaration_7() { return cORASSIGNEnumLiteralDeclaration_7; }
+
+ //"|="
+ public Keyword getORASSIGNVerticalLineEqualsSignKeyword_7_0() { return cORASSIGNVerticalLineEqualsSignKeyword_7_0; }
+
+ //XORASSIGN="^="
+ public EnumLiteralDeclaration getXORASSIGNEnumLiteralDeclaration_8() { return cXORASSIGNEnumLiteralDeclaration_8; }
+
+ //"^="
+ public Keyword getXORASSIGNCircumflexAccentEqualsSignKeyword_8_0() { return cXORASSIGNCircumflexAccentEqualsSignKeyword_8_0; }
+
+ //LSHIFTASSIGN="<<="
+ public EnumLiteralDeclaration getLSHIFTASSIGNEnumLiteralDeclaration_9() { return cLSHIFTASSIGNEnumLiteralDeclaration_9; }
+
+ //"<<="
+ public Keyword getLSHIFTASSIGNLessThanSignLessThanSignEqualsSignKeyword_9_0() { return cLSHIFTASSIGNLessThanSignLessThanSignEqualsSignKeyword_9_0; }
+
+ //RSHIFTASSIGN=">>="
+ public EnumLiteralDeclaration getRSHIFTASSIGNEnumLiteralDeclaration_10() { return cRSHIFTASSIGNEnumLiteralDeclaration_10; }
+
+ //">>="
+ public Keyword getRSHIFTASSIGNGreaterThanSignGreaterThanSignEqualsSignKeyword_10_0() { return cRSHIFTASSIGNGreaterThanSignGreaterThanSignEqualsSignKeyword_10_0; }
+
+ //URSHIFTASSIGN=">>>="
+ public EnumLiteralDeclaration getURSHIFTASSIGNEnumLiteralDeclaration_11() { return cURSHIFTASSIGNEnumLiteralDeclaration_11; }
+
+ //">>>="
+ public Keyword getURSHIFTASSIGNGreaterThanSignGreaterThanSignGreaterThanSignEqualsSignKeyword_11_0() { return cURSHIFTASSIGNGreaterThanSignGreaterThanSignGreaterThanSignEqualsSignKeyword_11_0; }
+ }
+
+ private TestElements pTest;
+ private LITERALElements pLITERAL;
+ private BOOLEAN_LITERALElements pBOOLEAN_LITERAL;
+ private BooleanValueElements unknownRuleBooleanValue;
+ private NUMBER_LITERALElements pNUMBER_LITERAL;
+ private INTEGER_LITERALElements pINTEGER_LITERAL;
+ private UNLIMITED_LITERALElements pUNLIMITED_LITERAL;
+ private TerminalRule tIntegerValue;
+ private STRING_LITERALElements pSTRING_LITERAL;
+ private NameExpressionElements pNameExpression;
+ private QualifiedNamePathElements pQualifiedNamePath;
+ private UnqualifiedNameElements pUnqualifiedName;
+ private TemplateBindingElements pTemplateBinding;
+ private NamedTemplateBindingElements pNamedTemplateBinding;
+ private QualifiedNameWithBindingElements pQualifiedNameWithBinding;
+ private TupleElements pTuple;
+ private TupleElementElements pTupleElement;
+ private ExpressionElements pExpression;
+ private ConditionalTestExpressionElements pConditionalTestExpression;
+ private ConditionalOrExpressionElements pConditionalOrExpression;
+ private ConditionalAndExpressionElements pConditionalAndExpression;
+ private InclusiveOrExpressionElements pInclusiveOrExpression;
+ private ExclusiveOrExpressionElements pExclusiveOrExpression;
+ private AndExpressionElements pAndExpression;
+ private EqualityExpressionElements pEqualityExpression;
+ private ClassificationExpressionElements pClassificationExpression;
+ private RelationalExpressionElements pRelationalExpression;
+ private ShiftExpressionElements pShiftExpression;
+ private AdditiveExpressionElements pAdditiveExpression;
+ private MultiplicativeExpressionElements pMultiplicativeExpression;
+ private UnaryExpressionElements pUnaryExpression;
+ private PrimaryExpressionElements pPrimaryExpression;
+ private SuffixExpressionElements pSuffixExpression;
+ private OperationCallExpressionElements pOperationCallExpression;
+ private PropertyCallExpressionElements pPropertyCallExpression;
+ private LinkOperationExpressionElements pLinkOperationExpression;
+ private LinkOperationTupleElements pLinkOperationTuple;
+ private LinkOperationTupleElementElements pLinkOperationTupleElement;
+ private LinkOperationKindElements unknownRuleLinkOperationKind;
+ private SequenceOperationExpressionElements pSequenceOperationExpression;
+ private SequenceReductionExpressionElements pSequenceReductionExpression;
+ private SequenceExpansionExpressionElements pSequenceExpansionExpression;
+ private SelectOrRejectOperationElements pSelectOrRejectOperation;
+ private SelectOrRejectOperatorElements unknownRuleSelectOrRejectOperator;
+ private CollectOrIterateOperationElements pCollectOrIterateOperation;
+ private CollectOrIterateOperatorElements unknownRuleCollectOrIterateOperator;
+ private ForAllOrExistsOrOneOperationElements pForAllOrExistsOrOneOperation;
+ private ForAllOrExistsOrOneOperatorElements unknownRuleForAllOrExistsOrOneOperator;
+ private IsUniqueOperationElements pIsUniqueOperation;
+ private ValueSpecificationElements pValueSpecification;
+ private NonLiteralValueSpecificationElements pNonLiteralValueSpecification;
+ private ParenthesizedExpressionElements pParenthesizedExpression;
+ private NullExpressionElements pNullExpression;
+ private ThisExpressionElements pThisExpression;
+ private SuperInvocationExpressionElements pSuperInvocationExpression;
+ private InstanceCreationExpressionElements pInstanceCreationExpression;
+ private InstanceCreationTupleElements pInstanceCreationTuple;
+ private InstanceCreationTupleElementElements pInstanceCreationTupleElement;
+ private SequenceConstructionOrAccessCompletionElements pSequenceConstructionOrAccessCompletion;
+ private AccessCompletionElements pAccessCompletion;
+ private PartialSequenceConstructionCompletionElements pPartialSequenceConstructionCompletion;
+ private SequenceConstructionExpressionElements pSequenceConstructionExpression;
+ private SequenceElementElements pSequenceElement;
+ private ClassExtentExpressionElements pClassExtentExpression;
+ private BlockElements pBlock;
+ private StatementSequenceElements pStatementSequence;
+ private DocumentedStatementElements pDocumentedStatement;
+ private InlineStatementElements pInlineStatement;
+ private AnnotatedStatementElements pAnnotatedStatement;
+ private StatementElements pStatement;
+ private AnnotationElements pAnnotation;
+ private AnnotationKindElements unknownRuleAnnotationKind;
+ private BlockStatementElements pBlockStatement;
+ private EmptyStatementElements pEmptyStatement;
+ private LocalNameDeclarationStatementElements pLocalNameDeclarationStatement;
+ private IfStatementElements pIfStatement;
+ private SequentialClausesElements pSequentialClauses;
+ private ConcurrentClausesElements pConcurrentClauses;
+ private NonFinalClauseElements pNonFinalClause;
+ private FinalClauseElements pFinalClause;
+ private SwitchStatementElements pSwitchStatement;
+ private SwitchClauseElements pSwitchClause;
+ private SwitchCaseElements pSwitchCase;
+ private SwitchDefaultClauseElements pSwitchDefaultClause;
+ private NonEmptyStatementSequenceElements pNonEmptyStatementSequence;
+ private WhileStatementElements pWhileStatement;
+ private DoStatementElements pDoStatement;
+ private ForStatementElements pForStatement;
+ private ForControlElements pForControl;
+ private LoopVariableDefinitionElements pLoopVariableDefinition;
+ private BreakStatementElements pBreakStatement;
+ private ReturnStatementElements pReturnStatement;
+ private AcceptStatementElements pAcceptStatement;
+ private SimpleAcceptStatementCompletionElements pSimpleAcceptStatementCompletion;
+ private CompoundAcceptStatementCompletionElements pCompoundAcceptStatementCompletion;
+ private AcceptBlockElements pAcceptBlock;
+ private AcceptClauseElements pAcceptClause;
+ private ClassifyStatementElements pClassifyStatement;
+ private ClassificationClauseElements pClassificationClause;
+ private ClassificationFromClauseElements pClassificationFromClause;
+ private ClassificationToClauseElements pClassificationToClause;
+ private ReclassifyAllClauseElements pReclassifyAllClause;
+ private QualifiedNameListElements pQualifiedNameList;
+ private InvocationOrAssignementOrDeclarationStatementElements pInvocationOrAssignementOrDeclarationStatement;
+ private SuperInvocationStatementElements pSuperInvocationStatement;
+ private ThisInvocationStatementElements pThisInvocationStatement;
+ private InstanceCreationInvocationStatementElements pInstanceCreationInvocationStatement;
+ private VariableDeclarationCompletionElements pVariableDeclarationCompletion;
+ private AssignmentCompletionElements pAssignmentCompletion;
+ private AssignmentOperatorElements unknownRuleAssignmentOperator;
+ private TerminalRule tID;
+ private TerminalRule tSTRING;
+ private TerminalRule tML_COMMENT;
+ private TerminalRule tSL_COMMENT;
+
+ private final GrammarProvider grammarProvider;
+
+ private TerminalsGrammarAccess gaTerminals;
+
+ @Inject
+ public AlfGrammarAccess(GrammarProvider grammarProvider,
+ TerminalsGrammarAccess gaTerminals) {
+ this.grammarProvider = grammarProvider;
+ this.gaTerminals = gaTerminals;
+ }
+
+ public Grammar getGrammar() {
+ return grammarProvider.getGrammar(this);
+ }
+
+
+ public TerminalsGrammarAccess getTerminalsGrammarAccess() {
+ return gaTerminals;
+ }
+
+
+ /// *
+ // Test rule
+ // * / Test:
+ // ("testExpression" expression+=Expression)* ("testAssignmentExpression" assignExpression+=AssignmentCompletion)*
+ // ("testStatement" statements+=Statement)* ("testBlock" block=Block);
+ public TestElements getTestAccess() {
+ return (pTest != null) ? pTest : (pTest = new TestElements());
+ }
+
+ public ParserRule getTestRule() {
+ return getTestAccess().getRule();
+ }
+
+ ////('testStatementSequence' statement += StatementSequence)* ;
+ /// *********************************
+ // * PrimitiveLiterals
+ // ********************************** / LITERAL:
+ // BOOLEAN_LITERAL | NUMBER_LITERAL | STRING_LITERAL;
+ public LITERALElements getLITERALAccess() {
+ return (pLITERAL != null) ? pLITERAL : (pLITERAL = new LITERALElements());
+ }
+
+ public ParserRule getLITERALRule() {
+ return getLITERALAccess().getRule();
+ }
+
+ //// (suffix = SuffixExpression) ? ;
+ //BOOLEAN_LITERAL:
+ // value=BooleanValue;
+ public BOOLEAN_LITERALElements getBOOLEAN_LITERALAccess() {
+ return (pBOOLEAN_LITERAL != null) ? pBOOLEAN_LITERAL : (pBOOLEAN_LITERAL = new BOOLEAN_LITERALElements());
+ }
+
+ public ParserRule getBOOLEAN_LITERALRule() {
+ return getBOOLEAN_LITERALAccess().getRule();
+ }
+
+ //enum BooleanValue:
+ // TRUE="true" | FALSE="false";
+ public BooleanValueElements getBooleanValueAccess() {
+ return (unknownRuleBooleanValue != null) ? unknownRuleBooleanValue : (unknownRuleBooleanValue = new BooleanValueElements());
+ }
+
+ public EnumRule getBooleanValueRule() {
+ return getBooleanValueAccess().getRule();
+ }
+
+ //NUMBER_LITERAL:
+ // INTEGER_LITERAL | UNLIMITED_LITERAL;
+ public NUMBER_LITERALElements getNUMBER_LITERALAccess() {
+ return (pNUMBER_LITERAL != null) ? pNUMBER_LITERAL : (pNUMBER_LITERAL = new NUMBER_LITERALElements());
+ }
+
+ public ParserRule getNUMBER_LITERALRule() {
+ return getNUMBER_LITERALAccess().getRule();
+ }
+
+ //// (suffix = SuffixExpression) ? ;
+ //INTEGER_LITERAL:
+ // value=IntegerValue;
+ public INTEGER_LITERALElements getINTEGER_LITERALAccess() {
+ return (pINTEGER_LITERAL != null) ? pINTEGER_LITERAL : (pINTEGER_LITERAL = new INTEGER_LITERALElements());
+ }
+
+ public ParserRule getINTEGER_LITERALRule() {
+ return getINTEGER_LITERALAccess().getRule();
+ }
+
+ //// (suffix = SuffixExpression) ? ;
+ //UNLIMITED_LITERAL:
+ // value="*";
+ public UNLIMITED_LITERALElements getUNLIMITED_LITERALAccess() {
+ return (pUNLIMITED_LITERAL != null) ? pUNLIMITED_LITERAL : (pUNLIMITED_LITERAL = new UNLIMITED_LITERALElements());
+ }
+
+ public ParserRule getUNLIMITED_LITERALRule() {
+ return getUNLIMITED_LITERALAccess().getRule();
+ }
+
+ //terminal IntegerValue:
+ // ("0" | "1".."9" ("_"? "0".."9")*) //DECIMAL
+ // // BINARY
+ // // HEX
+ // // OCT
+ // | ("0b" | "0B") "0".."1" ("_"? "0".."1")* | ("0x" | "0X") ("0".."9" | "a".."f" | "A".."F") ("_"? ("0".."9" | "a".."f" |
+ // "A".."F"))* | "0" "_"? "0".."7" ("_"? "0".."7")*;
+ public TerminalRule getIntegerValueRule() {
+ return (tIntegerValue != null) ? tIntegerValue : (tIntegerValue = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "IntegerValue"));
+ }
+
+ //// (suffix = SuffixExpression) ?;
+ //STRING_LITERAL:
+ // value=STRING;
+ public STRING_LITERALElements getSTRING_LITERALAccess() {
+ return (pSTRING_LITERAL != null) ? pSTRING_LITERAL : (pSTRING_LITERAL = new STRING_LITERALElements());
+ }
+
+ public ParserRule getSTRING_LITERALRule() {
+ return getSTRING_LITERALAccess().getRule();
+ }
+
+ //NameExpression:
+ // (prefixOp=("++" | "--") path=QualifiedNamePath? id=ID | path=QualifiedNamePath? id=ID (invocationCompletion=Tuple |
+ // sequenceConstructionCompletion=SequenceConstructionOrAccessCompletion | postfixOp=("++" | "--"))?)
+ // suffix=SuffixExpression?;
+ public NameExpressionElements getNameExpressionAccess() {
+ return (pNameExpression != null) ? pNameExpression : (pNameExpression = new NameExpressionElements());
+ }
+
+ public ParserRule getNameExpressionRule() {
+ return getNameExpressionAccess().getRule();
+ }
+
+ //QualifiedNamePath:
+ // (namespace+=UnqualifiedName "::")+;
+ public QualifiedNamePathElements getQualifiedNamePathAccess() {
+ return (pQualifiedNamePath != null) ? pQualifiedNamePath : (pQualifiedNamePath = new QualifiedNamePathElements());
+ }
+
+ public ParserRule getQualifiedNamePathRule() {
+ return getQualifiedNamePathAccess().getRule();
+ }
+
+ //UnqualifiedName:
+ // name=ID templateBinding=TemplateBinding?;
+ public UnqualifiedNameElements getUnqualifiedNameAccess() {
+ return (pUnqualifiedName != null) ? pUnqualifiedName : (pUnqualifiedName = new UnqualifiedNameElements());
+ }
+
+ public ParserRule getUnqualifiedNameRule() {
+ return getUnqualifiedNameAccess().getRule();
+ }
+
+ //TemplateBinding:
+ // "<" bindings+=NamedTemplateBinding ("," bindings+=NamedTemplateBinding)* ">";
+ public TemplateBindingElements getTemplateBindingAccess() {
+ return (pTemplateBinding != null) ? pTemplateBinding : (pTemplateBinding = new TemplateBindingElements());
+ }
+
+ public ParserRule getTemplateBindingRule() {
+ return getTemplateBindingAccess().getRule();
+ }
+
+ //NamedTemplateBinding:
+ // formal=ID "=>" actual=QualifiedNameWithBinding;
+ public NamedTemplateBindingElements getNamedTemplateBindingAccess() {
+ return (pNamedTemplateBinding != null) ? pNamedTemplateBinding : (pNamedTemplateBinding = new NamedTemplateBindingElements());
+ }
+
+ public ParserRule getNamedTemplateBindingRule() {
+ return getNamedTemplateBindingAccess().getRule();
+ }
+
+ //QualifiedNameWithBinding:
+ // id=ID binding=TemplateBinding? ("::" remaining=QualifiedNameWithBinding)?;
+ public QualifiedNameWithBindingElements getQualifiedNameWithBindingAccess() {
+ return (pQualifiedNameWithBinding != null) ? pQualifiedNameWithBinding : (pQualifiedNameWithBinding = new QualifiedNameWithBindingElements());
+ }
+
+ public ParserRule getQualifiedNameWithBindingRule() {
+ return getQualifiedNameWithBindingAccess().getRule();
+ }
+
+ //Tuple:
+ // {Tuple} "(" (tupleElements+=TupleElement ("," tupleElements+=TupleElement)*)? ")";
+ public TupleElements getTupleAccess() {
+ return (pTuple != null) ? pTuple : (pTuple = new TupleElements());
+ }
+
+ public ParserRule getTupleRule() {
+ return getTupleAccess().getRule();
+ }
+
+ //TupleElement:
+ // argument=Expression;
+ public TupleElementElements getTupleElementAccess() {
+ return (pTupleElement != null) ? pTupleElement : (pTupleElement = new TupleElementElements());
+ }
+
+ public ParserRule getTupleElementRule() {
+ return getTupleElementAccess().getRule();
+ }
+
+ /// **************
+ // * Expressions
+ // ************** / Expression:
+ // ConditionalTestExpression;
+ public ExpressionElements getExpressionAccess() {
+ return (pExpression != null) ? pExpression : (pExpression = new ExpressionElements());
+ }
+
+ public ParserRule getExpressionRule() {
+ return getExpressionAccess().getRule();
+ }
+
+ //ConditionalTestExpression:
+ // exp=ConditionalOrExpression ("?" whenTrue=ConditionalTestExpression ":" whenFalse=ConditionalTestExpression)?;
+ public ConditionalTestExpressionElements getConditionalTestExpressionAccess() {
+ return (pConditionalTestExpression != null) ? pConditionalTestExpression : (pConditionalTestExpression = new ConditionalTestExpressionElements());
+ }
+
+ public ParserRule getConditionalTestExpressionRule() {
+ return getConditionalTestExpressionAccess().getRule();
+ }
+
+ //ConditionalOrExpression:
+ // exp+=ConditionalAndExpression ("||" exp+=ConditionalAndExpression)*;
+ public ConditionalOrExpressionElements getConditionalOrExpressionAccess() {
+ return (pConditionalOrExpression != null) ? pConditionalOrExpression : (pConditionalOrExpression = new ConditionalOrExpressionElements());
+ }
+
+ public ParserRule getConditionalOrExpressionRule() {
+ return getConditionalOrExpressionAccess().getRule();
+ }
+
+ //ConditionalAndExpression:
+ // exp+=InclusiveOrExpression ("&&" exp+=InclusiveOrExpression)*;
+ public ConditionalAndExpressionElements getConditionalAndExpressionAccess() {
+ return (pConditionalAndExpression != null) ? pConditionalAndExpression : (pConditionalAndExpression = new ConditionalAndExpressionElements());
+ }
+
+ public ParserRule getConditionalAndExpressionRule() {
+ return getConditionalAndExpressionAccess().getRule();
+ }
+
+ //InclusiveOrExpression:
+ // exp+=ExclusiveOrExpression ("|" exp+=ExclusiveOrExpression)*;
+ public InclusiveOrExpressionElements getInclusiveOrExpressionAccess() {
+ return (pInclusiveOrExpression != null) ? pInclusiveOrExpression : (pInclusiveOrExpression = new InclusiveOrExpressionElements());
+ }
+
+ public ParserRule getInclusiveOrExpressionRule() {
+ return getInclusiveOrExpressionAccess().getRule();
+ }
+
+ //ExclusiveOrExpression:
+ // exp+=AndExpression ("^" exp+=AndExpression)*;
+ public ExclusiveOrExpressionElements getExclusiveOrExpressionAccess() {
+ return (pExclusiveOrExpression != null) ? pExclusiveOrExpression : (pExclusiveOrExpression = new ExclusiveOrExpressionElements());
+ }
+
+ public ParserRule getExclusiveOrExpressionRule() {
+ return getExclusiveOrExpressionAccess().getRule();
+ }
+
+ //AndExpression:
+ // exp+=EqualityExpression ("&" exp+=EqualityExpression)*;
+ public AndExpressionElements getAndExpressionAccess() {
+ return (pAndExpression != null) ? pAndExpression : (pAndExpression = new AndExpressionElements());
+ }
+
+ public ParserRule getAndExpressionRule() {
+ return getAndExpressionAccess().getRule();
+ }
+
+ //EqualityExpression:
+ // exp+=ClassificationExpression (op+=("==" | "!=") exp+=ClassificationExpression)*;
+ public EqualityExpressionElements getEqualityExpressionAccess() {
+ return (pEqualityExpression != null) ? pEqualityExpression : (pEqualityExpression = new EqualityExpressionElements());
+ }
+
+ public ParserRule getEqualityExpressionRule() {
+ return getEqualityExpressionAccess().getRule();
+ }
+
+ ////enum EqualityOperator :
+ //// EQUALS = '==' |
+ //// NOT_EQUALS = '!='
+ ////;
+ //ClassificationExpression:
+ // exp=RelationalExpression (op=("instanceof" | "hastype") typeName=NameExpression)?;
+ public ClassificationExpressionElements getClassificationExpressionAccess() {
+ return (pClassificationExpression != null) ? pClassificationExpression : (pClassificationExpression = new ClassificationExpressionElements());
+ }
+
+ public ParserRule getClassificationExpressionRule() {
+ return getClassificationExpressionAccess().getRule();
+ }
+
+ ////enum ClassificationOperator :
+ //// INSTANCEOF = 'instanceof' |
+ //// HASTYPE = 'hastype'
+ ////;
+ //RelationalExpression:
+ // left=ShiftExpression (op=("<" | ">" | "<=" | ">=") right=ShiftExpression)?;
+ public RelationalExpressionElements getRelationalExpressionAccess() {
+ return (pRelationalExpression != null) ? pRelationalExpression : (pRelationalExpression = new RelationalExpressionElements());
+ }
+
+ public ParserRule getRelationalExpressionRule() {
+ return getRelationalExpressionAccess().getRule();
+ }
+
+ ////RelationalOperator :
+ //// LOWER = '<' |
+ //// UPPER = '>' |
+ //// LOWER_EQUALS = '<=' |
+ //// UPPER_EQUALS = '>='
+ ////;
+ //ShiftExpression:
+ // exp+=AdditiveExpression (op=("<<" | ">>" | ">>>") exp+=AdditiveExpression)?;
+ public ShiftExpressionElements getShiftExpressionAccess() {
+ return (pShiftExpression != null) ? pShiftExpression : (pShiftExpression = new ShiftExpressionElements());
+ }
+
+ public ParserRule getShiftExpressionRule() {
+ return getShiftExpressionAccess().getRule();
+ }
+
+ ////enum ShiftOperator :
+ //// LSHIFT = '<<' |
+ //// RSHIFT = '>>' |
+ //// URSHIFT = '>>>'
+ ////;
+ //AdditiveExpression:
+ // exp+=MultiplicativeExpression (op+=("+" | "-") exp+=MultiplicativeExpression)*;
+ public AdditiveExpressionElements getAdditiveExpressionAccess() {
+ return (pAdditiveExpression != null) ? pAdditiveExpression : (pAdditiveExpression = new AdditiveExpressionElements());
+ }
+
+ public ParserRule getAdditiveExpressionRule() {
+ return getAdditiveExpressionAccess().getRule();
+ }
+
+ ////enum AdditiveOp :
+ //// PLUS = '+' |
+ //// MINUS = '-'
+ ////;
+ //MultiplicativeExpression:
+ // exp+=UnaryExpression (op+=("*" | "/" | "%") exp+=UnaryExpression)*;
+ public MultiplicativeExpressionElements getMultiplicativeExpressionAccess() {
+ return (pMultiplicativeExpression != null) ? pMultiplicativeExpression : (pMultiplicativeExpression = new MultiplicativeExpressionElements());
+ }
+
+ public ParserRule getMultiplicativeExpressionRule() {
+ return getMultiplicativeExpressionAccess().getRule();
+ }
+
+ ////enum MultiplicativeOp :
+ //// MULT = '*' |
+ //// DIV = '/' |
+ //// MOD = '%'
+ ////;
+ //UnaryExpression:
+ // op=("!" | "-" | "+" | "$" | "~")? exp=PrimaryExpression;
+ public UnaryExpressionElements getUnaryExpressionAccess() {
+ return (pUnaryExpression != null) ? pUnaryExpression : (pUnaryExpression = new UnaryExpressionElements());
+ }
+
+ public ParserRule getUnaryExpressionRule() {
+ return getUnaryExpressionAccess().getRule();
+ }
+
+ ////PrimaryExpression :
+ //// prefix = ValueSpecification (suffix = SuffixExpression)?
+ ////;
+ //PrimaryExpression:
+ // prefix=ValueSpecification;
+ public PrimaryExpressionElements getPrimaryExpressionAccess() {
+ return (pPrimaryExpression != null) ? pPrimaryExpression : (pPrimaryExpression = new PrimaryExpressionElements());
+ }
+
+ public ParserRule getPrimaryExpressionRule() {
+ return getPrimaryExpressionAccess().getRule();
+ }
+
+ //SuffixExpression:
+ // OperationCallExpression | PropertyCallExpression | LinkOperationExpression | SequenceOperationExpression |
+ // SequenceReductionExpression | SequenceExpansionExpression | ClassExtentExpression;
+ public SuffixExpressionElements getSuffixExpressionAccess() {
+ return (pSuffixExpression != null) ? pSuffixExpression : (pSuffixExpression = new SuffixExpressionElements());
+ }
+
+ public ParserRule getSuffixExpressionRule() {
+ return getSuffixExpressionAccess().getRule();
+ }
+
+ //OperationCallExpression:
+ // "." operationName=ID tuple=Tuple suffix=SuffixExpression?;
+ public OperationCallExpressionElements getOperationCallExpressionAccess() {
+ return (pOperationCallExpression != null) ? pOperationCallExpression : (pOperationCallExpression = new OperationCallExpressionElements());
+ }
+
+ public ParserRule getOperationCallExpressionRule() {
+ return getOperationCallExpressionAccess().getRule();
+ }
+
+ //// OperationCallExpressionWithoutDot :
+ //// operationName = ID tuple = Tuple (suffix = SuffixExpression)?
+ //// ;
+ //PropertyCallExpression:
+ // "." propertyName=ID ("[" index=Expression "]")? suffix=SuffixExpression?;
+ public PropertyCallExpressionElements getPropertyCallExpressionAccess() {
+ return (pPropertyCallExpression != null) ? pPropertyCallExpression : (pPropertyCallExpression = new PropertyCallExpressionElements());
+ }
+
+ public ParserRule getPropertyCallExpressionRule() {
+ return getPropertyCallExpressionAccess().getRule();
+ }
+
+ //LinkOperationExpression:
+ // "." kind=LinkOperationKind tuple=LinkOperationTuple;
+ public LinkOperationExpressionElements getLinkOperationExpressionAccess() {
+ return (pLinkOperationExpression != null) ? pLinkOperationExpression : (pLinkOperationExpression = new LinkOperationExpressionElements());
+ }
+
+ public ParserRule getLinkOperationExpressionRule() {
+ return getLinkOperationExpressionAccess().getRule();
+ }
+
+ //LinkOperationTuple:
+ // "(" linkOperationTupleElement+=LinkOperationTupleElement ("," linkOperationTupleElement+=LinkOperationTupleElement)*
+ // ")";
+ public LinkOperationTupleElements getLinkOperationTupleAccess() {
+ return (pLinkOperationTuple != null) ? pLinkOperationTuple : (pLinkOperationTuple = new LinkOperationTupleElements());
+ }
+
+ public ParserRule getLinkOperationTupleRule() {
+ return getLinkOperationTupleAccess().getRule();
+ }
+
+ ////LinkOperationTupleElement :
+ //// objectOrRole = ID (('['roleIndex = Expression ']')? '=>' object = ID)?
+ ////;
+ //LinkOperationTupleElement:
+ // role=ID ("[" roleIndex=Expression "]")? "=>" object=Expression;
+ public LinkOperationTupleElementElements getLinkOperationTupleElementAccess() {
+ return (pLinkOperationTupleElement != null) ? pLinkOperationTupleElement : (pLinkOperationTupleElement = new LinkOperationTupleElementElements());
+ }
+
+ public ParserRule getLinkOperationTupleElementRule() {
+ return getLinkOperationTupleElementAccess().getRule();
+ }
+
+ //enum LinkOperationKind:
+ // CREATE="createLink" | DESTROY="destroyLink" | CLEAR="clearAssoc";
+ public LinkOperationKindElements getLinkOperationKindAccess() {
+ return (unknownRuleLinkOperationKind != null) ? unknownRuleLinkOperationKind : (unknownRuleLinkOperationKind = new LinkOperationKindElements());
+ }
+
+ public EnumRule getLinkOperationKindRule() {
+ return getLinkOperationKindAccess().getRule();
+ }
+
+ //SequenceOperationExpression: //'->' operationName = ID tuple = Tuple (suffix = SuffixExpression) ?
+ // "->" operationName=QualifiedNameWithBinding tuple=Tuple suffix=SuffixExpression?;
+ public SequenceOperationExpressionElements getSequenceOperationExpressionAccess() {
+ return (pSequenceOperationExpression != null) ? pSequenceOperationExpression : (pSequenceOperationExpression = new SequenceOperationExpressionElements());
+ }
+
+ public ParserRule getSequenceOperationExpressionRule() {
+ return getSequenceOperationExpressionAccess().getRule();
+ }
+
+ //SequenceReductionExpression:
+ // "->" "reduce" isOrdered?="ordered"? behavior=QualifiedNameWithBinding suffix=SuffixExpression?;
+ public SequenceReductionExpressionElements getSequenceReductionExpressionAccess() {
+ return (pSequenceReductionExpression != null) ? pSequenceReductionExpression : (pSequenceReductionExpression = new SequenceReductionExpressionElements());
+ }
+
+ public ParserRule getSequenceReductionExpressionRule() {
+ return getSequenceReductionExpressionAccess().getRule();
+ }
+
+ //SequenceExpansionExpression:
+ // SelectOrRejectOperation | CollectOrIterateOperation | ForAllOrExistsOrOneOperation | IsUniqueOperation;
+ public SequenceExpansionExpressionElements getSequenceExpansionExpressionAccess() {
+ return (pSequenceExpansionExpression != null) ? pSequenceExpansionExpression : (pSequenceExpansionExpression = new SequenceExpansionExpressionElements());
+ }
+
+ public ParserRule getSequenceExpansionExpressionRule() {
+ return getSequenceExpansionExpressionAccess().getRule();
+ }
+
+ //SelectOrRejectOperation:
+ // "->" op=SelectOrRejectOperator name=ID "(" expr=Expression ")" suffix=SuffixExpression?;
+ public SelectOrRejectOperationElements getSelectOrRejectOperationAccess() {
+ return (pSelectOrRejectOperation != null) ? pSelectOrRejectOperation : (pSelectOrRejectOperation = new SelectOrRejectOperationElements());
+ }
+
+ public ParserRule getSelectOrRejectOperationRule() {
+ return getSelectOrRejectOperationAccess().getRule();
+ }
+
+ //enum SelectOrRejectOperator:
+ // SELECT="select" | REJECT="reject";
+ public SelectOrRejectOperatorElements getSelectOrRejectOperatorAccess() {
+ return (unknownRuleSelectOrRejectOperator != null) ? unknownRuleSelectOrRejectOperator : (unknownRuleSelectOrRejectOperator = new SelectOrRejectOperatorElements());
+ }
+
+ public EnumRule getSelectOrRejectOperatorRule() {
+ return getSelectOrRejectOperatorAccess().getRule();
+ }
+
+ //CollectOrIterateOperation:
+ // "->" op=CollectOrIterateOperator name=ID "(" expr=Expression ")" suffix=SuffixExpression?;
+ public CollectOrIterateOperationElements getCollectOrIterateOperationAccess() {
+ return (pCollectOrIterateOperation != null) ? pCollectOrIterateOperation : (pCollectOrIterateOperation = new CollectOrIterateOperationElements());
+ }
+
+ public ParserRule getCollectOrIterateOperationRule() {
+ return getCollectOrIterateOperationAccess().getRule();
+ }
+
+ //enum CollectOrIterateOperator:
+ // COLLECT="collect" | ITERATE="iterate";
+ public CollectOrIterateOperatorElements getCollectOrIterateOperatorAccess() {
+ return (unknownRuleCollectOrIterateOperator != null) ? unknownRuleCollectOrIterateOperator : (unknownRuleCollectOrIterateOperator = new CollectOrIterateOperatorElements());
+ }
+
+ public EnumRule getCollectOrIterateOperatorRule() {
+ return getCollectOrIterateOperatorAccess().getRule();
+ }
+
+ //ForAllOrExistsOrOneOperation:
+ // "->" op=ForAllOrExistsOrOneOperator name=ID "(" expr=Expression ")" suffix=SuffixExpression?;
+ public ForAllOrExistsOrOneOperationElements getForAllOrExistsOrOneOperationAccess() {
+ return (pForAllOrExistsOrOneOperation != null) ? pForAllOrExistsOrOneOperation : (pForAllOrExistsOrOneOperation = new ForAllOrExistsOrOneOperationElements());
+ }
+
+ public ParserRule getForAllOrExistsOrOneOperationRule() {
+ return getForAllOrExistsOrOneOperationAccess().getRule();
+ }
+
+ //enum ForAllOrExistsOrOneOperator:
+ // FORALL="forAll" | EXISTS="exists" | ONE="one";
+ public ForAllOrExistsOrOneOperatorElements getForAllOrExistsOrOneOperatorAccess() {
+ return (unknownRuleForAllOrExistsOrOneOperator != null) ? unknownRuleForAllOrExistsOrOneOperator : (unknownRuleForAllOrExistsOrOneOperator = new ForAllOrExistsOrOneOperatorElements());
+ }
+
+ public EnumRule getForAllOrExistsOrOneOperatorRule() {
+ return getForAllOrExistsOrOneOperatorAccess().getRule();
+ }
+
+ //IsUniqueOperation:
+ // "->" "isUnique" name=ID "(" expr=Expression ")" suffix=SuffixExpression?;
+ public IsUniqueOperationElements getIsUniqueOperationAccess() {
+ return (pIsUniqueOperation != null) ? pIsUniqueOperation : (pIsUniqueOperation = new IsUniqueOperationElements());
+ }
+
+ public ParserRule getIsUniqueOperationRule() {
+ return getIsUniqueOperationAccess().getRule();
+ }
+
+ //ValueSpecification:
+ // NameExpression | LITERAL | ThisExpression | SuperInvocationExpression | InstanceCreationExpression |
+ // ParenthesizedExpression | NullExpression;
+ public ValueSpecificationElements getValueSpecificationAccess() {
+ return (pValueSpecification != null) ? pValueSpecification : (pValueSpecification = new ValueSpecificationElements());
+ }
+
+ public ParserRule getValueSpecificationRule() {
+ return getValueSpecificationAccess().getRule();
+ }
+
+ //NonLiteralValueSpecification:
+ // NameExpression | ParenthesizedExpression | InstanceCreationExpression | ThisExpression | SuperInvocationExpression;
+ public NonLiteralValueSpecificationElements getNonLiteralValueSpecificationAccess() {
+ return (pNonLiteralValueSpecification != null) ? pNonLiteralValueSpecification : (pNonLiteralValueSpecification = new NonLiteralValueSpecificationElements());
+ }
+
+ public ParserRule getNonLiteralValueSpecificationRule() {
+ return getNonLiteralValueSpecificationAccess().getRule();
+ }
+
+ //ParenthesizedExpression:
+ // "(" expOrTypeCast=Expression ")" (casted=NonLiteralValueSpecification | suffix=SuffixExpression)?;
+ public ParenthesizedExpressionElements getParenthesizedExpressionAccess() {
+ return (pParenthesizedExpression != null) ? pParenthesizedExpression : (pParenthesizedExpression = new ParenthesizedExpressionElements());
+ }
+
+ public ParserRule getParenthesizedExpressionRule() {
+ return getParenthesizedExpressionAccess().getRule();
+ }
+
+ //NullExpression:
+ // {NullExpression} "null";
+ public NullExpressionElements getNullExpressionAccess() {
+ return (pNullExpression != null) ? pNullExpression : (pNullExpression = new NullExpressionElements());
+ }
+
+ public ParserRule getNullExpressionRule() {
+ return getNullExpressionAccess().getRule();
+ }
+
+ //ThisExpression:
+ // {ThisExpression} "this" suffix=SuffixExpression?;
+ public ThisExpressionElements getThisExpressionAccess() {
+ return (pThisExpression != null) ? pThisExpression : (pThisExpression = new ThisExpressionElements());
+ }
+
+ public ParserRule getThisExpressionRule() {
+ return getThisExpressionAccess().getRule();
+ }
+
+ //// SuperInvocationExpression :
+ //// //{SuperInvocationExpression} 'super' ('.' qualifiedNameRoot = ID '::' qualifiedNameRemaining = NameExpression)? //(suffix = SuffixExpression) ?
+ //// 'super' ('.' className = ID '::' operationCallWithoutDot = OperationCallExpressionWithoutDot | operationCall = OperationCallExpression)
+ ////;
+ //SuperInvocationExpression: //{SuperInvocationExpression} 'super' ('.' qualifiedNameRoot = ID '::' qualifiedNameRemaining = NameExpression)? //(suffix = SuffixExpression) ?
+ ////'super' ('.' className = ID '::' operationCallWithoutDot = OperationCallExpressionWithoutDot | operationCall = OperationCallExpression)
+ ////'super' ((tuple = Tuple) |
+ //// ('.' (path = QualifiedNamePath) operation = ID tuple = Tuple))
+ // "super" (tuple=Tuple | "." operationName=QualifiedNameWithBinding tuple=Tuple);
+ public SuperInvocationExpressionElements getSuperInvocationExpressionAccess() {
+ return (pSuperInvocationExpression != null) ? pSuperInvocationExpression : (pSuperInvocationExpression = new SuperInvocationExpressionElements());
+ }
+
+ public ParserRule getSuperInvocationExpressionRule() {
+ return getSuperInvocationExpressionAccess().getRule();
+ }
+
+ ////InstanceCreationExpression :
+ ////'new' constructor=QualifiedNameWithBinding
+ //// (tuple = Tuple | sequenceConstuctionCompletion = SequenceConstructionCompletion) (suffix = SuffixExpression) ?
+ ////'new' constructor=QualifiedNameWithBinding
+ //// tuple = Tuple (suffix = SuffixExpression) ?
+ ////;
+ //InstanceCreationExpression: //'new' constructor=QualifiedNameWithBinding
+ //// (tuple = Tuple | sequenceConstuctionCompletion = SequenceConstructionCompletion) (suffix = SuffixExpression) ?
+ // "new" constructor=QualifiedNameWithBinding tuple=InstanceCreationTuple suffix=SuffixExpression?;
+ public InstanceCreationExpressionElements getInstanceCreationExpressionAccess() {
+ return (pInstanceCreationExpression != null) ? pInstanceCreationExpression : (pInstanceCreationExpression = new InstanceCreationExpressionElements());
+ }
+
+ public ParserRule getInstanceCreationExpressionRule() {
+ return getInstanceCreationExpressionAccess().getRule();
+ }
+
+ //InstanceCreationTuple:
+ // {InstanceCreationTuple} "(" (instanceCreationTupleElement+=InstanceCreationTupleElement (","
+ // instanceCreationTupleElement+=InstanceCreationTupleElement)*)? ")";
+ public InstanceCreationTupleElements getInstanceCreationTupleAccess() {
+ return (pInstanceCreationTuple != null) ? pInstanceCreationTuple : (pInstanceCreationTuple = new InstanceCreationTupleElements());
+ }
+
+ public ParserRule getInstanceCreationTupleRule() {
+ return getInstanceCreationTupleAccess().getRule();
+ }
+
+ ////LinkOperationTupleElement :
+ //// objectOrRole = ID (('['roleIndex = Expression ']')? '=>' object = ID)?
+ ////;
+ //InstanceCreationTupleElement:
+ // role=ID "=>" object=Expression;
+ public InstanceCreationTupleElementElements getInstanceCreationTupleElementAccess() {
+ return (pInstanceCreationTupleElement != null) ? pInstanceCreationTupleElement : (pInstanceCreationTupleElement = new InstanceCreationTupleElementElements());
+ }
+
+ public ParserRule getInstanceCreationTupleElementRule() {
+ return getInstanceCreationTupleElementAccess().getRule();
+ }
+
+ //SequenceConstructionOrAccessCompletion:
+ // multiplicityIndicator?="[" (accessCompletion=AccessCompletion |
+ // sequenceCompletion=PartialSequenceConstructionCompletion) | expression=SequenceConstructionExpression;
+ public SequenceConstructionOrAccessCompletionElements getSequenceConstructionOrAccessCompletionAccess() {
+ return (pSequenceConstructionOrAccessCompletion != null) ? pSequenceConstructionOrAccessCompletion : (pSequenceConstructionOrAccessCompletion = new SequenceConstructionOrAccessCompletionElements());
+ }
+
+ public ParserRule getSequenceConstructionOrAccessCompletionRule() {
+ return getSequenceConstructionOrAccessCompletionAccess().getRule();
+ }
+
+ //AccessCompletion:
+ // accessIndex=Expression "]";
+ public AccessCompletionElements getAccessCompletionAccess() {
+ return (pAccessCompletion != null) ? pAccessCompletion : (pAccessCompletion = new AccessCompletionElements());
+ }
+
+ public ParserRule getAccessCompletionRule() {
+ return getAccessCompletionAccess().getRule();
+ }
+
+ //PartialSequenceConstructionCompletion:
+ // "]" expression=SequenceConstructionExpression;
+ public PartialSequenceConstructionCompletionElements getPartialSequenceConstructionCompletionAccess() {
+ return (pPartialSequenceConstructionCompletion != null) ? pPartialSequenceConstructionCompletion : (pPartialSequenceConstructionCompletion = new PartialSequenceConstructionCompletionElements());
+ }
+
+ public ParserRule getPartialSequenceConstructionCompletionRule() {
+ return getPartialSequenceConstructionCompletionAccess().getRule();
+ }
+
+ ////SequenceConstructionCompletion :
+ //// (multiplicityIndicator ?= '['']')? expression = SequenceConstructionExpression
+ ////;
+ //SequenceConstructionExpression:
+ // "{" sequenceElement+=SequenceElement (("," sequenceElement+=SequenceElement)* | ".." rangeUpper=Expression) "}";
+ public SequenceConstructionExpressionElements getSequenceConstructionExpressionAccess() {
+ return (pSequenceConstructionExpression != null) ? pSequenceConstructionExpression : (pSequenceConstructionExpression = new SequenceConstructionExpressionElements());
+ }
+
+ public ParserRule getSequenceConstructionExpressionRule() {
+ return getSequenceConstructionExpressionAccess().getRule();
+ }
+
+ //SequenceElement:
+ // Expression | SequenceConstructionExpression;
+ public SequenceElementElements getSequenceElementAccess() {
+ return (pSequenceElement != null) ? pSequenceElement : (pSequenceElement = new SequenceElementElements());
+ }
+
+ public ParserRule getSequenceElementRule() {
+ return getSequenceElementAccess().getRule();
+ }
+
+ //ClassExtentExpression:
+ // {ClassExtentExpression} "." "allInstances" "(" ")";
+ public ClassExtentExpressionElements getClassExtentExpressionAccess() {
+ return (pClassExtentExpression != null) ? pClassExtentExpression : (pClassExtentExpression = new ClassExtentExpressionElements());
+ }
+
+ public ParserRule getClassExtentExpressionRule() {
+ return getClassExtentExpressionAccess().getRule();
+ }
+
+ /// *****************
+ // * Statements
+ // **************** / Block:
+ // "{" {Block} sequence=StatementSequence? "}";
+ public BlockElements getBlockAccess() {
+ return (pBlock != null) ? pBlock : (pBlock = new BlockElements());
+ }
+
+ public ParserRule getBlockRule() {
+ return getBlockAccess().getRule();
+ }
+
+ //StatementSequence:
+ // statements+=DocumentedStatement+;
+ public StatementSequenceElements getStatementSequenceAccess() {
+ return (pStatementSequence != null) ? pStatementSequence : (pStatementSequence = new StatementSequenceElements());
+ }
+
+ public ParserRule getStatementSequenceRule() {
+ return getStatementSequenceAccess().getRule();
+ }
+
+ //DocumentedStatement:
+ // comment=(ML_COMMENT | SL_COMMENT)? statement=Statement;
+ public DocumentedStatementElements getDocumentedStatementAccess() {
+ return (pDocumentedStatement != null) ? pDocumentedStatement : (pDocumentedStatement = new DocumentedStatementElements());
+ }
+
+ public ParserRule getDocumentedStatementRule() {
+ return getDocumentedStatementAccess().getRule();
+ }
+
+ //InlineStatement:
+ // "/ *@" "inline" "(" langageName=ID ")" body=STRING "* /";
+ public InlineStatementElements getInlineStatementAccess() {
+ return (pInlineStatement != null) ? pInlineStatement : (pInlineStatement = new InlineStatementElements());
+ }
+
+ public ParserRule getInlineStatementRule() {
+ return getInlineStatementAccess().getRule();
+ }
+
+ //AnnotatedStatement:
+ // "//@" annotation= //block = Block
+ // Annotation statement=Statement;
+ public AnnotatedStatementElements getAnnotatedStatementAccess() {
+ return (pAnnotatedStatement != null) ? pAnnotatedStatement : (pAnnotatedStatement = new AnnotatedStatementElements());
+ }
+
+ public ParserRule getAnnotatedStatementRule() {
+ return getAnnotatedStatementAccess().getRule();
+ }
+
+ //Statement:
+ // AnnotatedStatement | InlineStatement | BlockStatement | EmptyStatement | LocalNameDeclarationStatement | IfStatement |
+ // SwitchStatement | WhileStatement | DoStatement | ForStatement | BreakStatement | ReturnStatement | AcceptStatement |
+ // ClassifyStatement | InvocationOrAssignementOrDeclarationStatement | SuperInvocationStatement | ThisInvocationStatement
+ // | InstanceCreationInvocationStatement;
+ public StatementElements getStatementAccess() {
+ return (pStatement != null) ? pStatement : (pStatement = new StatementElements());
+ }
+
+ public ParserRule getStatementRule() {
+ return getStatementAccess().getRule();
+ }
+
+ //Annotation:
+ // kind=AnnotationKind ("(" args+=ID ("," args+=ID)* ")")?;
+ public AnnotationElements getAnnotationAccess() {
+ return (pAnnotation != null) ? pAnnotation : (pAnnotation = new AnnotationElements());
+ }
+
+ public ParserRule getAnnotationRule() {
+ return getAnnotationAccess().getRule();
+ }
+
+ //enum AnnotationKind:
+ // ISOLATED="isolated" | DETERMINED="determined" | ASSURED="assured" | PARALLEL="parallel";
+ public AnnotationKindElements getAnnotationKindAccess() {
+ return (unknownRuleAnnotationKind != null) ? unknownRuleAnnotationKind : (unknownRuleAnnotationKind = new AnnotationKindElements());
+ }
+
+ public EnumRule getAnnotationKindRule() {
+ return getAnnotationKindAccess().getRule();
+ }
+
+ //BlockStatement:
+ // block=Block;
+ public BlockStatementElements getBlockStatementAccess() {
+ return (pBlockStatement != null) ? pBlockStatement : (pBlockStatement = new BlockStatementElements());
+ }
+
+ public ParserRule getBlockStatementRule() {
+ return getBlockStatementAccess().getRule();
+ }
+
+ //EmptyStatement:
+ // {EmptyStatement} ";";
+ public EmptyStatementElements getEmptyStatementAccess() {
+ return (pEmptyStatement != null) ? pEmptyStatement : (pEmptyStatement = new EmptyStatementElements());
+ }
+
+ public ParserRule getEmptyStatementRule() {
+ return getEmptyStatementAccess().getRule();
+ }
+
+ //LocalNameDeclarationStatement:
+ // "let" varName=ID ":" type=QualifiedNameWithBinding (multiplicityIndicator?="[" "]")? //'=' init = Expression ';'
+ // "=" init=SequenceElement ";";
+ public LocalNameDeclarationStatementElements getLocalNameDeclarationStatementAccess() {
+ return (pLocalNameDeclarationStatement != null) ? pLocalNameDeclarationStatement : (pLocalNameDeclarationStatement = new LocalNameDeclarationStatementElements());
+ }
+
+ public ParserRule getLocalNameDeclarationStatementRule() {
+ return getLocalNameDeclarationStatementAccess().getRule();
+ }
+
+ //IfStatement:
+ // "if" sequentialClausses=SequentialClauses finalClause=FinalClause?;
+ public IfStatementElements getIfStatementAccess() {
+ return (pIfStatement != null) ? pIfStatement : (pIfStatement = new IfStatementElements());
+ }
+
+ public ParserRule getIfStatementRule() {
+ return getIfStatementAccess().getRule();
+ }
+
+ //SequentialClauses:
+ // conccurentClauses+=ConcurrentClauses ("else" "if" conccurentClauses+=ConcurrentClauses)*;
+ public SequentialClausesElements getSequentialClausesAccess() {
+ return (pSequentialClauses != null) ? pSequentialClauses : (pSequentialClauses = new SequentialClausesElements());
+ }
+
+ public ParserRule getSequentialClausesRule() {
+ return getSequentialClausesAccess().getRule();
+ }
+
+ //ConcurrentClauses:
+ // nonFinalClause+=NonFinalClause ("or" "if" nonFinalClause+=NonFinalClause)*;
+ public ConcurrentClausesElements getConcurrentClausesAccess() {
+ return (pConcurrentClauses != null) ? pConcurrentClauses : (pConcurrentClauses = new ConcurrentClausesElements());
+ }
+
+ public ParserRule getConcurrentClausesRule() {
+ return getConcurrentClausesAccess().getRule();
+ }
+
+ //NonFinalClause:
+ // "(" condition=Expression ")" block=Block;
+ public NonFinalClauseElements getNonFinalClauseAccess() {
+ return (pNonFinalClause != null) ? pNonFinalClause : (pNonFinalClause = new NonFinalClauseElements());
+ }
+
+ public ParserRule getNonFinalClauseRule() {
+ return getNonFinalClauseAccess().getRule();
+ }
+
+ //FinalClause:
+ // "else" block=Block;
+ public FinalClauseElements getFinalClauseAccess() {
+ return (pFinalClause != null) ? pFinalClause : (pFinalClause = new FinalClauseElements());
+ }
+
+ public ParserRule getFinalClauseRule() {
+ return getFinalClauseAccess().getRule();
+ }
+
+ //SwitchStatement:
+ // "switch" "(" expression=Expression ")" "{" switchClause+=SwitchClause* defaultClause=SwitchDefaultClause? "}";
+ public SwitchStatementElements getSwitchStatementAccess() {
+ return (pSwitchStatement != null) ? pSwitchStatement : (pSwitchStatement = new SwitchStatementElements());
+ }
+
+ public ParserRule getSwitchStatementRule() {
+ return getSwitchStatementAccess().getRule();
+ }
+
+ //SwitchClause:
+ // switchCase+=SwitchCase switchCase+=SwitchCase* statementSequence=NonEmptyStatementSequence;
+ public SwitchClauseElements getSwitchClauseAccess() {
+ return (pSwitchClause != null) ? pSwitchClause : (pSwitchClause = new SwitchClauseElements());
+ }
+
+ public ParserRule getSwitchClauseRule() {
+ return getSwitchClauseAccess().getRule();
+ }
+
+ //SwitchCase:
+ // "case" expression=Expression ":";
+ public SwitchCaseElements getSwitchCaseAccess() {
+ return (pSwitchCase != null) ? pSwitchCase : (pSwitchCase = new SwitchCaseElements());
+ }
+
+ public ParserRule getSwitchCaseRule() {
+ return getSwitchCaseAccess().getRule();
+ }
+
+ //SwitchDefaultClause:
+ // "default" ":" statementSequence=NonEmptyStatementSequence;
+ public SwitchDefaultClauseElements getSwitchDefaultClauseAccess() {
+ return (pSwitchDefaultClause != null) ? pSwitchDefaultClause : (pSwitchDefaultClause = new SwitchDefaultClauseElements());
+ }
+
+ public ParserRule getSwitchDefaultClauseRule() {
+ return getSwitchDefaultClauseAccess().getRule();
+ }
+
+ //NonEmptyStatementSequence:
+ // statement+=DocumentedStatement+;
+ public NonEmptyStatementSequenceElements getNonEmptyStatementSequenceAccess() {
+ return (pNonEmptyStatementSequence != null) ? pNonEmptyStatementSequence : (pNonEmptyStatementSequence = new NonEmptyStatementSequenceElements());
+ }
+
+ public ParserRule getNonEmptyStatementSequenceRule() {
+ return getNonEmptyStatementSequenceAccess().getRule();
+ }
+
+ /// * WHILE STATEMENTS * / WhileStatement:
+ // "while" "(" condition=Expression ")" block=Block;
+ public WhileStatementElements getWhileStatementAccess() {
+ return (pWhileStatement != null) ? pWhileStatement : (pWhileStatement = new WhileStatementElements());
+ }
+
+ public ParserRule getWhileStatementRule() {
+ return getWhileStatementAccess().getRule();
+ }
+
+ /// * DO STATEMENTS * / DoStatement:
+ // "do" block=Block "while" "(" condition=Expression ")" ";";
+ public DoStatementElements getDoStatementAccess() {
+ return (pDoStatement != null) ? pDoStatement : (pDoStatement = new DoStatementElements());
+ }
+
+ public ParserRule getDoStatementRule() {
+ return getDoStatementAccess().getRule();
+ }
+
+ /// * FOR STATEMENTS * / ForStatement:
+ // "for" "(" control=ForControl ")" block=Block;
+ public ForStatementElements getForStatementAccess() {
+ return (pForStatement != null) ? pForStatement : (pForStatement = new ForStatementElements());
+ }
+
+ public ParserRule getForStatementRule() {
+ return getForStatementAccess().getRule();
+ }
+
+ //ForControl:
+ // loopVariableDefinition+=LoopVariableDefinition ("," loopVariableDefinition+=LoopVariableDefinition)*;
+ public ForControlElements getForControlAccess() {
+ return (pForControl != null) ? pForControl : (pForControl = new ForControlElements());
+ }
+
+ public ParserRule getForControlRule() {
+ return getForControlAccess().getRule();
+ }
+
+ //LoopVariableDefinition:
+ // name=ID "in" expression1=Expression (".." expression2=Expression)? | type=QualifiedNameWithBinding name=ID ":"
+ // expression=Expression;
+ public LoopVariableDefinitionElements getLoopVariableDefinitionAccess() {
+ return (pLoopVariableDefinition != null) ? pLoopVariableDefinition : (pLoopVariableDefinition = new LoopVariableDefinitionElements());
+ }
+
+ public ParserRule getLoopVariableDefinitionRule() {
+ return getLoopVariableDefinitionAccess().getRule();
+ }
+
+ /// * BREAK STATEMENTS * / BreakStatement:
+ // {BreakStatement} "break" ";";
+ public BreakStatementElements getBreakStatementAccess() {
+ return (pBreakStatement != null) ? pBreakStatement : (pBreakStatement = new BreakStatementElements());
+ }
+
+ public ParserRule getBreakStatementRule() {
+ return getBreakStatementAccess().getRule();
+ }
+
+ /// * RETURN STATEMENTS * / ReturnStatement:
+ // "return" expression=Expression ";";
+ public ReturnStatementElements getReturnStatementAccess() {
+ return (pReturnStatement != null) ? pReturnStatement : (pReturnStatement = new ReturnStatementElements());
+ }
+
+ public ParserRule getReturnStatementRule() {
+ return getReturnStatementAccess().getRule();
+ }
+
+ /// * ACCEPT STATEMENTS * / AcceptStatement:
+ // clause=AcceptClause (simpleAccept=SimpleAcceptStatementCompletion | compoundAccept=CompoundAcceptStatementCompletion);
+ public AcceptStatementElements getAcceptStatementAccess() {
+ return (pAcceptStatement != null) ? pAcceptStatement : (pAcceptStatement = new AcceptStatementElements());
+ }
+
+ public ParserRule getAcceptStatementRule() {
+ return getAcceptStatementAccess().getRule();
+ }
+
+ //SimpleAcceptStatementCompletion:
+ // {SimpleAcceptStatementCompletion} ";";
+ public SimpleAcceptStatementCompletionElements getSimpleAcceptStatementCompletionAccess() {
+ return (pSimpleAcceptStatementCompletion != null) ? pSimpleAcceptStatementCompletion : (pSimpleAcceptStatementCompletion = new SimpleAcceptStatementCompletionElements());
+ }
+
+ public ParserRule getSimpleAcceptStatementCompletionRule() {
+ return getSimpleAcceptStatementCompletionAccess().getRule();
+ }
+
+ //CompoundAcceptStatementCompletion:
+ // block=Block ("or" acceptBlock+=AcceptBlock)*;
+ public CompoundAcceptStatementCompletionElements getCompoundAcceptStatementCompletionAccess() {
+ return (pCompoundAcceptStatementCompletion != null) ? pCompoundAcceptStatementCompletion : (pCompoundAcceptStatementCompletion = new CompoundAcceptStatementCompletionElements());
+ }
+
+ public ParserRule getCompoundAcceptStatementCompletionRule() {
+ return getCompoundAcceptStatementCompletionAccess().getRule();
+ }
+
+ //AcceptBlock:
+ // clause=AcceptClause block=Block;
+ public AcceptBlockElements getAcceptBlockAccess() {
+ return (pAcceptBlock != null) ? pAcceptBlock : (pAcceptBlock = new AcceptBlockElements());
+ }
+
+ public ParserRule getAcceptBlockRule() {
+ return getAcceptBlockAccess().getRule();
+ }
+
+ //AcceptClause:
+ // "accept" "(" (name=ID ":")? qualifiedNameList=QualifiedNameList ")";
+ public AcceptClauseElements getAcceptClauseAccess() {
+ return (pAcceptClause != null) ? pAcceptClause : (pAcceptClause = new AcceptClauseElements());
+ }
+
+ public ParserRule getAcceptClauseRule() {
+ return getAcceptClauseAccess().getRule();
+ }
+
+ /// * CLASSIFY STATEMENTS * / ClassifyStatement:
+ // "classify" expression=Expression clause=ClassificationClause ";";
+ public ClassifyStatementElements getClassifyStatementAccess() {
+ return (pClassifyStatement != null) ? pClassifyStatement : (pClassifyStatement = new ClassifyStatementElements());
+ }
+
+ public ParserRule getClassifyStatementRule() {
+ return getClassifyStatementAccess().getRule();
+ }
+
+ //ClassificationClause:
+ // classifyFromClause=ClassificationFromClause classifyToClause=ClassificationToClause? |
+ // reclassyAllClause=ReclassifyAllClause? classifyToClause=ClassificationToClause;
+ public ClassificationClauseElements getClassificationClauseAccess() {
+ return (pClassificationClause != null) ? pClassificationClause : (pClassificationClause = new ClassificationClauseElements());
+ }
+
+ public ParserRule getClassificationClauseRule() {
+ return getClassificationClauseAccess().getRule();
+ }
+
+ //ClassificationFromClause:
+ // "from" qualifiedNameList=QualifiedNameList;
+ public ClassificationFromClauseElements getClassificationFromClauseAccess() {
+ return (pClassificationFromClause != null) ? pClassificationFromClause : (pClassificationFromClause = new ClassificationFromClauseElements());
+ }
+
+ public ParserRule getClassificationFromClauseRule() {
+ return getClassificationFromClauseAccess().getRule();
+ }
+
+ //ClassificationToClause:
+ // "to" qualifiedNameList=QualifiedNameList;
+ public ClassificationToClauseElements getClassificationToClauseAccess() {
+ return (pClassificationToClause != null) ? pClassificationToClause : (pClassificationToClause = new ClassificationToClauseElements());
+ }
+
+ public ParserRule getClassificationToClauseRule() {
+ return getClassificationToClauseAccess().getRule();
+ }
+
+ //ReclassifyAllClause:
+ // {ReclassifyAllClause} "from" "*";
+ public ReclassifyAllClauseElements getReclassifyAllClauseAccess() {
+ return (pReclassifyAllClause != null) ? pReclassifyAllClause : (pReclassifyAllClause = new ReclassifyAllClauseElements());
+ }
+
+ public ParserRule getReclassifyAllClauseRule() {
+ return getReclassifyAllClauseAccess().getRule();
+ }
+
+ //QualifiedNameList:
+ // qualifiedName+=QualifiedNameWithBinding ("," qualifiedName+=QualifiedNameWithBinding)*;
+ public QualifiedNameListElements getQualifiedNameListAccess() {
+ return (pQualifiedNameList != null) ? pQualifiedNameList : (pQualifiedNameList = new QualifiedNameListElements());
+ }
+
+ public ParserRule getQualifiedNameListRule() {
+ return getQualifiedNameListAccess().getRule();
+ }
+
+ //InvocationOrAssignementOrDeclarationStatement:
+ // typePart_OR_assignedPart_OR_invocationPart=NameExpression (variableDeclarationCompletion=VariableDeclarationCompletion //(suffixCompletion = SuffixCompletion)?
+ // | assignmentCompletion=AssignmentCompletion)? ";";
+ public InvocationOrAssignementOrDeclarationStatementElements getInvocationOrAssignementOrDeclarationStatementAccess() {
+ return (pInvocationOrAssignementOrDeclarationStatement != null) ? pInvocationOrAssignementOrDeclarationStatement : (pInvocationOrAssignementOrDeclarationStatement = new InvocationOrAssignementOrDeclarationStatementElements());
+ }
+
+ public ParserRule getInvocationOrAssignementOrDeclarationStatementRule() {
+ return getInvocationOrAssignementOrDeclarationStatementAccess().getRule();
+ }
+
+ //SuperInvocationStatement:
+ // _super=SuperInvocationExpression //(suffix = SuffixCompletion)? ';'
+ // ";";
+ public SuperInvocationStatementElements getSuperInvocationStatementAccess() {
+ return (pSuperInvocationStatement != null) ? pSuperInvocationStatement : (pSuperInvocationStatement = new SuperInvocationStatementElements());
+ }
+
+ public ParserRule getSuperInvocationStatementRule() {
+ return getSuperInvocationStatementAccess().getRule();
+ }
+
+ //ThisInvocationStatement: //_this = ThisExpression suffix = SuffixCompletion (assignmentCompletion = AssignmentCompletion)? ';'
+ // _this=ThisExpression assignmentCompletion=AssignmentCompletion? ";";
+ public ThisInvocationStatementElements getThisInvocationStatementAccess() {
+ return (pThisInvocationStatement != null) ? pThisInvocationStatement : (pThisInvocationStatement = new ThisInvocationStatementElements());
+ }
+
+ public ParserRule getThisInvocationStatementRule() {
+ return getThisInvocationStatementAccess().getRule();
+ }
+
+ //InstanceCreationInvocationStatement:
+ // _new=InstanceCreationExpression //(suffix = SuffixCompletion)? ';'
+ // ";";
+ public InstanceCreationInvocationStatementElements getInstanceCreationInvocationStatementAccess() {
+ return (pInstanceCreationInvocationStatement != null) ? pInstanceCreationInvocationStatement : (pInstanceCreationInvocationStatement = new InstanceCreationInvocationStatementElements());
+ }
+
+ public ParserRule getInstanceCreationInvocationStatementRule() {
+ return getInstanceCreationInvocationStatementAccess().getRule();
+ }
+
+ ////SuffixCompletion :
+ //// suffix = SuffixExpression
+ ////;
+ //VariableDeclarationCompletion:
+ // (multiplicityIndicator?="[" "]")? variableName=ID initValue=AssignmentCompletion;
+ public VariableDeclarationCompletionElements getVariableDeclarationCompletionAccess() {
+ return (pVariableDeclarationCompletion != null) ? pVariableDeclarationCompletion : (pVariableDeclarationCompletion = new VariableDeclarationCompletionElements());
+ }
+
+ public ParserRule getVariableDeclarationCompletionRule() {
+ return getVariableDeclarationCompletionAccess().getRule();
+ }
+
+ ////op=('=' | '+=' | '-=' | '*=' | '%=' | '/=' | '&=' |
+ //// '|=' | '^=' | '<<=' | '>>=' | '>>>=') rightHandSide = Expression
+ //AssignmentCompletion:
+ // op=AssignmentOperator rightHandSide=SequenceElement;
+ public AssignmentCompletionElements getAssignmentCompletionAccess() {
+ return (pAssignmentCompletion != null) ? pAssignmentCompletion : (pAssignmentCompletion = new AssignmentCompletionElements());
+ }
+
+ public ParserRule getAssignmentCompletionRule() {
+ return getAssignmentCompletionAccess().getRule();
+ }
+
+ //enum AssignmentOperator:
+ // ASSIGN="=" | PLUSASSIGN="+=" | MINUSASSIGN="-=" | MULTASSIGN="*=" | MODASSIGN="%=" | DIVASSIGN="/=" | ANDASSIGN="&=" |
+ // ORASSIGN="|=" | XORASSIGN="^=" | LSHIFTASSIGN="<<=" | RSHIFTASSIGN=">>=" | URSHIFTASSIGN=">>>=";
+ public AssignmentOperatorElements getAssignmentOperatorAccess() {
+ return (unknownRuleAssignmentOperator != null) ? unknownRuleAssignmentOperator : (unknownRuleAssignmentOperator = new AssignmentOperatorElements());
+ }
+
+ public EnumRule getAssignmentOperatorRule() {
+ return getAssignmentOperatorAccess().getRule();
+ }
+
+ /// ****************
+ // * Terminals
+ // ***************** / //terminal DOUBLE_COLON : '::' ;
+ //terminal ID:
+ // ("a".."z" | "A".."Z" | "_") ("a".."z" | "A".."Z" | "_" | "0".."9")* | "\'"->"\'";
+ public TerminalRule getIDRule() {
+ return (tID != null) ? tID : (tID = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "ID"));
+ }
+
+ //terminal STRING:
+ // "\"" ("\\" ("b" | "t" | "n" | "f" | "r" | "\"" | "\'" | "\\") | !("\\" | "\""))* "\"";
+ public TerminalRule getSTRINGRule() {
+ return (tSTRING != null) ? tSTRING : (tSTRING = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "STRING"));
+ }
+
+ //terminal ML_COMMENT:
+ // "/ *" !"@"->"* /";
+ public TerminalRule getML_COMMENTRule() {
+ return (tML_COMMENT != null) ? tML_COMMENT : (tML_COMMENT = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "ML_COMMENT"));
+ }
+
+ ////terminal IDENTIFIER : ID ;
+ ////terminal IDENTIFIER : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')* | ('\'' -> '\'') ;
+ ////terminal DOCUMENTATION_COMMENT : '/ *' -> '* /' ;
+ ////terminal ML_COMMENT : '/°' -> '°/';
+ ////terminal SL_COMMENT : '°°' !('\n'|'\r')* ('\r'? '\n')?;
+ ////terminal WS : (' '|'\t'|'\r'|'\n')+; terminal SL_COMMENT:
+ // "//" !("\n" | "\r" | "@")* ("\r"? "\n")?;
+ public TerminalRule getSL_COMMENTRule() {
+ return (tSL_COMMENT != null) ? tSL_COMMENT : (tSL_COMMENT = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "SL_COMMENT"));
+ }
+
+ //terminal INT returns ecore::EInt:
+ // "0".."9"+;
+ public TerminalRule getINTRule() {
+ return gaTerminals.getINTRule();
+ }
+
+ //terminal WS:
+ // (" " | "\t" | "\r" | "\n")+;
+ public TerminalRule getWSRule() {
+ return gaTerminals.getWSRule();
+ }
+
+ //terminal ANY_OTHER:
+ // .;
+ public TerminalRule getANY_OTHERRule() {
+ return gaTerminals.getANY_OTHERRule();
+ }
+}
diff --git a/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/validation/AbstractAlfJavaValidator.java b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/validation/AbstractAlfJavaValidator.java
new file mode 100644
index 00000000000..b1b014f4a52
--- /dev/null
+++ b/extraplugins/alf09/src-gen/org/eclipse/papyrus/alf/validation/AbstractAlfJavaValidator.java
@@ -0,0 +1,20 @@
+package org.eclipse.papyrus.alf.validation;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.xtext.validation.AbstractDeclarativeValidator;
+import org.eclipse.xtext.validation.ComposedChecks;
+
+@ComposedChecks(validators= {org.eclipse.xtext.validation.ImportUriValidator.class})
+public class AbstractAlfJavaValidator extends AbstractDeclarativeValidator {
+
+ @Override
+ protected List<EPackage> getEPackages() {
+ List<EPackage> result = new ArrayList<EPackage>();
+ result.add(org.eclipse.papyrus.alf.alf.AlfPackage.eINSTANCE);
+ return result;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/Alf.xtext b/extraplugins/alf09/src/org/eclipse/papyrus/alf/Alf.xtext
new file mode 100644
index 00000000000..614ce459b29
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/Alf.xtext
@@ -0,0 +1,640 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+
+grammar org.eclipse.papyrus.alf.Alf with org.eclipse.xtext.common.Terminals
+
+generate alf "http://www.eclipse.org/papyrus/alf/Alf"
+
+/*
+ Test rule
+*/
+Test :
+ ('testExpression' expression += Expression)*
+ ('testAssignmentExpression' assignExpression += AssignmentCompletion)*
+ ('testStatement' statements += Statement)*
+ ('testBlock' block = Block);
+ //('testStatementSequence' statement += StatementSequence)* ;
+
+/*********************************
+* PrimitiveLiterals
+**********************************/
+
+LITERAL:
+ BOOLEAN_LITERAL |
+ NUMBER_LITERAL |
+ STRING_LITERAL
+;
+
+BOOLEAN_LITERAL :
+ value = BooleanValue ; // (suffix = SuffixExpression) ? ;
+
+enum BooleanValue :
+ TRUE = 'true' |
+ FALSE = 'false' ;
+
+NUMBER_LITERAL :
+ INTEGER_LITERAL | UNLIMITED_LITERAL ;
+
+INTEGER_LITERAL :
+ value = IntegerValue ; // (suffix = SuffixExpression) ? ;
+
+UNLIMITED_LITERAL :
+ value = '*' ; // (suffix = SuffixExpression) ? ;
+
+terminal IntegerValue :
+ ('0' | '1'..'9' (('_')? '0'..'9')*) | //DECIMAL
+ (('0b' | '0B') '0'..'1' (('_')? '0'..'1')*) | // BINARY
+ (('0x'|'0X') ('0'..'9'|'a'..'f'|'A'..'F') (('_')? ('0'..'9'|'a'..'f'|'A'..'F'))*) | // HEX
+ ('0' ('_')? '0'..'7' (('_')? '0'..'7')*) // OCT
+;
+
+STRING_LITERAL :
+ value = STRING ; // (suffix = SuffixExpression) ?;
+
+NameExpression :
+ (((prefixOp = ('++'|'--') (path=QualifiedNamePath)? id = ID))
+ |
+ ((path=QualifiedNamePath)? id = ID
+ (invocationCompletion = Tuple
+ | sequenceConstructionCompletion = SequenceConstructionOrAccessCompletion
+ | postfixOp = ('++'|'--'))?)) (suffix = SuffixExpression) ?
+ ;
+
+QualifiedNamePath :
+ (namespace+=UnqualifiedName'::')+
+;
+
+UnqualifiedName :
+ name = ID (templateBinding = TemplateBinding)?
+;
+
+TemplateBinding :
+ '<'bindings+=NamedTemplateBinding (',' bindings +=NamedTemplateBinding)*'>'
+;
+
+NamedTemplateBinding :
+ formal = ID '=>' actual = QualifiedNameWithBinding
+;
+
+QualifiedNameWithBinding :
+ id = ID (binding=TemplateBinding)? ('::' remaining=QualifiedNameWithBinding)?;
+
+Tuple :
+ {Tuple}'('(tupleElements += TupleElement (',' tupleElements+=TupleElement)*)?')'
+;
+
+TupleElement :
+ argument = Expression
+;
+
+/**************
+ * Expressions
+ **************/
+
+Expression :
+ ConditionalTestExpression
+;
+
+ConditionalTestExpression :
+ exp=ConditionalOrExpression ('?' whenTrue=ConditionalTestExpression ':' whenFalse=ConditionalTestExpression)?
+;
+
+ConditionalOrExpression :
+ exp+=ConditionalAndExpression ('||' exp+=ConditionalAndExpression)*
+;
+
+ConditionalAndExpression :
+ exp+=InclusiveOrExpression ('&&' exp+=InclusiveOrExpression)*
+;
+
+InclusiveOrExpression :
+ exp+=ExclusiveOrExpression ('|' exp+=ExclusiveOrExpression)*
+;
+
+ExclusiveOrExpression :
+ exp+=AndExpression ('^' exp+=AndExpression)*
+;
+
+AndExpression :
+ exp+=EqualityExpression ('&' exp+=EqualityExpression)*
+;
+
+EqualityExpression :
+ exp+=ClassificationExpression (op+=('==' | '!=') exp+=ClassificationExpression)*
+;
+
+//enum EqualityOperator :
+// EQUALS = '==' |
+// NOT_EQUALS = '!='
+//;
+
+ClassificationExpression :
+ exp=RelationalExpression (op=('instanceof' | 'hastype') typeName=NameExpression)?
+;
+
+//enum ClassificationOperator :
+// INSTANCEOF = 'instanceof' |
+// HASTYPE = 'hastype'
+//;
+
+RelationalExpression :
+ left=ShiftExpression (op=('<' | '>' | '<=' | '>=') right=ShiftExpression)?
+;
+
+//RelationalOperator :
+// LOWER = '<' |
+// UPPER = '>' |
+// LOWER_EQUALS = '<=' |
+// UPPER_EQUALS = '>='
+//;
+
+ShiftExpression :
+ exp+=AdditiveExpression (op=('<<' | '>>' | '>>>') exp+=AdditiveExpression)?
+;
+
+//enum ShiftOperator :
+// LSHIFT = '<<' |
+// RSHIFT = '>>' |
+// URSHIFT = '>>>'
+//;
+
+AdditiveExpression :
+ exp+=MultiplicativeExpression (op+=('+' | '-') exp+=MultiplicativeExpression)*
+;
+
+//enum AdditiveOp :
+// PLUS = '+' |
+// MINUS = '-'
+//;
+
+MultiplicativeExpression :
+ exp+=UnaryExpression (op+=('*' | '/' | '%') exp+=UnaryExpression)*
+;
+
+//enum MultiplicativeOp :
+// MULT = '*' |
+// DIV = '/' |
+// MOD = '%'
+//;
+
+UnaryExpression:
+ (op=('!'|'-'|'+'|'$'|'~'))?
+ exp=PrimaryExpression ;
+
+//PrimaryExpression :
+// prefix = ValueSpecification (suffix = SuffixExpression)?
+//;
+
+PrimaryExpression :
+ prefix = ValueSpecification
+;
+
+SuffixExpression :
+ OperationCallExpression |
+ PropertyCallExpression |
+ LinkOperationExpression |
+ SequenceOperationExpression |
+ SequenceReductionExpression |
+ SequenceExpansionExpression |
+ ClassExtentExpression
+;
+
+OperationCallExpression :
+ '.' operationName = ID tuple = Tuple (suffix = SuffixExpression)?
+;
+
+// OperationCallExpressionWithoutDot :
+// operationName = ID tuple = Tuple (suffix = SuffixExpression)?
+// ;
+
+PropertyCallExpression :
+ '.' propertyName = ID ('[' index=Expression ']')? (suffix = SuffixExpression)?
+;
+
+LinkOperationExpression :
+ '.' kind = LinkOperationKind tuple = LinkOperationTuple
+;
+
+LinkOperationTuple :
+ '('linkOperationTupleElement += LinkOperationTupleElement (',' linkOperationTupleElement += LinkOperationTupleElement)*')'
+;
+
+//LinkOperationTupleElement :
+// objectOrRole = ID (('['roleIndex = Expression ']')? '=>' object = ID)?
+//;
+
+LinkOperationTupleElement :
+ role = ID ('['roleIndex = Expression ']')? '=>' object = Expression
+;
+
+enum LinkOperationKind :
+ CREATE = 'createLink' |
+ DESTROY = 'destroyLink' |
+ CLEAR = 'clearAssoc'
+;
+
+SequenceOperationExpression :
+ //'->' operationName = ID tuple = Tuple (suffix = SuffixExpression) ?
+ '->' operationName = QualifiedNameWithBinding tuple = Tuple (suffix = SuffixExpression) ?
+;
+
+SequenceReductionExpression :
+ '->' 'reduce' (isOrdered ?= 'ordered')? behavior = QualifiedNameWithBinding (suffix = SuffixExpression) ?
+;
+
+SequenceExpansionExpression :
+ SelectOrRejectOperation |
+ CollectOrIterateOperation |
+ ForAllOrExistsOrOneOperation |
+ IsUniqueOperation
+;
+
+SelectOrRejectOperation :
+ '->' op = SelectOrRejectOperator name = ID '('expr=Expression')' (suffix = SuffixExpression) ?
+;
+
+enum SelectOrRejectOperator :
+ SELECT = 'select' |
+ REJECT = 'reject'
+;
+
+CollectOrIterateOperation :
+ '->' op = CollectOrIterateOperator name = ID '('expr=Expression')' (suffix = SuffixExpression) ?
+;
+
+enum CollectOrIterateOperator :
+ COLLECT = 'collect' |
+ ITERATE = 'iterate'
+;
+
+ForAllOrExistsOrOneOperation :
+ '->' op = ForAllOrExistsOrOneOperator name = ID '('expr=Expression')' (suffix = SuffixExpression) ?
+;
+
+enum ForAllOrExistsOrOneOperator :
+ FORALL = 'forAll' |
+ EXISTS = 'exists' |
+ ONE = 'one'
+;
+
+IsUniqueOperation :
+ '->' 'isUnique' name = ID '('expr=Expression')' (suffix = SuffixExpression) ?
+;
+
+ValueSpecification :
+ NameExpression |
+ LITERAL |
+ ThisExpression |
+ SuperInvocationExpression |
+ InstanceCreationExpression |
+ ParenthesizedExpression |
+ NullExpression
+ ;
+
+NonLiteralValueSpecification :
+ NameExpression |
+ ParenthesizedExpression |
+ InstanceCreationExpression |
+ ThisExpression |
+ SuperInvocationExpression
+;
+
+ParenthesizedExpression :
+ '('expOrTypeCast = Expression')' ((casted = NonLiteralValueSpecification) | (suffix = SuffixExpression))?
+;
+
+NullExpression :
+ {NullExpression} 'null'
+;
+
+ThisExpression :
+ {ThisExpression}'this' (suffix = SuffixExpression)?
+;
+
+// SuperInvocationExpression :
+// //{SuperInvocationExpression} 'super' ('.' qualifiedNameRoot = ID '::' qualifiedNameRemaining = NameExpression)? //(suffix = SuffixExpression) ?
+// 'super' ('.' className = ID '::' operationCallWithoutDot = OperationCallExpressionWithoutDot | operationCall = OperationCallExpression)
+//;
+
+SuperInvocationExpression :
+ //{SuperInvocationExpression} 'super' ('.' qualifiedNameRoot = ID '::' qualifiedNameRemaining = NameExpression)? //(suffix = SuffixExpression) ?
+ //'super' ('.' className = ID '::' operationCallWithoutDot = OperationCallExpressionWithoutDot | operationCall = OperationCallExpression)
+ //'super' ((tuple = Tuple) |
+ // ('.' (path = QualifiedNamePath) operation = ID tuple = Tuple))
+ 'super' ((tuple = Tuple) |
+ ('.' operationName = QualifiedNameWithBinding tuple = Tuple))
+;
+
+//InstanceCreationExpression :
+ //'new' constructor=QualifiedNameWithBinding
+ // (tuple = Tuple | sequenceConstuctionCompletion = SequenceConstructionCompletion) (suffix = SuffixExpression) ?
+ //'new' constructor=QualifiedNameWithBinding
+ // tuple = Tuple (suffix = SuffixExpression) ?
+//;
+
+InstanceCreationExpression :
+ //'new' constructor=QualifiedNameWithBinding
+ // (tuple = Tuple | sequenceConstuctionCompletion = SequenceConstructionCompletion) (suffix = SuffixExpression) ?
+ 'new' constructor=QualifiedNameWithBinding
+ tuple = InstanceCreationTuple (suffix = SuffixExpression) ?
+;
+
+InstanceCreationTuple :
+ {InstanceCreationTuple}'('(instanceCreationTupleElement += InstanceCreationTupleElement (',' instanceCreationTupleElement += InstanceCreationTupleElement)*)?')'
+;
+
+//LinkOperationTupleElement :
+// objectOrRole = ID (('['roleIndex = Expression ']')? '=>' object = ID)?
+//;
+
+InstanceCreationTupleElement :
+ role = ID '=>' object = Expression
+;
+
+SequenceConstructionOrAccessCompletion :
+ (multiplicityIndicator ?= '[' ((accessCompletion = AccessCompletion) | sequenceCompletion = PartialSequenceConstructionCompletion)) |
+ (expression = SequenceConstructionExpression)
+;
+
+AccessCompletion :
+ accessIndex = Expression ']'
+;
+
+PartialSequenceConstructionCompletion :
+ ']' expression = SequenceConstructionExpression
+;
+
+//SequenceConstructionCompletion :
+// (multiplicityIndicator ?= '['']')? expression = SequenceConstructionExpression
+//;
+
+SequenceConstructionExpression :
+ '{'sequenceElement+=SequenceElement
+ ((',' sequenceElement+=SequenceElement)* | ('..' rangeUpper=Expression))
+ '}'
+;
+
+SequenceElement :
+ Expression | SequenceConstructionExpression
+;
+
+ClassExtentExpression :
+ {ClassExtentExpression} '.' 'allInstances' '(' ')'
+;
+
+/*****************
+ * Statements
+ ****************/
+
+Block :
+ '{' {Block}(sequence = StatementSequence)? '}'
+;
+
+StatementSequence :
+ (statements += DocumentedStatement)+
+;
+
+DocumentedStatement :
+ (comment = (ML_COMMENT | SL_COMMENT))? statement = Statement
+;
+
+InlineStatement :
+ '/*@' 'inline' '('langageName = ID')' body = STRING '*/'
+;
+
+AnnotatedStatement :
+ '//@' annotation = Annotation //block = Block
+ statement = Statement
+;
+
+Statement :
+ (AnnotatedStatement |
+ InlineStatement |
+ BlockStatement |
+ EmptyStatement |
+ LocalNameDeclarationStatement |
+ IfStatement |
+ SwitchStatement |
+ WhileStatement |
+ DoStatement |
+ ForStatement |
+ BreakStatement |
+ ReturnStatement |
+ AcceptStatement |
+ ClassifyStatement |
+ InvocationOrAssignementOrDeclarationStatement |
+ SuperInvocationStatement |
+ ThisInvocationStatement |
+ InstanceCreationInvocationStatement)
+;
+
+Annotation :
+ kind = AnnotationKind ('('args += ID (',' args += ID)* ')')?
+;
+
+enum AnnotationKind :
+ ISOLATED = 'isolated' |
+ DETERMINED = 'determined' |
+ ASSURED = 'assured' |
+ PARALLEL = 'parallel'
+;
+
+
+
+BlockStatement :
+ block = Block
+;
+
+EmptyStatement :
+ {EmptyStatement} ';'
+;
+
+LocalNameDeclarationStatement :
+ 'let' varName = ID ':'
+ type = QualifiedNameWithBinding
+ (multiplicityIndicator?='[' ']')?
+ //'=' init = Expression ';'
+ '=' init = SequenceElement ';'
+;
+
+IfStatement :
+ 'if' sequentialClausses = SequentialClauses ( finalClause = FinalClause )? ;
+
+SequentialClauses :
+ conccurentClauses += ConcurrentClauses
+ ( 'else' 'if' conccurentClauses += ConcurrentClauses )* ;
+
+ConcurrentClauses :
+ nonFinalClause += NonFinalClause
+ ( 'or' 'if' nonFinalClause += NonFinalClause )* ;
+
+NonFinalClause :
+ '(' condition = Expression ')' block = Block ;
+
+FinalClause :
+ 'else' block = Block ;
+
+
+SwitchStatement :
+ 'switch' '(' expression = Expression ')' '{'
+ ( switchClause += SwitchClause )*
+ ( defaultClause = SwitchDefaultClause )?
+ '}' ;
+
+SwitchClause :
+ switchCase += SwitchCase ( switchCase += SwitchCase )* statementSequence = NonEmptyStatementSequence ;
+
+SwitchCase :
+ 'case' expression = Expression ':' ;
+
+SwitchDefaultClause :
+ 'default' ':' statementSequence = NonEmptyStatementSequence ;
+
+NonEmptyStatementSequence :
+ ( statement += DocumentedStatement )+ ;
+
+/* WHILE STATEMENTS */
+WhileStatement :
+ 'while' '(' condition = Expression ')' block = Block ;
+
+/* DO STATEMENTS */
+DoStatement :
+ 'do' block = Block 'while' '(' condition = Expression ')' ';' ;
+
+/* FOR STATEMENTS */
+ForStatement :
+ 'for' '(' control = ForControl ')' block = Block ;
+
+ForControl :
+ loopVariableDefinition += LoopVariableDefinition( ',' loopVariableDefinition += LoopVariableDefinition )* ;
+
+LoopVariableDefinition :
+ (name = ID 'in' expression1 = Expression ( '..' expression2 = Expression )?)
+ | (type = QualifiedNameWithBinding name = ID ':' expression = Expression) ;
+
+/* BREAK STATEMENTS */
+BreakStatement :
+ {BreakStatement}'break' ';' ;
+
+/* RETURN STATEMENTS */
+ReturnStatement :
+ 'return' expression = Expression ';' ;
+
+/* ACCEPT STATEMENTS */
+AcceptStatement :
+ clause = AcceptClause
+ ( simpleAccept = SimpleAcceptStatementCompletion
+ | compoundAccept = CompoundAcceptStatementCompletion ) ;
+
+SimpleAcceptStatementCompletion :
+ {SimpleAcceptStatementCompletion}';' ;
+
+CompoundAcceptStatementCompletion :
+ block = Block ( 'or' acceptBlock += AcceptBlock )* ;
+
+AcceptBlock :
+ clause = AcceptClause block = Block ;
+
+AcceptClause :
+ 'accept' '(' ( name = ID ':' )? qualifiedNameList = QualifiedNameList ')' ;
+
+/* CLASSIFY STATEMENTS */
+ClassifyStatement :
+ 'classify' expression = Expression clause = ClassificationClause ';' ;
+
+ClassificationClause :
+ classifyFromClause = ClassificationFromClause ( classifyToClause = ClassificationToClause )?
+ | ( reclassyAllClause = ReclassifyAllClause )? classifyToClause = ClassificationToClause ;
+
+ClassificationFromClause :
+ 'from' qualifiedNameList = QualifiedNameList ;
+
+ClassificationToClause :
+ 'to' qualifiedNameList = QualifiedNameList ;
+
+ReclassifyAllClause :
+ {ReclassifyAllClause}'from' '*' ;
+
+QualifiedNameList :
+ qualifiedName += QualifiedNameWithBinding ( ',' qualifiedName += QualifiedNameWithBinding )* ;
+
+InvocationOrAssignementOrDeclarationStatement :
+ typePart_OR_assignedPart_OR_invocationPart = NameExpression
+ //(suffixCompletion = SuffixCompletion)?
+ ((variableDeclarationCompletion = VariableDeclarationCompletion) |
+ (assignmentCompletion = AssignmentCompletion))? ';'
+;
+
+SuperInvocationStatement :
+ _super = SuperInvocationExpression ';'//(suffix = SuffixCompletion)? ';'
+;
+
+ThisInvocationStatement :
+ //_this = ThisExpression suffix = SuffixCompletion (assignmentCompletion = AssignmentCompletion)? ';'
+ _this = ThisExpression (assignmentCompletion = AssignmentCompletion)? ';'
+;
+
+InstanceCreationInvocationStatement :
+ _new = InstanceCreationExpression ';' //(suffix = SuffixCompletion)? ';'
+;
+
+//SuffixCompletion :
+// suffix = SuffixExpression
+//;
+
+VariableDeclarationCompletion :
+ (multiplicityIndicator ?= '[' ']')? variableName = ID initValue = AssignmentCompletion
+;
+
+AssignmentCompletion :
+ op=AssignmentOperator rightHandSide = SequenceElement
+ //op=('=' | '+=' | '-=' | '*=' | '%=' | '/=' | '&=' |
+ // '|=' | '^=' | '<<=' | '>>=' | '>>>=') rightHandSide = Expression
+;
+
+enum AssignmentOperator :
+ ASSIGN = '=' |
+ PLUSASSIGN = '+=' |
+ MINUSASSIGN = '-=' |
+ MULTASSIGN = '*=' |
+ MODASSIGN = '%=' |
+ DIVASSIGN = '/=' |
+ ANDASSIGN = '&=' |
+ ORASSIGN = '|=' |
+ XORASSIGN = '^=' |
+ LSHIFTASSIGN = '<<=' |
+ RSHIFTASSIGN = '>>=' |
+ URSHIFTASSIGN = '>>>='
+;
+
+/****************
+* Terminals
+*****************/
+
+//terminal DOUBLE_COLON : '::' ;
+
+terminal ID : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')* | ('\'' -> '\'') ;
+terminal STRING : '"' ( '\\' ('b'|'t'|'n'|'f'|'r'|'"'|"'"|'\\') | !('\\'|'"') )* '"' ;
+terminal ML_COMMENT : '/*' !('@') -> '*/';
+terminal SL_COMMENT : '//' !('\n'|'\r'|'@')* ('\r'? '\n')?;
+
+//terminal IDENTIFIER : ID ;
+//terminal IDENTIFIER : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')* | ('\'' -> '\'') ;
+
+//terminal DOCUMENTATION_COMMENT : '/*' -> '*/' ;
+
+//terminal ML_COMMENT : '/°' -> '°/';
+//terminal SL_COMMENT : '°°' !('\n'|'\r')* ('\r'? '\n')?;
+
+//terminal WS : (' '|'\t'|'\r'|'\n')+; \ No newline at end of file
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/AlfRuntimeModule.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/AlfRuntimeModule.java
new file mode 100644
index 00000000000..1eee1999feb
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/AlfRuntimeModule.java
@@ -0,0 +1,22 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.alf;
+
+/**
+ * Use this class to register components to be used at runtime / without the Equinox extension registry.
+ */
+public class AlfRuntimeModule extends org.eclipse.papyrus.alf.AbstractAlfRuntimeModule {
+
+}
+
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/AlfStandaloneSetup.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/AlfStandaloneSetup.java
new file mode 100644
index 00000000000..d8324e4296e
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/AlfStandaloneSetup.java
@@ -0,0 +1,27 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.alf;
+
+/**
+ * Initialization support for running Xtext languages
+ * without equinox extension registry
+ */
+public class AlfStandaloneSetup extends AlfStandaloneSetupGenerated{
+
+ public static void doSetup() {
+ new AlfStandaloneSetup().createInjectorAndDoEMFRegistration();
+ }
+}
+
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/Copy (2) of Alf.xtext b/extraplugins/alf09/src/org/eclipse/papyrus/alf/Copy (2) of Alf.xtext
new file mode 100644
index 00000000000..918d55e86ad
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/Copy (2) of Alf.xtext
@@ -0,0 +1,583 @@
+/*****************************************************************************
+ * Copyright (c) 2010 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+
+grammar org.eclipse.papyrus.alf.Alf with org.eclipse.xtext.common.Terminals
+
+generate alf "http://www.eclipse.org/papyrus/alf/Alf"
+
+/*
+ Test rule
+*/
+Test :
+ ('testExpression' expression += Expression)*
+ ('testAssignmentExpression' assignExpression += AssignmentCompletion)*
+ ('testStatement' statements += Statement)*
+ ('testBlock' block = Block);
+ //('testStatementSequence' statement += StatementSequence)* ;
+
+
+/*********************************
+* PrimitiveLiterals
+**********************************/
+
+LITERAL:
+ BOOLEAN_LITERAL |
+ NUMBER_LITERAL |
+ STRING_LITERAL
+;
+
+BOOLEAN_LITERAL :
+ value = BooleanValue ;
+
+enum BooleanValue :
+ TRUE = 'true' |
+ FALSE = 'false' ;
+
+NUMBER_LITERAL :
+ INTEGER_LITERAL | UNLIMITED_LITERAL ;
+
+INTEGER_LITERAL :
+ value = IntegerValue ;
+
+UNLIMITED_LITERAL :
+ value = '*' ;
+
+terminal IntegerValue :
+ ('0' | '1'..'9' (('_')? '0'..'9')*) | //DECIMAL
+ (('0b' | '0B') '0'..'1' (('_')? '0'..'1')*) | // BINARY
+ (('0x'|'0X') ('0'..'9'|'a'..'f'|'A'..'F') (('_')? ('0'..'9'|'a'..'f'|'A'..'F'))*) | // HEX
+ ('0' ('_')? '0'..'7' (('_')? '0'..'7')*) // OCT
+;
+
+STRING_LITERAL :
+ value = STRING ;
+
+NameExpression :
+ ((prefixOp = ('++'|'--') (path=QualifiedNamePath)? id = ID))
+ |
+ ((path=QualifiedNamePath)? id = ID
+ (invocationCompletion = Tuple
+ | sequenceConstructionCompletion = SequenceConstructionOrAccessCompletion
+ | postfixOp = ('++'|'--'))?) ;
+
+QualifiedNamePath :
+ (namespace+=UnqualifiedName'::')+
+;
+
+UnqualifiedName :
+ name = ID (templateBinding = TemplateBinding)?
+;
+
+TemplateBinding :
+ '<'bindings+=NamedTemplateBinding (',' bindings +=NamedTemplateBinding)*'>'
+;
+
+NamedTemplateBinding :
+ formal = ID '=>' actual = QualifiedNameWithBinding
+;
+
+QualifiedNameWithBinding :
+ id = ID (binding=TemplateBinding)? ('::' remaining=QualifiedNameWithBinding)?;
+
+Tuple :
+ {Tuple}'('(tupleElements += TupleElement (',' tupleElements+=TupleElement)*)?')'
+;
+
+TupleElement :
+ argument = Expression
+;
+
+/**************
+ * Expressions
+ **************/
+
+enum AssignmentOperator :
+ ASSIGN = '=' |
+ PLUSASSIGN = '+=' |
+ MINUSASSIGN = '-=' |
+ MULTASSIGN = '*=' |
+ MODASSIGN = '%=' |
+ DIVASSIGN = '/=' |
+ ANDASSIGN = '&=' |
+ ORASSIGN = '|=' |
+ XORASSIGN = '^=' |
+ LSHIFTASSIGN = '<<=' |
+ RSHIFTASSIGN = '>>=' |
+ URSHIFTASSIGN = '>>>='
+;
+
+Expression :
+ ConditionalTestExpression
+;
+
+ConditionalTestExpression :
+ exp=ConditionalOrExpression ('?' whenTrue=ConditionalTestExpression ':' whenFalse=ConditionalTestExpression)?
+;
+
+ConditionalOrExpression :
+ exp+=ConditionalAndExpression ('||' exp+=ConditionalAndExpression)*
+;
+
+ConditionalAndExpression :
+ exp+=InclusiveOrExpression ('&&' exp+=InclusiveOrExpression)*
+;
+
+InclusiveOrExpression :
+ exp+=ExclusiveOrExpression ('|' exp+=ExclusiveOrExpression)*
+;
+
+ExclusiveOrExpression :
+ exp+=AndExpression ('^' exp+=AndExpression)*
+;
+
+AndExpression :
+ exp+=EqualityExpression ('&' exp+=EqualityExpression)*
+;
+
+EqualityExpression :
+ exp+=ClassificationExpression (op+=EqualityOperator exp+=ClassificationExpression)*
+;
+
+enum EqualityOperator :
+ EQUALS = '==' |
+ NOT_EQUALS = '!='
+;
+
+ClassificationExpression :
+ exp=RelationalExpression (op=ClassificationOperator typeName=NameExpression)?
+;
+
+enum ClassificationOperator :
+ INSTANCEOF = 'instanceof' |
+ HASTYPE = 'hastype'
+;
+
+RelationalExpression :
+ left=ShiftExpression (op=RelationalOperator right=ShiftExpression)?
+;
+
+RelationalOperator :
+ LOWER = '<' |
+ UPPER = '>' |
+ LOWER_EQUALS = '<=' |
+ UPPER_EQUALS = '>='
+;
+
+ShiftExpression :
+ exp+=AdditiveExpression (op=ShiftOperator exp+=AdditiveExpression)?
+;
+
+enum ShiftOperator :
+ LSHIFT = '<<' |
+ RSHIFT = '>>' |
+ URSHIFT = '>>>'
+;
+
+AdditiveExpression :
+ exp+=MultiplicativeExpression (op+=AdditiveOp exp+=MultiplicativeExpression)*
+;
+
+enum AdditiveOp :
+ PLUS = '+' |
+ MINUS = '-'
+;
+
+MultiplicativeExpression :
+ exp+=UnaryExpression (op+=MultiplicativeOp exp+=PrimaryExpression)*
+;
+
+enum MultiplicativeOp :
+ MULT = '*' |
+ DIV = '/' |
+ MOD = '%'
+;
+
+UnaryExpression:
+ (op=('!'|'-'|'+'|'$'|'~') | '(' cast = ID ')')?
+ exp=PrimaryExpression ;
+
+PrimaryExpression :
+ prefix = ValueSpecification (suffix = SuffixExpression)?
+;
+
+SuffixExpression :
+ OperationCallExpression |
+ PropertyCallExpression |
+ LinkOperationExpression |
+ SequenceOperationExpression |
+ SequenceReductionExpression |
+ SequenceExpansionExpression |
+ ClassExtentExpression
+;
+
+OperationCallExpression :
+ '.' operationName = ID tuple = Tuple (suffix = SuffixExpression)?
+;
+
+PropertyCallExpression :
+ '.' propertyName = ID ('[' index=Expression ']')? (suffix = SuffixExpression)?
+;
+
+LinkOperationExpression :
+ '.' kind = LinkOperationKind tuple = LinkOperationTuple
+;
+
+LinkOperationTuple :
+ '('linkOperationTupleElement += LinkOperationTupleElement (',' linkOperationTupleElement += LinkOperationTupleElement)*')'
+;
+
+LinkOperationTupleElement :
+ objectOrRole = ID (('['roleIndex = Expression ']')? '=>' object = ID)?
+;
+
+enum LinkOperationKind :
+ CREATE = 'createLink' |
+ DESTROY = 'destroyLink' |
+ CLEAR = 'clearAssoc'
+;
+
+SequenceOperationExpression :
+ '->' operationName = ID tuple = Tuple (suffix = SuffixExpression) ?
+;
+
+SequenceReductionExpression :
+ '->' 'reduce' (isOrdered ?= 'ordered')? behavior = QualifiedNameWithBinding
+;
+
+SequenceExpansionExpression :
+ SelectOrRejectOperation |
+ CollectOrIterateOperation |
+ ForAllOrExistsOrOneOperation |
+ IsUniqueOperation
+;
+
+SelectOrRejectOperation :
+ '->' op = SelectOrRejectOperator name = ID '('expr=Expression')'
+;
+
+enum SelectOrRejectOperator :
+ SELECT = 'select' |
+ REJECT = 'reject'
+;
+
+CollectOrIterateOperation :
+ '->' op = CollectOrIterateOperator name = ID '('expr=Expression')'
+;
+
+enum CollectOrIterateOperator :
+ COLLECT = 'collect' |
+ ITERATE = 'iterate'
+;
+
+ForAllOrExistsOrOneOperation :
+ '->' op = ForAllOrExistsOrOneOperator name = ID '('expr=Expression')'
+;
+
+enum ForAllOrExistsOrOneOperator :
+ FORALL = 'forAll' |
+ EXISTS = 'exists' |
+ ONE = 'one'
+;
+
+IsUniqueOperation :
+ '->' 'isUnique' name = ID '('expr=Expression')'
+;
+
+ValueSpecification :
+ NameExpression |
+ LITERAL |
+ ThisExpression |
+ SuperInvocationExpression |
+ InstanceCreationExpression |
+ ParenthesizedExpression |
+ NullExpression
+ ;
+
+ParenthesizedExpression :
+ '('Expression')'
+;
+
+NullExpression :
+ {NullExpression} 'null'
+;
+
+ThisExpression :
+ {ThisExpression}'this'
+;
+
+SuperInvocationExpression :
+ {SuperInvocationExpression} 'super' ('.' qualifiedNameRoot = ID '::' qualifiedNameRemaining = NameExpression)?
+;
+
+InstanceCreationExpression :
+ 'new' constructor=QualifiedNameWithBinding
+ (tuple = Tuple | sequenceConstuctionCompletion = SequenceConstructionCompletion)
+;
+
+SequenceConstructionOrAccessCompletion :
+ (multiplicityIndicator ?= '[' ((accessCompletion = AccessCompletion) | sequenceCompletion = PartialSequenceConstructionCompletion)) |
+ (expression = SequenceConstructionExpression)
+;
+
+AccessCompletion :
+ accessIndex = Expression ']'
+;
+
+PartialSequenceConstructionCompletion :
+ ']' expression = SequenceConstructionExpression
+;
+
+SequenceConstructionCompletion :
+ (multiplicityIndicator ?= '['']')? expression = SequenceConstructionExpression
+;
+
+SequenceConstructionExpression :
+ '{'sequenceElement+=SequenceElement
+ ((',' sequenceElement+=SequenceElement)* | ('..' rangeUpper=Expression))
+ '}'
+;
+
+SequenceElement :
+ Expression | SequenceConstructionExpression
+;
+
+ClassExtentExpression :
+ {ClassExtentExpression} '.' 'allInstances' '(' ')'
+;
+
+/*****************
+ * Statements
+ ****************/
+
+Block :
+ '{' {Block}(sequence = StatementSequence)? '}'
+;
+
+StatementSequence :
+ (statements += DocumentedStatement)+
+;
+
+InlineStatement :
+ '/*@' 'inline' langageName = ID body = STRING '*/'
+;
+
+AnnotatedStatement :
+ '//@' annotation = Annotation block = Block
+;
+
+DocumentedStatement :
+ (comment = (ML_COMMENT | SL_COMMENT))? statement = Statement
+;
+
+Statement :
+ (AnnotatedStatement |
+ InlineStatement |
+ BlockStatement |
+ EmptyStatement |
+ LocalNameDeclarationStatement |
+ IfStatement |
+ SwitchStatement |
+ WhileStatement |
+ DoStatement |
+ ForStatement |
+ BreakStatement |
+ ReturnStatement |
+ AcceptStatement |
+ ClassifyStatement |
+ InvocationOrAssignementOrDeclarationStatement |
+ SuperInvocationStatement |
+ ThisInvocationStatement |
+ InstanceCreationInvocationStatement)
+;
+
+Annotation :
+ kind = AnnotationKind ('('args += ID (',' args += ID)* ')')?
+;
+
+enum AnnotationKind :
+ ISOLATED = 'isolated' |
+ DETERMINED = 'determined' |
+ ASSURED = 'assured' |
+ PARALLEL = 'parallel'
+;
+
+
+
+BlockStatement :
+ block = Block
+;
+
+EmptyStatement :
+ {EmptyStatement} ';'
+;
+
+LocalNameDeclarationStatement :
+ 'let' varName = ID ':'
+ type = QualifiedNameWithBinding
+ (multiplicityIndicator?='[' ']')?
+ '=' init = Expression ';'
+;
+
+IfStatement :
+ 'if' sequentialClausses = SequentialClauses ( finalClause = FinalClause )? ;
+
+SequentialClauses :
+ conccurentClauses += ConcurrentClauses
+ ( 'else' 'if' conccurentClauses += ConcurrentClauses )* ;
+
+ConcurrentClauses :
+ nonFinalClause += NonFinalClause
+ ( 'or' 'if' nonFinalClause += NonFinalClause )* ;
+
+NonFinalClause :
+ '(' condition = Expression ')' block = Block ;
+
+FinalClause :
+ 'else' block = Block ;
+
+
+SwitchStatement :
+ 'switch' '(' expression = Expression ')' '{'
+ ( switchClause += SwitchClause )*
+ ( defaultClause = SwitchDefaultClause )?
+ '}' ;
+
+SwitchClause :
+ switchCase += SwitchCase ( switchCase += SwitchCase )* statementSequence = NonEmptyStatementSequence ;
+
+SwitchCase :
+ 'case' expression = Expression ':' ;
+
+SwitchDefaultClause :
+ 'default' ':' statementSequence = NonEmptyStatementSequence ;
+
+NonEmptyStatementSequence :
+ ( statement += DocumentedStatement )+ ;
+
+/* WHILE STATEMENTS */
+WhileStatement :
+ 'while' '(' condition = Expression ')' block = Block ;
+
+/* DO STATEMENTS */
+DoStatement :
+ 'do' block = Block 'while' '(' condition = Expression ')' ';' ;
+
+/* FOR STATEMENTS */
+ForStatement :
+ 'for' '(' control = ForControl ')' block = Block ;
+
+ForControl :
+ loopVariableDefinition += LoopVariableDefinition( ',' loopVariableDefinition += LoopVariableDefinition )* ;
+
+LoopVariableDefinition :
+ (name = ID 'in' expression1 = Expression ( '..' expression2 = Expression )?)
+ | (type = QualifiedNameWithBinding name = ID ':' expression = Expression) ;
+
+/* BREAK STATEMENTS */
+BreakStatement :
+ {BreakStatement}'break' ';' ;
+
+/* RETURN STATEMENTS */
+ReturnStatement :
+ 'return' expression = Expression ';' ;
+
+/* ACCEPT STATEMENTS */
+AcceptStatement :
+ clause = AcceptClause
+ ( simpleAccept = SimpleAcceptStatementCompletion
+ | compoundAccept = CompoundAcceptStatementCompletion ) ;
+
+SimpleAcceptStatementCompletion :
+ {SimpleAcceptStatementCompletion}';' ;
+
+CompoundAcceptStatementCompletion :
+ block = Block ( 'or' acceptBlock += AcceptBlock )* ;
+
+AcceptBlock :
+ clause = AcceptClause block = Block ;
+
+AcceptClause :
+ 'accept' '(' ( name = ID ':' )? qualifiedNameList = QualifiedNameList ')' ;
+
+/* CLASSIFY STATEMENTS */
+ClassifyStatement :
+ 'classify' expression = Expression clause = ClassificationClause ';' ;
+
+ClassificationClause :
+ classifyFromClause = ClassificationFromClause ( classifyToClause = ClassificationToClause )?
+ | ( reclassyAllClause = ReclassifyAllClause )? classifyToClause = ClassificationToClause ;
+
+ClassificationFromClause :
+ 'from' qualifiedNameList = QualifiedNameList ;
+
+ClassificationToClause :
+ 'to' qualifiedNameList = QualifiedNameList ;
+
+ReclassifyAllClause :
+ {ReclassifyAllClause}'from' '*' ;
+
+QualifiedNameList :
+ qualifiedName += QualifiedNameWithBinding ( ',' qualifiedName += QualifiedNameWithBinding )* ;
+
+InvocationOrAssignementOrDeclarationStatement :
+ typePart_OR_assignedPart_OR_invocationPart = NameExpression
+ (suffixCompletion = SuffixCompletion)?
+ ((variableDeclarationCompletion = VariableDeclarationCompletion) |
+ (assignmentCompletion = AssignmentCompletion))? ';'
+;
+
+SuperInvocationStatement :
+ _super = SuperInvocationExpression (suffix = SuffixCompletion)? ';'
+;
+
+ThisInvocationStatement :
+ _this = ThisExpression suffix = SuffixCompletion (assignmentCompletion = AssignmentCompletion)? ';'
+;
+
+InstanceCreationInvocationStatement :
+ _new = InstanceCreationExpression (suffix = SuffixCompletion)? ';'
+;
+
+SuffixCompletion :
+ suffix = SuffixExpression
+;
+
+VariableDeclarationCompletion :
+ (multiplicityIndicator ?= '[' ']')? variableName = ID initValue = AssignmentCompletion
+;
+
+AssignmentCompletion :
+ op=AssignmentOperator rightHandSide = Expression
+;
+
+/****************
+* Terminals
+*****************/
+
+//terminal DOUBLE_COLON : '::' ;
+
+terminal ID : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')* | ('\'' -> '\'') ;
+terminal STRING : '"' ( '\\' ('b'|'t'|'n'|'f'|'r'|'"'|"'"|'\\') | !('\\'|'"') )* '"' ;
+terminal ML_COMMENT : '/*' !('@')* '*/';
+terminal SL_COMMENT : '//' !('\n'|'\r'|'@')* ('\r'? '\n')?;
+
+//terminal IDENTIFIER : ID ;
+//terminal IDENTIFIER : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')* | ('\'' -> '\'') ;
+
+//terminal DOCUMENTATION_COMMENT : '/*' -> '*/' ;
+
+//terminal ML_COMMENT : '/°' -> '°/';
+//terminal SL_COMMENT : '°°' !('\n'|'\r')* ('\r'? '\n')?;
+
+//terminal WS : (' '|'\t'|'\r'|'\n')+; \ No newline at end of file
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/Copy of Alf.xtext b/extraplugins/alf09/src/org/eclipse/papyrus/alf/Copy of Alf.xtext
new file mode 100644
index 00000000000..ccc7288a678
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/Copy of Alf.xtext
@@ -0,0 +1,1013 @@
+/*****************************************************************************
+ * Copyright (c) 2010 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+
+grammar org.eclipse.papyrus.alf.Alf with org.eclipse.xtext.common.Terminals
+
+generate alf "http://www.eclipse.org/papyrus/alf/Alf"
+
+/*
+ Test rule
+*/
+Test :
+ ('testExpression' expression += Expression)*
+ ('testStatementSequence' statement += StatementSequence)*
+ ('testUnit' unit += UnitDefinition) *;
+
+
+/*********************************
+* PrimitiveLiterals
+**********************************/
+
+BOOLEAN_LITERAL :
+ value = BooleanValue ;
+terminal BooleanValue : 'true' | 'false' ;
+
+NUMBER_LITERAL :
+ INTEGER_LITERAL | UNLIMITED_NATURAL ;
+
+INTEGER_LITERAL :
+ value = IntegerValue ;
+
+UNLIMITED_NATURAL :
+ value = '*' ;
+
+terminal IntegerValue :
+ ('0' | '1'..'9' (('_')? '0'..'9')*) | //DECIMAL
+ (('0b' | '0B') '0'..'1' (('_')? '0'..'1')*) | // BINARY
+ (('0x'|'0X') ('0'..'9'|'a'..'f'|'A'..'F') (('_')? ('0'..'9'|'a'..'f'|'A'..'F'))*) | // HEX
+ ('0' ('_')? '0'..'7' (('_')? '0'..'7')*) // OCT
+ ;
+
+STRING_LITERAL :
+ value = STRING ;
+
+/*********
+* UNITS *
+*********/
+UnitDefinition :
+ ( namespaceDeclaration = NamespaceDeclaration )?
+ ( importDeclaration += ImportDeclaration )*
+ //( <DOCUMENTATION_COMMENT> )? =>> To be added
+ ( comment = DocumentationComment )?
+ stereotypeAnnotations = StereotypeAnnotations
+ namespaceDefinition = NamespaceDefinition ;
+
+DocumentationComment :
+ comment = ML_COMMENT ;
+
+StereotypeAnnotations :
+ {StereotypeAnnotations}( annotation += StereotypeAnnotation )* ;
+
+StereotypeAnnotation :
+ '@' stereotype = QualifiedName
+ ( '(' taggedValues = TaggedValues ')' )? ;
+
+TaggedValues :
+ QualifiedNameList
+ | TaggedValueList ;
+
+TaggedValueList :
+ taggedValue += TaggedValue ( "," taggedValue += TaggedValue )* ;
+
+TaggedValue :
+ name = Name '=>' value = LiteralExpression ;
+//| ( <PLUS> | <MINUS> )?
+
+NamespaceDeclaration :
+ 'namespace' qualifiedName = QualifiedName ';' ;
+
+ImportDeclaration :
+ visibility = ImportVisibilityIndicator 'import' importReference = ImportReference ';' ;
+
+enum ImportVisibilityIndicator :
+ PUBLIC = 'public' |
+ PRIVATE = 'private' ;
+
+ImportReference :
+ colonQualifiedName = ColonQualifiedName ( '::' star='*' | aliasDefinition = AliasDefinition )?
+ | dotQualifiedName = DotQualifiedName ( '.' star='*' | aliasDefinition = AliasDefinition )?
+ | name = Name ( ( '::' | '.' ) star = '*' | alias = AliasDefinition )? ;
+
+AliasDefinition :
+ 'as' name = Name ;
+
+/* NAMESPACES */
+NamespaceDefinition :
+ PackageDefinition | ClassifierDefinition ;
+
+enum VisibilityIndicator :
+ PUBLIC = 'public' |
+ PRIVATE = 'private' |
+ PROTECTED = 'protected' ;
+
+/* PACKAGES */
+PackageDeclaration :
+ 'package' name = Name ;
+
+PackageDefinition :
+ declaration = PackageDeclaration body = PackageBody ;
+
+PackageDefinitionOrStub :
+ declaration = PackageDeclaration ( ';' | body = PackageBody ) ;
+
+PackageBody :
+ {PackageBody} '{'( packagedElement += PackagedElement )* '}' ;
+
+PackagedElement :
+ // TO be added( <DOCUMENTATION_COMMENT> )?
+ stereotypeAnnotations = StereotypeAnnotations
+ importVisibility = ImportVisibilityIndicator
+ packagedElementDefinition = PackagedElementDefinition ;
+
+PackagedElementDefinition :
+ PackageDefinitionOrStub
+ | ClassifierDefinitionOrStub ;
+
+/***************
+* CLASSIFIERS *
+***************/
+
+ClassifierDefinition :
+ ClassDefinition
+ | ActiveClassDefinition
+ | DataTypeDefinition
+ | EnumerationDefinition
+ | AssociationDefinition
+ | SignalDefinition
+ | ActivityDefinition ;
+
+ClassifierDefinitionOrStub :
+ ClassDefinitionOrStub
+ | ActiveClassDefinitionOrStub
+ | DataTypeDefinitionOrStub
+ | EnumerationDefinitionOrStub
+ | AssociationDefinitionOrStub
+ | SignalDefinitionOrStub
+ | ActivityDefinitionOrStub ;
+
+ClassifierSignature :
+ name = Name ( templateParameters = TemplateParameters )?
+ ( specializationClause = SpecializationClause )? ;
+
+TemplateParameters :
+ '<' classifierTemplateParameter += ClassifierTemplateParameter
+ ( ',' classifierTemplateParameter += ClassifierTemplateParameter )* '>' ;
+
+ClassifierTemplateParameter :
+ // To be added( <DOCUMENTATION_COMMENT> )?
+ name = Name
+ ( 'specializes' specialized = QualifiedName )? ;
+
+SpecializationClause :
+ 'specializes' specialized = QualifiedNameList ;
+
+/* CLASSES */
+ClassDeclaration :
+ ( abstract ?= 'abstract' )? 'class' signature = ClassifierSignature ;
+
+ClassDefinition :
+ declaration = ClassDeclaration body = ClassBody ;
+
+ClassDefinitionOrStub :
+ declaration = ClassDeclaration ( ';' | body = ClassBody ) ;
+
+ClassBody :
+ {ClassBody}'{' ( classMember += ClassMember )* '}' ;
+
+ClassMember :
+ // To be added( <DOCUMENTATION_COMMENT> )?
+ stereotypeAnnotations = StereotypeAnnotations
+ ( visibilityIndicator = VisibilityIndicator )?
+ classMemberDefinition = ClassMemberDefinition ;
+
+ClassMemberDefinition :
+ ClassifierDefinitionOrStub
+ | FeatureDefinitionOrStub ;
+
+/* ACTIVE CLASSES */
+ActiveClassDeclaration :
+ ( abstract ?= 'abstract' )? 'active' 'class' signature = ClassifierSignature ;
+
+ActiveClassDefinition :
+ declaration = ActiveClassDeclaration body = ActiveClassBody ;
+
+ActiveClassDefinitionOrStub :
+ declaration = ActiveClassDeclaration ( ';' | body = ActiveClassBody ) ;
+
+ActiveClassBody :
+ {ActiveClassBody}'{' ( activerClassMember += ActiveClassMember )* '}'
+ ( 'do' behaviorClause = BehaviorClause )? ;
+
+BehaviorClause :
+ Block | Name ;
+
+ActiveClassMember :
+ // To be added( <DOCUMENTATION_COMMENT> )?
+ stereotypeAnnotations = StereotypeAnnotations
+ ( visibilityIndicator = VisibilityIndicator )?
+ activeClassMemberDefinition = ActiveClassMemberDefinition ;
+
+ActiveClassMemberDefinition :
+ ClassMemberDefinition
+ | ActiveFeatureDefinitionOrStub ;
+
+/* DATA TYPES */
+DataTypeDeclaration :
+ ( abstract ?= 'abstract' )? 'datatype' signature = ClassifierSignature ;
+
+DataTypeDefinition :
+ declaration = DataTypeDeclaration body = StructuredBody ;
+
+DataTypeDefinitionOrStub :
+ declaration = DataTypeDeclaration ( ';' | body = StructuredBody ) ;
+
+StructuredBody :
+ {StructureBody}'{' ( structuredMember += StructuredMember )* '}' ;
+
+StructuredMember :
+ // To be added ( <DOCUMENTATION_COMMENT> )?
+ stereotypeAnnotations = StereotypeAnnotations ( public ?= 'public' )? propertyDefinition = PropertyDefinition ;
+
+/* ASSOCIATIONS */
+AssociationDeclaration :
+ ( abstract ?= 'abstract' )? 'assoc' signature = ClassifierSignature ;
+
+AssociationDefinition :
+ declaration = AssociationDeclaration body = StructuredBody ;
+
+AssociationDefinitionOrStub :
+ declaration = AssociationDeclaration ( ';' | body = StructuredBody ) ;
+
+/* ENUMERATIONS */
+EnumerationDeclaration :
+ 'enum' name = Name ( specializationClause = SpecializationClause )? ;
+
+EnumerationDefinition :
+ declaration = EnumerationDeclaration body = EnumerationBody ;
+
+EnumerationDefinitionOrStub :
+ declaration = EnumerationDeclaration ( ';' | body = EnumerationBody ) ;
+
+EnumerationBody :
+ '{' name += EnumerationLiteralName ( ',' name += EnumerationLiteralName )* '}' ;
+
+EnumerationLiteralName :
+ // To be added ( <DOCUMENTATION_COMMENT> )?
+ Name ;
+
+/* SIGNALS */
+SignalDeclaration :
+ ( abstract ?= 'abstract' )? 'signal' signature = ClassifierSignature ;
+
+SignalDefinition :
+ declaration = SignalDeclaration body = StructuredBody ;
+
+SignalDefinitionOrStub :
+ declaration = SignalDeclaration ( ';' | body = StructuredBody ) ;
+
+/* ACTIVITIES */
+ActivityDeclaration :
+ 'activity' name = Name ( templateParameters = TemplateParameters )?
+ formalParameters = FormalParameters ( ':' typePart = TypePart )? ;
+
+ActivityDefinition :
+ declaration = ActivityDeclaration body = Block ;
+
+ActivityDefinitionOrStub :
+ declaration = ActivityDeclaration ( ';' | body = Block ) ;
+
+FormalParameters :
+ {FormalParameters} '(' ( formalParameterList = FormalParameterList )? ')' ;
+
+FormalParameterList :
+ formalParameter += FormalParameter ( ',' formalParameter += FormalParameter )* ;
+
+FormalParameter :
+ // To be added ( <DOCUMENTATION_COMMENT> )?
+ stereotypeAnnotations = StereotypeAnnotations
+ direction = ParameterDirection
+ name = Name ':' type = TypePart ;
+
+enum ParameterDirection :
+ IN = 'in' |
+ OUT = 'out' |
+ INOUT = 'inout' ;
+
+/* FEATURES */
+FeatureDefinitionOrStub :
+ AttributeDefinition
+ | OperationDefinitionOrStub ;
+
+ActiveFeatureDefinitionOrStub :
+ ReceptionDefinition
+ | SignalReceptionDefinitionOrStub ;
+
+/* PROPERTIES */
+PropertyDefinition :
+ declaration = PropertyDeclaration ';' ;
+
+AttributeDefinition :
+ declaration = PropertyDeclaration ( attributeInitialize = AttributeInitializer )? ';' ;
+
+AttributeInitializer :
+ '=' expression = InitializationExpression ;
+
+PropertyDeclaration :
+ name = Name ':' ( 'compose' )? type = TypePart ;
+
+TypePart :
+ typeName = TypeName ( multiplicity = Multiplicity )? ;
+
+Multiplicity :
+ {Multiplicity} '[' ( range = MultiplicityRange )? ']'
+ ( ordered ?= 'ordered' ( nonUnique ?= 'nonUnique' )? | nonUnique ?='nonUnique' ( ordered ?= 'ordered' )? | sequence ?= 'sequence' )? ;
+
+MultiplicityRange :
+ ( lower = NUMBER_LITERAL '..' )? upper = NUMBER_LITERAL ;
+//UnlimitedNaturalLiteral = <DECIMAL_LITERAL> | <STAR>
+
+/* OPERATIONS */
+OperationDeclaration :
+ ( abstract ?= 'abstract' )? name = Name formalParameters = FormalParameters
+ ( ':' returnType = TypePart )? ( redefinition = RedefinitionClause )? ;
+
+OperationDefinitionOrStub :
+ declaration = OperationDeclaration ( ';' | body = Block ) ;
+
+RedefinitionClause :
+ 'redefines' redefinedOperations = QualifiedNameList ;
+
+/* RECEPTIONS */
+ReceptionDefinition :
+ 'receive' signalName = QualifiedName ';' ;
+
+SignalReceptionDeclaration :
+ 'receive' 'signal' name = Name ( specializationClause = SpecializationClause )? ;
+
+SignalReceptionDefinitionOrStub :
+ declaration = SignalReceptionDeclaration ( ';' | body = StructuredBody ) ;
+
+/*****************************
+* Statements
+******************************/
+
+StatementSequence :
+ {StatementSequence}( statement += DocumentedStatement )* ;
+
+DocumentedStatement :
+ //( <DOCUMENTATION_COMMENT> )? Statement =>>> to be taken into account
+ Statement ;
+
+Statement :
+ BlockStatement |
+ //AnnotatedStatement|
+ //InLineStatement |
+ LocalNameDeclarationOrExpressionStatement |
+ LocalNameDeclarationStatement |
+ IfStatement |
+ SwitchStatement |
+ WhileStatement |
+ ForStatement |
+ DoStatement |
+ BreakStatement |
+ ReturnStatement |
+ AcceptStatement |
+ ClassifyStatement |
+ EmptyStatement
+ ;
+
+/* BLOCK */
+Block :
+ '{' statementSequence = StatementSequence '}' ;
+
+/* ANNOTATED STATEMENTS */
+//AnnotatedStatement :
+// '/@' (annotation = Annotations) '\n' statement = Statement ;
+//
+//Annotations :
+// annotation += Annotation ( '@' annotation+= Annotation )* ;
+//
+//Annotation :
+// id = ID ( '(' nameList = NameList ')' )? ;
+//
+//NameList :
+// name += Name ( ',' name+=Name )* ;
+//
+///* IN-LINE STATEMENTS */
+//InLineStatement :
+// '/*@' id=ID '(' name = Name ')' ;
+// //<DOCUMENTATION_COMMENT> =>>> to be taken into account
+
+/* BLOCK STATEMENTS */
+BlockStatement :
+ block = Block ;
+
+/* EMPTY STATEMENTS */
+EmptyStatement :
+ {EmptyStatement} ';' ;
+
+/* LOCAL NAME DECLARATION AND EXPRESSION STATEMENTS */
+LocalNameDeclarationOrExpressionStatement :
+ qualifiedName = PotentiallyColonQualifiedName (qualifiednameToExpressionCompletion = NameToExpressionCompletion)?
+ ( ( multiplicityIndicator = MultiplicityIndicator )? name = Name nameDeclarationCompletion = LocalNameDeclarationStatementCompletion
+ | nameToExpressionCompletion = NameToExpressionCompletion ';'
+ )
+ | nonNameExpression = NonNameExpression ';' ;
+
+LocalNameDeclarationStatement :
+ 'let' name = Name ':' type = TypeName ( multiplicityIndicator = MultiplicityIndicator )?
+ localNameDeclarationCompletion = LocalNameDeclarationStatementCompletion ;
+
+TypeName :
+ {TypeName}(qualifiedName = QualifiedName | 'any') ;
+
+LocalNameDeclarationStatementCompletion :
+ '=' initialization = InitializationExpression ';' ;
+
+InitializationExpression :
+ Expression
+ | SequenceInitializationExpression
+ | InstanceInitializationExpression ;
+
+InstanceInitializationExpression :
+ 'new' tuple = Tuple ;
+
+/* IF STATEMENTS */
+IfStatement :
+ 'if' sequentialClausses = SequentialClauses ( finalClause = FinalClause )? ;
+
+SequentialClauses :
+ conccurentClauses += ConcurrentClauses
+ ( 'else' 'if' conccurentClauses += ConcurrentClauses )* ;
+
+ConcurrentClauses :
+ nonFinalClause += NonFinalClause
+ ( 'or' 'if' nonFinalClause += NonFinalClause )* ;
+
+NonFinalClause :
+ '(' condition = Expression ')' block = Block ;
+
+FinalClause :
+ 'else' block = Block ;
+
+/* SWITCH STATEMENTS */
+SwitchStatement :
+ 'switch' '(' expression = Expression ')' '{'
+ ( switchClause += SwitchClause )*
+ ( defaultClause = SwitchDefaultClause )?
+ '}' ;
+
+SwitchClause :
+ switchCase += SwitchCase ( switchCase += SwitchCase )* statementSequence = NonEmptyStatementSequence ;
+
+SwitchCase :
+ 'case' expression = Expression ':' ;
+
+SwitchDefaultClause :
+ 'default' ':' statementSequence = NonEmptyStatementSequence ;
+
+NonEmptyStatementSequence :
+ ( statement += Statement )+ ;
+ // Should be: ( statement += DocumentedStatement )+ ;
+
+/* WHILE STATEMENTS */
+WhileStatement :
+ 'while' '(' condition = Expression ')' block = Block ;
+
+/* DO STATEMENTS */
+DoStatement :
+ 'do' block = Block 'while' '(' condition = Expression ')' ';' ;
+
+/* FOR STATEMENTS */
+ForStatement :
+ 'for' '(' control = ForControl ')' block = Block ;
+
+ForControl :
+ loopVariableDefinition += LoopVariableDefinition( ',' loopVariableDefinition += LoopVariableDefinition )* ;
+
+LoopVariableDefinition :
+ (name = Name 'in' expression1 = Expression ( '::' expression2 = Expression )?)
+ | (type = QualifiedName name = Name ':' expression = Expression) ;
+
+/* BREAK STATEMENTS */
+BreakStatement :
+ {BreakStatement}'break' ';' ;
+
+/* RETURN STATEMENTS */
+ReturnStatement :
+ 'return' expression = Expression ';' ;
+
+/* ACCEPT STATEMENTS */
+AcceptStatement :
+ clause = AcceptClause
+ ( simpleAccept = SimpleAcceptStatementCompletion
+ | compoundAccept = CompoundAcceptStatementCompletion ) ;
+
+SimpleAcceptStatementCompletion :
+ {SimpleAcceptStatementCompletion}';' ;
+
+CompoundAcceptStatementCompletion :
+ block = Block ( 'or' acceptBlock += AcceptBlock )* ;
+
+AcceptBlock :
+ clause = AcceptClause block = Block ;
+
+AcceptClause :
+ 'accept' '(' ( name = Name ':' )? qualifiedNameList = QualifiedNameList ')' ;
+
+/* CLASSIFY STATEMENTS */
+ClassifyStatement :
+ 'classify' expression = Expression clause = ClassificationClause ';' ;
+
+ClassificationClause :
+ classifyFromClause = ClassificationFromClause ( classifyToClause = ClassificationToClause )?
+ | ( reclassyAllClause = ReclassifyAllClause )? classifyToClause = ClassificationToClause ;
+
+ClassificationFromClause :
+ 'from' qualifiedNameList = QualifiedNameList ;
+
+ClassificationToClause :
+ 'to' qualifiedNameList = QualifiedNameList ;
+
+ReclassifyAllClause :
+ {ReclassifyAllClause}'from' '*' ;
+
+QualifiedNameList :
+ qualifiedName += QualifiedName ( ',' qualifiedName += QualifiedName )* ;
+
+/********************************
+* Names
+**********************************/
+
+Name :
+ id = ID ;
+
+QualifiedName :
+ unqualifiedName = UnqualifiedName ( completion = QualifiedNameCompletion)? ;
+
+//ADDED for implementation of QualifiedName
+QualifiedNameCompletion :
+ ColonQualifiedNameCompletion | DotQualifiedNameCompletion ;
+/////////////////////////////////////////////////////
+
+PotentiallyAmbiguousQualifiedName :
+ unqualifiedName = NameBinding ('::' colonCompletion += NameBinding)* ;
+//Simplified with respect to the real spec (i.e. no template-based qualified name possible with the '.' notation)
+
+ColonQualifiedName :
+ unqualifiedName = UnqualifiedName completion = ColonQualifiedNameCompletion ;
+
+PotentiallyColonQualifiedName :
+ unqualifiedName = UnqualifiedName (completion = ColonQualifiedNameCompletion)? ;
+
+ColonQualifiedNameCompletion :
+ ( '::' binding += NameBinding )+ ;
+
+DotQualifiedName :
+ unqualifiedName = UnqualifiedName completion = DotQualifiedNameCompletion ;
+
+DotQualifiedNameCompletion :
+ ( '.' binding += NameBinding )+ ;
+
+UnqualifiedName :
+ NameBinding ;
+
+NameBinding :
+ name = Name ( templateBinding = TemplateBinding )? ;
+
+TemplateBinding :
+ '<' ( NamedTemplateBinding | PositionalTemplateBinding ) '>' ;
+
+PositionalTemplateBinding :
+ qualifiedName += QualifiedName ( ',' qualifiedName += QualifiedName )* ;
+
+NamedTemplateBinding :
+ substitution += TemplateParameterSubstitution ( ',' substitution += TemplateParameterSubstitution )* ;
+
+TemplateParameterSubstitution :
+ parameter = Name '=>' argument = QualifiedName ;
+
+/*********************************
+* Expressions
+**********************************/
+
+Expression :
+ unary = UnaryExpression completion = ExpressionCompletion ;
+
+NonNameExpression :
+ nonNameUnary = NonNameUnaryExpression completion = ExpressionCompletion ;
+
+NameToExpressionCompletion :
+ ( nameToPrimary = NameToPrimaryExpression )? completion = PrimaryToExpressionCompletion ;
+
+PrimaryToExpressionCompletion :
+ postfixCompletion = PostfixExpressionCompletion completion = ExpressionCompletion ;
+
+ExpressionCompletion :
+ AssignmentExpressionCompletion | ConditionalExpressionCompletion ;
+
+/* PRIMARY EXPRESSIONS */
+
+PrimaryExpression :
+ prefix = PrimaryExpressionPrefix
+ completion = PrimaryExpressionCompletion ;
+
+//ADDED for prefix of PrimaryExpression////////
+PrimaryExpressionPrefix :
+ ( NameOrPrimaryExpression | BaseExpression | ParenthesizedExpression ) ;
+///////////////
+
+BaseExpression :
+ LiteralExpression
+ | ThisExpression
+ | SuperInvocationExpression
+ | InstanceCreationOrSequenceConstructionExpression
+ | SequenceAnyExpression ;
+
+NameToPrimaryExpression :
+ '.' ( LinkOperationCompletion | ClassExtentExpressionCompletion )
+ | SequenceConstructionExpressionCompletion
+ | BehaviorInvocation ;
+
+PrimaryExpressionCompletion :
+ {PrimaryExpressionCompletion}( completionItems += PrimaryExpressionCompletionItem)* ;
+
+//ADDED for PrimaryExpressionCompletion implem
+PrimaryExpressionCompletionItem :
+ FeatureCompletion | SequenceOperationOrReductionOrExpansion | Index ;
+FeatureCompletion :
+ feature = Feature (completion = FeatureInvocation)? ;
+//////////////////////////////////////////////////////////
+
+/* LITERAL EXPRESSIONS */
+LiteralExpression :
+ BOOLEAN_LITERAL
+ | NUMBER_LITERAL
+ | STRING_LITERAL;
+
+/* NAME EXPRESSIONS */
+NameOrPrimaryExpression :
+ nameOrPrimary = PotentiallyAmbiguousQualifiedName ( toPrimary = NameToPrimaryExpression )? ;
+
+/* THIS EXPRESSIONS */
+ThisExpression :
+ {ThisExpression}'this' ( tuple = Tuple )? ;
+
+/* PARENTHESIZED EXPRESSIONS */
+ParenthesizedExpression :
+ '(' Expression ')' ;
+
+/* PROPERTY ACCESS EXPRESSIONS */
+Feature :
+ '.' nameBinding = NameBinding ;
+
+/* INVOCATION EXPRESSIONS */
+Tuple :
+ {Tuple}'('
+ ( namedTupleList = NamedTupleExpressionList | ( positionalTupleList = PositionalTupleExpressionList )? ) ')' ;
+
+
+PositionalTupleExpressionList :
+ expression = Expression positionalTupleListCompletion = PositionalTupleExpressionListCompletion ;
+
+PositionalTupleExpressionListCompletion :
+ {PositionalTupleExpressionListCompletion}( ',' expression += Expression )* ;
+
+NamedTupleExpressionList :
+ namedExpression += NamedExpression ( ',' namedExpressions += NamedExpression )* ;
+
+NamedExpression :
+ name = Name '=>' expression = Expression ;
+
+BehaviorInvocation :
+ Tuple ;
+
+FeatureInvocation :
+ Tuple ;
+
+SuperInvocationExpression :
+ 'super' ( '.' qualifiedName = QualifiedName )? tuple = Tuple ;
+
+/* INSTANCE CREATION EXPRESSIONS */
+InstanceCreationOrSequenceConstructionExpression :
+ 'new' qualifiedName = QualifiedName
+ completion = InstanceCreationOrSequenceConstructionExpressionCompletion ;
+
+//ADDED for implem of InstanceCreationOrSequenceConstructionExpression
+InstanceCreationOrSequenceConstructionExpressionCompletion :
+ SequenceConstructionExpressionCompletion | Tuple ;
+/////////////////////////////////////////////////////
+
+/* LINK OPERATION EXPRESSIONS */
+LinkOperationCompletion :
+ linkOperation = LinkOperation tuple = LinkOperationTuple ;
+
+enum LinkOperation :
+ CREATE ='createLink'
+ | DESTROY = 'destroyLink'
+ | CLEAR = 'clearAssoc' ;
+
+LinkOperationTuple :
+ {LinkOperationOrTuple}'('
+ ( name = Name
+ ( index = Index
+ ( '=>' indexedNameCompletion = IndexedNamedExpressionListCompletion
+ | primaryToExpressionCompletion = PrimaryToExpressionCompletion positionalTupleCompletion = PositionalTupleExpressionListCompletion
+ )
+ | '=>' indexedNameCompletion = IndexedNamedExpressionListCompletion
+ )
+ | positionalTupleList = PositionalTupleExpressionList)? ')' ;
+
+IndexedNamedExpressionListCompletion :
+ expression = Expression ( ',' indexedNameExpression += IndexedNamedExpression )* ;
+
+IndexedNamedExpression :
+ name = Name ( index = Index )? '=>' expression = Expression ;
+
+/* CLASS EXTENT EXPRESSIONS */
+ClassExtentExpressionCompletion :
+ {ClassExtentExpressionCompletion}'allInstances' '(' ')' ;
+
+/* SEQUENCE CONSTRUCTION EXPRESSIONS */
+SequenceAnyExpression :
+ {SequenceAnyExpression}'any' completion = SequenceConstructionExpressionCompletion
+ | {SequenceAnyExpression}'null' ;
+
+SequenceConstructionExpressionCompletion :
+ {SequenceConstructionExpressionCompletion}( multiplicityIndicator = MultiplicityIndicator )? '{'( sequenceElements = SequenceElements )? '}' ;
+
+MultiplicityIndicator :
+ '[' ']' ;
+
+SequenceElements :
+ expression = Expression ( '::' expressionCompletion = Expression | sequenceCompletion = SequenceElementListCompletion )
+ | initializationExpression = SequenceInitializationExpression sequenceCompletion = SequenceElementListCompletion ;
+
+SequenceElementListCompletion :
+ {SequenceElementListCompletion}( ',' sequenceElement += SequenceElement )* ( ',' )? ;
+
+SequenceElement :
+ Expression | SequenceInitializationExpression ;
+
+SequenceInitializationExpression :
+ ( 'new' )? '{' SequenceElements '}' ;
+
+/* SEQUENCE ACCESS EXPRESSIONS */
+Index :
+ '[' Expression ']' ;
+
+/* SEQUENCE OPERATION, REDUCTION AND EXPANSION EXPRESSIONS */
+SequenceOperationOrReductionOrExpansion :
+ '->'
+ ( qualifiedName = QualifiedName tuple = Tuple | 'reduce' ( 'ordered' )? qualifiedName = QualifiedName
+ | expansionOperator = ExpansionOperator name = Name '(' expression = Expression ')') ;
+
+enum ExpansionOperator :
+ SELECT = 'select' |
+ COLLECT = 'collect' |
+ REJECT = 'reject' |
+ ITERATE = 'iterate' |
+ FORALL = 'forAll' |
+ EXISTS = 'exists'|
+ ONE = 'one' ;
+
+/* INCREMENT OR DECREMENT EXPRESSIONS */
+PostfixExpressionCompletion :
+ primaryCompletion = PrimaryExpressionCompletion ( postfixOperation = PostfixOperation )? ;
+
+PostfixOperation :
+ operator = AffixOperator ;
+
+PrefixExpression :
+ operator = AffixOperator expression = PrimaryExpression ;
+
+enum AffixOperator :
+ INCR = '++' |
+ DECR = '--' ;
+
+/* UNARY EXPRESSIONS */
+UnaryExpression :
+ PostfixOrCastExpression | NonPostfixNonCastUnaryExpression ;
+
+PostfixOrCastExpression :
+ NonNamePostfixOrCastExpression | NameOrPrimaryExpressionAlt ;
+
+// ADDED for implem of PostfixOrCastExpression
+NameOrPrimaryExpressionAlt :
+ nameOrPrimary = NameOrPrimaryExpression completion = PostfixExpressionCompletion ;
+/////////////////////////////////////////////////////////
+
+NonNameUnaryExpression :
+ NonNamePostfixOrCastExpression | NonPostfixNonCastUnaryExpression ;
+
+NonNamePostfixOrCastExpression :
+ '(' ( 'any' '(' castCompletion1 = CastCompletion | qualifiedName = PotentiallyAmbiguousQualifiedName
+ ( ')' castCompletion2 = CastCompletion
+ | nameToExpressionCompletion = NameToExpressionCompletion ')' postfixExpressionCompletion = PostfixExpressionCompletion
+ )
+ | nonNameExpression = NonNameExpression ')' postfixExpressionCompletion = PostfixExpressionCompletion)
+ | baseExpression = BaseExpression postfixExpressionCompletion = PostfixExpressionCompletion ;
+
+NonPostfixNonCastUnaryExpression :
+ PrefixExpression
+ | NumericUnaryExpression
+ | BooleanNegationExpression
+ | BitStringComplementExpression
+ | IsolationExpression ;
+
+BooleanNegationExpression :
+ '!' unaryExpression = UnaryExpression ;
+
+BitStringComplementExpression :
+ '~' unaryExpression = UnaryExpression ;
+
+NumericUnaryExpression :
+ operator = NumericUnaryOperator unaryExpression = UnaryExpression ;
+
+enum NumericUnaryOperator :
+ PLUS ='+' |
+ MINUS = '-' ;
+
+IsolationExpression :
+ '$' unaryExpression = UnaryExpression ;
+
+//CastExpression :
+// '(' typeName = TypeName ')' castCompletion = CastCompletion ;
+
+CastCompletion :
+ PostfixOrCastExpression
+ | BooleanNegationExpression
+ | BitStringComplementExpression
+ | IsolationExpression ;
+
+/* ARITHMETIC EXPRESSIONS */
+MultiplicativeExpression :
+ unaryExpression = UnaryExpression completion = MultiplicativeExpressionCompletion ;
+
+MultiplicativeExpressionCompletion :
+ {MultiplicativeExpressionCompletion}( multiplicativeOperator += MultiplicativeOperator unaryExpression += UnaryExpression )* ;
+
+enum MultiplicativeOperator :
+ STAR = '*' |
+ DIV = '/' |
+ MOD = '%' ;
+
+AdditiveExpression :
+ unaryExpression = UnaryExpression completion = AdditiveExpressionCompletion ;
+
+AdditiveExpressionCompletion :
+ MultiplicativeExpressionCompletion
+ ( {AdditiveExpressionCompletion.firstCompletion = current} additiveOperator += AdditiveOperator multiplicativeExpression += MultiplicativeExpression
+ ( additiveOperator += AdditiveOperator multiplicativeExpression += MultiplicativeExpression)*)? ;
+
+enum AdditiveOperator :
+ PLUS = '+' |
+ MINUS = '-' ;
+/* SHIFT EXPRESSIONS */
+ShiftExpression :
+ unaryExpression = UnaryExpression completion = ShiftExpressionCompletion ;
+
+ShiftExpressionCompletion :
+ AdditiveExpressionCompletion
+ ({ShiftExpressionCompletion.firstCompletion = current} shiftOperator += ShiftOperator additiveExpression += AdditiveExpression
+ ( shiftOperator += ShiftOperator additiveExpression += AdditiveExpression )*)? ;
+
+enum ShiftOperator :
+ LSHIFT = '<<' |
+ RSHIFT = '>>' |
+ URSHIFT = '>>>' ;
+
+/* RELATIONAL EXPRESSIONS */
+RelationalExpression :
+ unaryExpression = UnaryExpression completion = RelationalExpressionCompletion ;
+
+RelationalExpressionCompletion :
+ ShiftExpressionCompletion
+ ({RelationalExpressionCompletion.firstCompletion = current}relationalOperator = RelationalOperator shiftExpression = ShiftExpression )? ;
+
+enum RelationalOperator :
+ LT = '<' |
+ GT = '>' |
+ LE = '<=' |
+ GE = '>=' ;
+
+/* CLASSIFICATION EXPRESSIONS */
+ClassificationExpression :
+ RelationalExpression ({ClassificationExpression.expression = current} completion = ClassificationExpressionCompletion)? ;
+ //unaryExpression = UnaryExpression completion = ClassificationExpressionCompletion ;
+
+ClassificationExpressionCompletion :
+ RelationalExpressionCompletion
+ ({ClassificationExpressionCompletion.firstCompletion=current} classificationOperator = ClassificationOperator qualifiedName = QualifiedName )? ;
+
+enum ClassificationOperator :
+ INSTANCEOF = 'instanceof' |
+ HASTYPE = 'hastype' ;
+/* EQUALITY EXPRESSIONS */
+EqualityExpression :
+ unaryExpression = UnaryExpression completion = ClassificationExpressionCompletion ;
+
+EqualityExpressionCompletion :
+ ClassificationExpressionCompletion
+ ( {EqualityExpressionCompletion.firstCompletion=current} equalityOperator += EqualityOperator classificationExpression += ClassificationExpression
+ ( equalityOperator += EqualityOperator classificationExpression += ClassificationExpression)*)? ;
+
+enum EqualityOperator :
+ EQ = '==' |
+ NE = '!=' ;
+/* LOGICAL EXPRESSIONS */
+AndExpression :
+ unaryExpression = UnaryExpression completion = AndExpressionCompletion ;
+
+AndExpressionCompletion :
+ EqualityExpressionCompletion
+ ( {AndExpressionCompletion.firstCompletion = current}'&' equalityExpression += EqualityExpression
+ ( '&' equalityExpression += EqualityExpression )*)? ;
+
+ExclusiveOrExpression :
+ unaryExpression = UnaryExpression completion = ExclusiveOrExpressionCompletion ;
+
+ExclusiveOrExpressionCompletion :
+ AndExpressionCompletion
+ ({ExclusiveOrExpressionCompletion.firstExpression=current} '^' andExpression += AndExpression
+ ( '^' andExpression += AndExpression )*)? ;
+
+InclusiveOrExpression :
+ unaryExpression = UnaryExpression completion = InclusiveOrExpressionCompletion ;
+
+InclusiveOrExpressionCompletion :
+ ExclusiveOrExpressionCompletion
+ ({InclusiveOrExpressionCompletion.firstCompletion=current} '|' exclusiveOrExpression += ExclusiveOrExpression
+ ( '|' exclusiveOrExpression += ExclusiveOrExpression )*)? ;
+
+/* CONDITIONAL LOGICAL EXPRESSIONS */
+ConditionalAndExpression :
+ unaryExpression = UnaryExpression completion = ConditionalAndExpressionCompletion ;
+
+ConditionalAndExpressionCompletion :
+ InclusiveOrExpressionCompletion
+ ({ConditionalAndExpressionCompletion.firstCompletion = current} '&&' inclusiveOrExpression += InclusiveOrExpression
+ ( '&&' inclusiveOrExpression += InclusiveOrExpression )*)? ;
+
+ConditionalOrExpression :
+ unaryExpression = UnaryExpression completion = ConditionalOrExpressionCompletion ;
+
+ConditionalOrExpressionCompletion :
+ ConditionalAndExpressionCompletion
+ ({ConditionalOrExpressionCompletion.firstCompletion = current} '||' conditionalAndExpression += ConditionalAndExpression
+ ( '||' conditionalAndExpression += ConditionalAndExpression )*)? ;
+
+/* CONDITIONAL-TEST EXPRESSIONS */
+//ConditionalExpression :
+// unaryExpression = UnaryExpression completion = ConditionalExpressionCompletion ;
+
+ConditionalExpressionCompletion :
+ ConditionalOrExpressionCompletion
+ ({ConditionalExpressionCompletion.firstCompletion = current} '?' expression1 = ConditionalOrExpression ':' expression2 = ConditionalOrExpression )? ;
+/* ASSIGNMENT EXPRESSIONS */
+AssignmentExpressionCompletion :
+ operator = AssignmentOperator expression = Expression ;
+
+enum AssignmentOperator :
+ ASSIGN = '='
+ | PLUSASSIGN = '+='
+ | MINUSASSIGN = '-='
+ | STARASSIGN = '*='
+ | SLASHASSIGN = '/='
+ | REMASSIGN = '%='
+ | ANSASSIGN = '&='
+ | ORASSIGN = '|='
+ | XORASSIGN = '^='
+ | LSHIFTASSIGN = '<<='
+ | RSHIFTASSIGN = '>>='
+ | URSHIFTASSIGN = '>>>=' ;
+
+
+/****************
+* Terminals
+*****************/
+
+//terminal DOUBLE_COLON : '::' ;
+
+terminal ID : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')* | ('\'' -> '\'') ;
+terminal STRING : '"' ( '\\' ('b'|'t'|'n'|'f'|'r'|'"'|"'"|'\\') | !('\\'|'"') )* '"' ;
+//terminal IDENTIFIER : ID ;
+//terminal IDENTIFIER : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')* | ('\'' -> '\'') ;
+
+//terminal DOCUMENTATION_COMMENT : '/*' -> '*/' ;
+
+//terminal ML_COMMENT : '/°' -> '°/';
+//terminal SL_COMMENT : '°°' !('\n'|'\r')* ('\r'? '\n')?;
+
+//terminal WS : (' '|'\t'|'\r'|'\n')+; \ No newline at end of file
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/GenerateAlf.mwe2 b/extraplugins/alf09/src/org/eclipse/papyrus/alf/GenerateAlf.mwe2
new file mode 100644
index 00000000000..fd626100672
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/GenerateAlf.mwe2
@@ -0,0 +1,103 @@
+module org.eclipse.papyrus.alf.Alf
+
+import org.eclipse.emf.mwe.utils.*
+import org.eclipse.xtext.generator.*
+import org.eclipse.xtext.ui.generator.*
+
+var grammarURI = "classpath:/org/eclipse/papyrus/alf/Alf.xtext"
+var file.extensions = "alf"
+var projectName = "org.eclipse.papyrus.alf"
+var runtimeProject = "../${projectName}"
+
+Workflow {
+ bean = StandaloneSetup {
+ platformUri = "${runtimeProject}/.."
+ }
+
+ component = DirectoryCleaner {
+ directory = "${runtimeProject}/src-gen"
+ }
+
+ component = DirectoryCleaner {
+ directory = "${runtimeProject}.ui/src-gen"
+ }
+
+ component = Generator {
+ pathRtProject = runtimeProject
+ pathUiProject = "${runtimeProject}.ui"
+ projectNameRt = projectName
+ projectNameUi = "${projectName}.ui"
+ language = {
+ uri = grammarURI
+ fileExtensions = file.extensions
+
+ // Java API to access grammar elements (required by several other fragments)
+ fragment = grammarAccess.GrammarAccessFragment {}
+
+ // generates Java API for the generated EPackages
+ fragment = ecore.EcoreGeneratorFragment {
+ // referencedGenModels = "uri to genmodel, uri to next genmodel"
+ }
+
+ // the serialization component
+ fragment = parseTreeConstructor.ParseTreeConstructorFragment {}
+
+ // a custom ResourceFactory for use with EMF
+ fragment = resourceFactory.ResourceFactoryFragment {
+ fileExtensions = file.extensions
+ }
+
+ // The antlr parser generator fragment.
+ fragment = parser.antlr.XtextAntlrGeneratorFragment {
+ //options = {
+ // backtrack = true
+ //}
+ }
+
+ // java-based API for validation
+ fragment = validation.JavaValidatorFragment {
+ composedCheck = "org.eclipse.xtext.validation.ImportUriValidator"
+ // composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
+ // registerForImportedPackages = true
+ }
+
+ // scoping and exporting API
+ fragment = scoping.ImportURIScopingFragment {}
+ fragment = exporting.SimpleNamesFragment {}
+
+ // scoping and exporting API
+ //fragment = scoping.ImportNamespacesScopingFragment {}
+ //fragment = exporting.QualifiedNamesFragment {}
+ //fragment = builder.BuilderIntegrationFragment {}
+
+ // formatter API
+ fragment = formatting.FormatterFragment {}
+
+ // labeling API
+ fragment = labeling.LabelProviderFragment {}
+
+ // outline API
+ fragment = outline.OutlineTreeProviderFragment {}
+ fragment = outline.QuickOutlineFragment {}
+
+ // quickfix API
+ fragment = quickfix.QuickfixProviderFragment {}
+
+ // content assist API
+ fragment = contentAssist.JavaBasedContentAssistFragment {}
+
+ // generates a more lightweight Antlr parser and lexer tailored for content assist
+ fragment = parser.antlr.XtextAntlrUiGeneratorFragment {
+ //options = {
+ // backtrack = true
+ //}
+ }
+
+ // project wizard (optional)
+ // fragment = projectWizard.SimpleProjectWizardFragment {
+ // generatorProjectName = "${projectName}.generator"
+ // modelFileExtension = file.extensions
+ // }
+ }
+ }
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/formatting/AlfFormatter.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/formatting/AlfFormatter.java
new file mode 100644
index 00000000000..3add6fb48e7
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/formatting/AlfFormatter.java
@@ -0,0 +1,37 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.alf.formatting;
+
+import org.eclipse.xtext.formatting.impl.AbstractDeclarativeFormatter;
+import org.eclipse.xtext.formatting.impl.FormattingConfig;
+
+/**
+ * This class contains custom formatting description.
+ *
+ * see : http://www.eclipse.org/Xtext/documentation/latest/xtext.html#formatting
+ * on how and when to use it
+ *
+ * Also see {@link org.eclipse.xtext.xtext.XtextFormattingTokenSerializer} as an example
+ */
+public class AlfFormatter extends AbstractDeclarativeFormatter {
+
+ @Override
+ protected void configureFormatting(FormattingConfig c) {
+// It's usually a good idea to activate the following three statements.
+// They will add and preserve newlines around comments
+// c.setLinewrap(0, 1, 2).before(getGrammarAccess().getSL_COMMENTRule());
+// c.setLinewrap(0, 1, 2).before(getGrammarAccess().getML_COMMENTRule());
+// c.setLinewrap(0, 1, 1).after(getGrammarAccess().getML_COMMENTRule());
+ }
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/scoping/AlfPartialScope.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/scoping/AlfPartialScope.java
new file mode 100644
index 00000000000..32cddeaaec0
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/scoping/AlfPartialScope.java
@@ -0,0 +1,76 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.alf.scoping;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+public class AlfPartialScope {
+
+ private List<List<EObject>> nestedScopes ;
+ private IGetNameStrategy nameStrategy ;
+ private IBuildScopeStrategy buildScopeStrategy ;
+
+ public AlfPartialScope(IGetNameStrategy nameStrategy, IBuildScopeStrategy buildScopeStrategy, EObject contextElement) {
+ this.nameStrategy = nameStrategy ;
+ this.buildScopeStrategy = buildScopeStrategy ;
+ nestedScopes = buildScopeStrategy.buildScope(contextElement) ;
+ }
+
+ public String getElementName(EObject eObject) {
+ return nameStrategy.getName(eObject) ;
+ }
+
+ public void buildScope(EObject contextElement) {
+ nestedScopes = buildScopeStrategy.buildScope(contextElement) ;
+ }
+
+ public List<EObject> resolveByName(String elemName) {
+ List<EObject> resolvedElements = new ArrayList<EObject>() ;
+ Iterator<List<EObject>> nestedScopesIterator = nestedScopes.iterator() ;
+ String normalizedElementName = elemName.startsWith("'") ?
+ elemName.substring(1, elemName.length()-1) : // removes first and last '
+ elemName ;
+ while (nestedScopesIterator.hasNext() && resolvedElements.isEmpty()) {
+ for (EObject elem : nestedScopesIterator.next()) {
+ if (getElementName(elem).equals(normalizedElementName))
+ resolvedElements.add(elem) ;
+ }
+ }
+ return resolvedElements ;
+ }
+
+ public List<List<EObject>> getScopeDetails() {
+ return nestedScopes ;
+ }
+
+ public int getScopingLevel(EObject element) {
+ for (int i = 0 ; i<nestedScopes.size() ; i++) {
+ if (nestedScopes.get(i).contains(element))
+ return i ;
+ }
+ return -1 ;
+ }
+
+ public interface IGetNameStrategy {
+ public String getName(EObject element) ;
+ }
+
+ public interface IBuildScopeStrategy {
+ public List<List<EObject>> buildScope(EObject contextElement) ;
+ }
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/scoping/AlfScopeProvider.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/scoping/AlfScopeProvider.java
new file mode 100644
index 00000000000..cbbb2d9ace9
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/scoping/AlfScopeProvider.java
@@ -0,0 +1,27 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.alf.scoping;
+
+import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider;
+
+/**
+ * This class contains custom scoping description.
+ *
+ * see : http://www.eclipse.org/Xtext/documentation/latest/xtext.html#scoping
+ * on how and when to use it
+ *
+ */
+public class AlfScopeProvider extends AbstractDeclarativeScopeProvider {
+ public static AlfScopingTool scopingTool ;
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/scoping/AlfScopingTool.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/scoping/AlfScopingTool.java
new file mode 100644
index 00000000000..4f909b79725
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/scoping/AlfScopingTool.java
@@ -0,0 +1,722 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.alf.scoping;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.alf.alf.AcceptClause;
+import org.eclipse.papyrus.alf.alf.AcceptStatement;
+import org.eclipse.papyrus.alf.alf.DocumentedStatement;
+import org.eclipse.papyrus.alf.alf.InvocationOrAssignementOrDeclarationStatement;
+import org.eclipse.papyrus.alf.alf.LocalNameDeclarationStatement;
+import org.eclipse.papyrus.alf.alf.LoopVariableDefinition;
+import org.eclipse.papyrus.alf.alf.SequenceExpansionExpression;
+import org.eclipse.papyrus.alf.alf.Statement;
+import org.eclipse.papyrus.alf.validation.AlfJavaValidator;
+import org.eclipse.papyrus.alf.validation.typing.TypeExpression;
+import org.eclipse.papyrus.alf.validation.typing.TypeUtils;
+import org.eclipse.uml2.uml.Behavior;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.ElementImport;
+import org.eclipse.uml2.uml.Enumeration;
+import org.eclipse.uml2.uml.EnumerationLiteral;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Namespace;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageImport;
+import org.eclipse.uml2.uml.PackageableElement;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Reception;
+import org.eclipse.uml2.uml.Signal;
+import org.eclipse.uml2.uml.VisibilityKind;
+
+public abstract class AlfScopingTool {
+
+ protected static List<EObject> removeDuplicateClassifiers(List<EObject> list) {
+ List<EObject> intermediateFilteredList = new ArrayList<EObject>() ;
+
+ HashMap<String, Classifier> classifiers = new HashMap<String, Classifier>() ;
+ HashMap<String, Classifier> elementImports = new HashMap<String, Classifier>() ;
+ for (EObject o : list) {
+ if (o instanceof Classifier) {
+ Classifier c = (Classifier) o ;
+ if (classifiers.get(c.getQualifiedName()) == null) {
+ classifiers.put(c.getQualifiedName(), c) ;
+ intermediateFilteredList.add(c) ;
+ }
+ // else => nothing to be done, this is a duplicate
+ }
+ else if (o instanceof ElementImport) {
+ ElementImport e = (ElementImport)o ;
+ Classifier c = (Classifier)e.getImportedElement() ;
+ if (elementImports.get(e.getAlias()) == null) {
+ elementImports.put(e.getAlias(), c) ;
+ intermediateFilteredList.add(e) ;
+ }
+ else {// need to check if element import aliases the same thing.
+ Classifier alreadyInTheList = elementImports.get(e.getAlias()) ;
+ if (! alreadyInTheList.getQualifiedName().equals(c.getQualifiedName())) {
+ // The model is ill-formed, and there's no need to filter
+ intermediateFilteredList.add(e) ;
+ }
+ // else => nothing to be done, this is a duplicate
+ }
+ }
+ }
+
+ // needs to make a second pass on the filtered list, to remove cases where aliases and names are the same, and represent the same element
+ List<EObject> filteredList = new ArrayList<EObject>() ;
+ for (int i = 0 ; i < intermediateFilteredList.size() ; i++) {
+ String classifierName = (intermediateFilteredList.get(i) instanceof Classifier) ?
+ ((Classifier)intermediateFilteredList.get(i)).getName() :
+ ((ElementImport)intermediateFilteredList.get(i)).getAlias() ;
+ String classifierQualifiedName = (intermediateFilteredList.get(i) instanceof Classifier) ?
+ ((Classifier)intermediateFilteredList.get(i)).getQualifiedName() :
+ ((Classifier)((ElementImport)intermediateFilteredList.get(i)).getImportedElement()).getQualifiedName() ;
+ boolean duplicateFound = false ;
+ for (int j = i + 1 ; j < intermediateFilteredList.size() && !duplicateFound ; j++) {
+ String cddDuplicateClassifierName = (intermediateFilteredList.get(j) instanceof Classifier) ?
+ ((Classifier)intermediateFilteredList.get(j)).getName() :
+ ((ElementImport)intermediateFilteredList.get(j)).getAlias() ;
+ if (cddDuplicateClassifierName.equals(classifierName)) {
+ String cddDuplicateClassifierQualifiedName = (intermediateFilteredList.get(j) instanceof Classifier) ?
+ ((Classifier)intermediateFilteredList.get(j)).getQualifiedName() :
+ ((Classifier)((ElementImport)intermediateFilteredList.get(j)).getImportedElement()).getQualifiedName() ;
+ if (cddDuplicateClassifierQualifiedName.equals(classifierQualifiedName)) {
+ duplicateFound = true ;
+ }
+ }
+ }
+ if (!duplicateFound)
+ filteredList.add(intermediateFilteredList.get(i)) ;
+ }
+
+ return filteredList ;
+ }
+
+ public abstract AlfPartialScope getVisibleVariablesOrParametersOrProperties(EObject context) ;
+
+
+ public AlfPartialScope getVisibleOperationsOrBehaviors(EObject context) {
+ AlfPartialScope.IGetNameStrategy nameStrategy = new OperationAndBehaviorNameStrategy() ;
+ AlfPartialScope.IBuildScopeStrategy buildScopeStrategy = new OperationAndBehaviorBuildScopeStrategy() ;
+ return new AlfPartialScope(nameStrategy, buildScopeStrategy, context) ;
+ }
+
+ public AlfPartialScope getVisibleBehaviors(EObject context) {
+ AlfPartialScope.IGetNameStrategy nameStrategy = new BehaviorsNameStrategy() ;
+ AlfPartialScope.IBuildScopeStrategy buildScopeStrategy = new BehaviorsBuildScopeStrategy() ;
+ return new AlfPartialScope(nameStrategy, buildScopeStrategy, context) ;
+ }
+
+ public AlfPartialScope getVisibleClassifiers(EObject context) {
+ AlfPartialScope.IGetNameStrategy nameStrategy = new ClassifiersNameStrategy() ;
+ AlfPartialScope.IBuildScopeStrategy buildScopeStrategy = new ClassifiersBuildScopeStrategy() ;
+ return new AlfPartialScope(nameStrategy, buildScopeStrategy, context) ;
+ }
+
+ public AlfPartialScope getVisiblePackages(EObject context) {
+ if (context instanceof Package) {
+ AlfPartialScope.IGetNameStrategy nameStrategy = new PackageNameStrategy() ;
+ AlfPartialScope.IBuildScopeStrategy buildScopeStrategy = new PackagesBuildScopeStrategy() ;
+ return new AlfPartialScope(nameStrategy, buildScopeStrategy, context) ;
+ }
+ AlfPartialScope.IGetNameStrategy nameStrategy = new PackageNameStrategy() ;
+ AlfPartialScope.IBuildScopeStrategy buildScopeStrategy = new PackagesBuildScopeStrategy() ;
+ return new AlfPartialScope(nameStrategy, buildScopeStrategy, context) ;
+ }
+
+ public boolean isAReturnStatementExpected(EObject context) {
+ return false ;
+ }
+
+ public TypeExpression getExpectedReturnType(EObject context) {
+ return null;
+ }
+
+ public AlfPartialScope getVisibleSignalReceptions(EObject context) {
+ AlfPartialScope.IGetNameStrategy nameStrategy = new ReceptionsNameStrategy() ;
+ AlfPartialScope.IBuildScopeStrategy buildScopeStrategy = new ReceptionsBuildScopeStrategy() ;
+ return new AlfPartialScope(nameStrategy, buildScopeStrategy, context);
+ }
+
+ /*
+ * Strategies for operations
+ */
+ protected class OperationAndBehaviorNameStrategy implements AlfPartialScope.IGetNameStrategy {
+ public String getName(EObject element) {
+ if (element instanceof Operation)
+ return ((Operation)element).getName();
+ else if (element instanceof Behavior)
+ return ((Behavior)element).getName() ;
+ else if (element instanceof ElementImport) {
+ ElementImport eImport = (ElementImport)element ;
+ if (eImport.getAlias() != null)
+ return eImport.getAlias() ;
+ else
+ return ((Behavior)eImport.getImportedElement()).getName() ;
+ }
+ else if (element instanceof Reception) {
+ return ((Reception)element).getName() ;
+ }
+ else
+ return "Unexpected element kind..." ;
+ }
+ };
+
+ protected class OperationAndBehaviorBuildScopeStrategy implements AlfPartialScope.IBuildScopeStrategy {
+ public List<List<EObject>> buildScope(EObject contextElement) {
+ List<List<EObject>> nestedScopes = new ArrayList<List<EObject>>() ;
+ List<EObject> nestedList = new ArrayList<EObject>() ;
+
+ // in the case where the context element is a Package or an ElementImport for a package, the scope can only contain behaviors
+ Package potentialContextPackage = null ;
+ if (contextElement instanceof Package) {
+ potentialContextPackage = (Package)contextElement ;
+ }
+ else if (contextElement instanceof ElementImport) {
+ ElementImport eImport = (ElementImport)contextElement ;
+ if (eImport.getImportedElement() instanceof Package)
+ potentialContextPackage = (Package)eImport.getImportedElement() ;
+ }
+ if (potentialContextPackage != null) {
+ AlfPartialScope behaviorScope = AlfScopeProvider.scopingTool.getVisibleBehaviors(contextElement) ;
+ for (List<EObject> scope : behaviorScope.getScopeDetails()) {
+ nestedScopes.add(scope) ;
+ }
+ return nestedScopes ;
+ }
+
+ // At this point, we have identified that the context element is not a package.
+
+ // First scoping levels concern operations
+ // retrieves the contextClassier (i.e. the owner of the contextOperation, or contextElement)
+ Classifier contextClassifier ;
+ if (contextElement instanceof Classifier) {
+ contextClassifier = (Classifier)contextElement ;
+ }
+ else if (contextElement instanceof ElementImport && ((ElementImport)contextElement).getImportedElement() instanceof Classifier) {
+ contextClassifier = (Classifier) ((ElementImport)contextElement).getImportedElement() ;
+ }
+ else {
+ contextClassifier = AlfJavaValidator.getContextClassifier() ;
+ }
+
+ // add all the operations owned by the context classifier at the first scoping level
+ nestedList.addAll(contextClassifier.getOperations()) ;
+ // adds also receptions
+ if (contextClassifier instanceof org.eclipse.uml2.uml.Class) {
+ nestedList.addAll(((Class)contextClassifier).getOwnedReceptions()) ;
+ }
+
+ nestedScopes.add(nestedList) ;
+ // then builds other scoping levels based on context classifier inheritance hierarchy
+ List<Classifier> currentGenerals = new ArrayList<Classifier>() ;
+ currentGenerals.addAll(contextClassifier.getGenerals()) ;
+ List<Classifier> nextGenerals ;
+ while (!currentGenerals.isEmpty()) {
+ nextGenerals = new ArrayList<Classifier>() ;
+ nestedList = new ArrayList<EObject>() ;
+ for (Classifier general : currentGenerals) {
+ nextGenerals.addAll(general.getGenerals()) ;
+ for (Operation o : general.getOperations())
+ nestedList.add(o) ;
+ if (general instanceof Class) {
+ for (Reception r : ((Class)general).getOwnedReceptions()) {
+ nestedList.add(r) ;
+ }
+ }
+ }
+ nestedScopes.add(nestedList) ;
+ currentGenerals = nextGenerals ;
+ }
+
+ // finally feeds last scoping levels with behaviors (only if contextElement is not a Class)
+ if (! ((contextElement instanceof Classifier) ||
+ ((contextElement instanceof ElementImport &&
+ ((ElementImport)contextElement).getImportedElement() instanceof Classifier)))) {
+
+ AlfPartialScope behaviorScope = AlfScopeProvider.scopingTool.getVisibleBehaviors(contextElement) ;
+
+ for (List<EObject> scope : behaviorScope.getScopeDetails()) {
+ nestedScopes.add(scope) ;
+ }
+ }
+
+ return nestedScopes ;
+ }
+ }
+
+ /*
+ * Strategies for Receptions
+ */
+ protected class ReceptionsNameStrategy implements AlfPartialScope.IGetNameStrategy {
+ public String getName(EObject element) {
+ if (element instanceof Signal)
+ return ((Signal)element).getName();
+ else
+ return "Unexpected element kind..." ;
+ }
+ };
+
+ protected class ReceptionsBuildScopeStrategy implements AlfPartialScope.IBuildScopeStrategy {
+ public List<List<EObject>> buildScope(EObject contextElement) {
+ List<List<EObject>> nestedScopes = new ArrayList<List<EObject>>() ;
+ List<EObject> nestedList = new ArrayList<EObject>() ;
+
+ // retrieves the owner of the contextOperation
+ Classifier contextClassifier = AlfJavaValidator.getContextClassifier() ;
+ if (! (contextClassifier instanceof org.eclipse.uml2.uml.Class)) {
+ nestedScopes.add(nestedList) ;
+ return nestedScopes ;
+ }
+
+ // add all the signals for which a Reception is defined
+ for (org.eclipse.uml2.uml.Feature f : contextClassifier.allFeatures()) {
+ if (f instanceof Reception)
+ if (((Reception)f).getSignal() != null)
+ nestedList.add(((Reception)f).getSignal()) ;
+ }
+
+ nestedScopes.add(nestedList) ;
+
+ return nestedScopes ;
+ }
+ }
+
+ /*
+ * Strategies for Variables, Parameters and Properties
+ */
+ protected class VariableOrParameterOrPropertyNameStrategy implements AlfPartialScope.IGetNameStrategy {
+ public String getName(EObject element) {
+ if (element instanceof Property)
+ return ((Property)element).getName();
+ else if (element instanceof LocalNameDeclarationStatement){
+ return ((LocalNameDeclarationStatement)element).getVarName() ;
+ }
+ else if (element instanceof InvocationOrAssignementOrDeclarationStatement) {
+ InvocationOrAssignementOrDeclarationStatement statement = (InvocationOrAssignementOrDeclarationStatement)element ;
+ return statement.getVariableDeclarationCompletion() != null ?
+ statement.getVariableDeclarationCompletion().getVariableName() :
+ "" ;
+ }
+ else if (element instanceof LoopVariableDefinition) {
+ return ((LoopVariableDefinition)element).getName() ;
+ }
+ else if (element instanceof AcceptClause) {
+ return ((AcceptClause)element).getName() ;
+ }
+ else if (element instanceof AcceptStatement) {
+ return ((AcceptStatement)element).getClause().getName() ;
+ }
+ else if (element instanceof SequenceExpansionExpression) {
+ SequenceExpansionExpression expression = (SequenceExpansionExpression)element ;
+ return expression.getName() != null ?
+ expression.getName() :
+ "" ;
+ }
+ return "unexpected kind ..." ;
+ }
+ }
+
+ protected abstract class VariableOrPropertyOrParameterBuildScopeStrategy implements AlfPartialScope.IBuildScopeStrategy {
+ public abstract List<List<EObject>> buildScope(EObject contextElement) ;
+
+ public boolean containsALocalNameDeclaration(DocumentedStatement previousDocumentStatement) {
+ Statement statement = previousDocumentStatement.getStatement() ;
+ if (statement instanceof LocalNameDeclarationStatement)
+ return true ;
+ if (statement instanceof InvocationOrAssignementOrDeclarationStatement) {
+ //TODO : handle cases with implicit declarations, e.g., v = 14 ; // v is a variable of type Integer
+ InvocationOrAssignementOrDeclarationStatement cddDclStatement = (InvocationOrAssignementOrDeclarationStatement)statement;
+ if (cddDclStatement.getVariableDeclarationCompletion() != null) {
+ return true ;
+ }
+ }
+ if (statement instanceof AcceptStatement) {
+ AcceptStatement cddDclStatement = (AcceptStatement)statement ;
+ if (cddDclStatement.getSimpleAccept() != null && cddDclStatement.getClause().getName() != null)
+ return true ;
+ }
+ return false;
+ }
+
+ }
+
+ /*
+ * Strategies for Classifiers
+ */
+ protected class ClassifiersNameStrategy implements AlfPartialScope.IGetNameStrategy {
+ public String getName(EObject element) {
+ if (element instanceof Classifier)
+ return ((Classifier)element).getName() ;
+ else if (element instanceof ElementImport) {
+ ElementImport imported = (ElementImport)element ;
+ return imported.getAlias() != null ? imported.getAlias() : ((Classifier)imported.getImportedElement()).getName() ;
+ }
+ else
+ return "Unexpected element kind..." ;
+ }
+ };
+
+ protected class ClassifiersBuildScopeStrategy implements AlfPartialScope.IBuildScopeStrategy {
+ public List<List<EObject>> buildScope(EObject contextElement) {
+ List<List<EObject>> nestedScopes = new ArrayList<List<EObject>>() ;
+ List<EObject> nestedList = new ArrayList<EObject>() ;
+
+ // first checks if contextElement represents a Package. In this case, builds a scope containing all classifiers visible from this package
+ Package potentialContextPackage = null ;
+ if (contextElement instanceof Package)
+ potentialContextPackage = (Package)contextElement ;
+ else if (contextElement instanceof ElementImport) {
+ ElementImport eImport = (ElementImport)contextElement ;
+ if (eImport.getImportedElement() instanceof Package)
+ potentialContextPackage = (Package)eImport.getImportedElement() ;
+ }
+ if (potentialContextPackage != null) {
+ List<EObject> importedClassifiers = processPublicallyImportedClassifiers(potentialContextPackage) ;
+ importedClassifiers = removeDuplicateClassifiers(importedClassifiers) ;
+ nestedScopes.add(importedClassifiers) ;
+ return nestedScopes ;
+ }
+
+ // retrieves the owner of the contextOperation
+ Classifier contextClassifier = AlfJavaValidator.getContextClassifier() ;
+
+ // add the context classifier at the first scoping level
+ nestedList.add(contextClassifier) ;
+ // retrieves all package imports, and add all classifiers available at the root of this package
+ for (PackageImport i : contextClassifier.getPackageImports()) {
+ Package importedPackage = i.getImportedPackage() ;
+ nestedList.addAll(processPublicallyImportedClassifiers(importedPackage)) ;
+ }
+ // retrieves all element imports. For those which concern a Classifier, either add the classifier if no alias is defined, or the element import if an alias is defined
+ for (ElementImport i : contextClassifier.getElementImports()) {
+ PackageableElement e = i.getImportedElement() ;
+ if (e instanceof Classifier) {
+ if (i.getAlias() != null)
+ nestedList.add(i) ;
+ else
+ nestedList.add(e) ;
+ }
+ }
+ nestedList = removeDuplicateClassifiers(nestedList) ;
+ nestedScopes.add(nestedList) ;
+
+ // Then process the implicit import of alf library
+ nestedList = new ArrayList<EObject>() ;
+ if (AlfJavaValidator.getAlfStandardLibrary() != null) {
+ List<EObject> importedClassifiers = processPublicallyImportedClassifiers(AlfJavaValidator.getAlfStandardLibrary()) ;
+
+ importedClassifiers.add(TypeUtils._Collection.extractActualType()) ;
+ importedClassifiers.add(TypeUtils._Set.extractActualType()) ;
+ importedClassifiers.add(TypeUtils._Bag.extractActualType()) ;
+ importedClassifiers.add(TypeUtils._Queue.extractActualType()) ;
+ importedClassifiers.add(TypeUtils._OrderedSet.extractActualType()) ;
+ importedClassifiers.add(TypeUtils._List.extractActualType()) ;
+ importedClassifiers.add(TypeUtils._Deque.extractActualType()) ;
+ importedClassifiers.add(TypeUtils._Map.extractActualType()) ;
+ //importedClassifiers.add(TypeUtils._Entry.extractActualType()) ;
+
+ nestedList.addAll(removeDuplicateClassifiers(importedClassifiers)) ;
+ nestedScopes.add(nestedList) ;
+ }
+
+ // Then process all classifiers at the same namespace level than the context classifier
+ nestedList = new ArrayList<EObject>() ;
+ Namespace namespaceOfContextClassifier = contextClassifier.getNamespace() ;
+ for (Element e : namespaceOfContextClassifier.getOwnedElements()) {
+ if (e instanceof Classifier && e != contextClassifier)
+ nestedList.add(e) ;
+ }
+ nestedScopes.add(nestedList) ;
+
+ return nestedScopes ;
+ }
+
+ private List<EObject> processPublicallyImportedClassifiers (Package p){
+ List<EObject> importedClassifiers = new ArrayList<EObject>() ;
+ for (NamedElement n : p.getOwnedMembers()) {
+ if (n instanceof Classifier)
+ if (((Classifier)n).getVisibility() != VisibilityKind.PRIVATE_LITERAL) {
+
+ importedClassifiers.add(n) ;
+ }
+ }
+ for (ElementImport eImport : p.getElementImports()) {
+ if (eImport.getVisibility()!= VisibilityKind.PRIVATE_LITERAL) {
+ PackageableElement element = eImport.getImportedElement() ;
+ if (element instanceof Classifier) {
+
+ if (eImport.getAlias() != null) {
+ importedClassifiers.add(eImport) ;
+ }
+ else {
+ importedClassifiers.add(element) ;
+ }
+
+ }
+ }
+ }
+ for (PackageImport pImport : p.getPackageImports()) {
+ if (pImport.getVisibility() != VisibilityKind.PRIVATE_LITERAL) {
+ importedClassifiers.addAll(processPublicallyImportedClassifiers(pImport.getImportedPackage())) ;
+ }
+ }
+ return importedClassifiers ;
+ }
+ }
+
+ /*
+ * Strategies for Packages
+ */
+ protected class PackageNameStrategy implements AlfPartialScope.IGetNameStrategy {
+ public String getName(EObject element) {
+ if (element instanceof Namespace)
+ return ((Namespace)element).getName() ;
+ else if (element instanceof ElementImport) {
+ ElementImport eImport = (ElementImport)element ;
+ return eImport.getAlias() != null ? eImport.getAlias() : eImport.getImportedElement().getName() ;
+ }
+ else
+ return "Unexpected element kind..." ;
+ }
+ }
+
+ protected class PackagesBuildScopeStrategy implements AlfPartialScope.IBuildScopeStrategy {
+ public List<List<EObject>> buildScope(EObject contextElement) {
+
+ List<List<EObject>> nestedScopes = new ArrayList<List<EObject>>() ;
+ List<EObject> nestedList = new ArrayList<EObject>() ;
+
+ if (contextElement instanceof Package) { // if the context element is a package, returns the scope related to this package.
+ nestedScopes.add(processPublicallyImportedPackages((Package)contextElement)) ;
+ return nestedScopes ;
+ }
+
+ Package root = (Package)AlfJavaValidator.getModel() ;
+
+ // first process packages directly imported by the context classifier (either package import or element import)
+ Classifier contextClassifier = AlfJavaValidator.getContextClassifier() ;
+
+ nestedList.addAll(processPublicallyImportedPackages(contextClassifier)) ;
+ nestedScopes.add(nestedList) ;
+
+ // Then process the implicit import of alf library
+ nestedList = new ArrayList<EObject>() ;
+ if (AlfJavaValidator.getAlfStandardLibrary() != null) {
+ nestedList.add(AlfJavaValidator.getAlfStandardLibrary()) ;
+ nestedList.addAll(processPublicallyImportedPackages(AlfJavaValidator.getAlfStandardLibrary())) ;
+ nestedScopes.add(nestedList) ;
+ }
+
+ // finally processes the root package
+ nestedList = new ArrayList<EObject>() ;
+ nestedList.add(root) ;
+ nestedScopes.add(nestedList) ;
+
+ return nestedScopes;
+ }
+
+ protected List<EObject> processPublicallyImportedPackages (Namespace namespace) {
+ List<EObject> importedPackages = new ArrayList<EObject>() ;
+
+ for (NamedElement ownedMember : namespace.getOwnedMembers()) {
+ if (ownedMember.getVisibility() != VisibilityKind.PRIVATE_LITERAL && ownedMember instanceof Package)
+ importedPackages.add(ownedMember) ;
+ }
+ for (ElementImport eImport : namespace.getElementImports()) {
+ if (eImport.getVisibility() != VisibilityKind.PRIVATE_LITERAL ) {
+ PackageableElement importedElement = eImport.getImportedElement() ;
+ if (importedElement instanceof Package) {
+ if (eImport.getAlias() != null)
+ importedPackages.add(eImport) ;
+ else
+ importedPackages.add(importedElement) ;
+ }
+ }
+ }
+ for (PackageImport pImport : namespace.getPackageImports()) {
+ if (pImport.getVisibility() != VisibilityKind.PRIVATE_LITERAL) {
+ importedPackages.addAll(processPublicallyImportedPackages(pImport.getImportedPackage())) ;
+ }
+ }
+
+ return importedPackages ;
+ }
+ }
+
+
+ /*
+ * Strategies for Behaviors
+ */
+
+ protected class BehaviorsNameStrategy implements AlfPartialScope.IGetNameStrategy {
+ public String getName(EObject element) {
+ if (element instanceof Behavior)
+ return ((Behavior)element).getName() ;
+ else if (element instanceof ElementImport) {
+ ElementImport imported = (ElementImport)element ;
+ return imported.getAlias() != null ? imported.getAlias() : ((Behavior)imported.getImportedElement()).getName() ;
+ }
+ else
+ return "Unexpected element kind..." ;
+ }
+ };
+
+ protected class BehaviorsBuildScopeStrategy implements AlfPartialScope.IBuildScopeStrategy {
+ public List<List<EObject>> buildScope(EObject contextElement) {
+ List<List<EObject>> nestedScopes = new ArrayList<List<EObject>>() ;
+ List<EObject> nestedList = new ArrayList<EObject>() ;
+
+ // first checks if contextElement represents a Package. In this case, builds a scope containing all behaviors visible from this package
+ Package potentialContextPackage = null ;
+ if (contextElement instanceof Package)
+ potentialContextPackage = (Package)contextElement ;
+ else if (contextElement instanceof ElementImport) {
+ ElementImport eImport = (ElementImport)contextElement ;
+ if (eImport.getImportedElement() instanceof Package)
+ potentialContextPackage = (Package)eImport.getImportedElement() ;
+ }
+ if (potentialContextPackage != null) {
+ nestedScopes.add(processPublicallyImportedBehaviors(potentialContextPackage)) ;
+ return nestedScopes ;
+ }
+
+ // retrieves the contextOperation (i.e., the operation edited by the current editor)
+ // retrieves the owner of the contextOperation
+ Classifier contextClassifier = AlfJavaValidator.getContextClassifier() ;
+
+ // retrieves all package imports, and add all behaviors available at the root of this package
+ for (PackageImport i : contextClassifier.getPackageImports()) {
+ Package importedPackage = i.getImportedPackage() ;
+ nestedList.addAll(processPublicallyImportedBehaviors(importedPackage)) ;
+ }
+ // retrieves all element imports. For those which concern a Behavior, either add the behavior if no alias is defined, or the element import if an alias is defined
+ for (ElementImport i : contextClassifier.getElementImports()) {
+ PackageableElement e = i.getImportedElement() ;
+ if (e instanceof Classifier) {
+ if (i.getAlias() != null)
+ nestedList.add(i) ;
+ else
+ nestedList.add(e) ;
+ }
+ }
+ nestedList = removeDuplicateClassifiers(nestedList) ;
+ nestedScopes.add(nestedList) ;
+
+ // Then process the implicit import of alf library
+ nestedList = new ArrayList<EObject>() ;
+ if (AlfJavaValidator.getAlfStandardLibrary() != null) {
+ List<EObject> importedClassifiers = processPublicallyImportedBehaviors(AlfJavaValidator.getAlfStandardLibrary()) ;
+ importedClassifiers = removeDuplicateClassifiers(importedClassifiers) ;
+ nestedList.addAll(importedClassifiers) ;
+ nestedScopes.add(nestedList) ;
+ }
+
+ return nestedScopes ;
+ }
+
+ private List<EObject> processPublicallyImportedBehaviors (Package p){
+ List<EObject> importedBehaviors = new ArrayList<EObject>() ;
+ for (NamedElement n : p.getOwnedMembers()) {
+ if (n instanceof Behavior) {
+ if (((Behavior)n).getVisibility() != VisibilityKind.PRIVATE_LITERAL)
+ importedBehaviors.add(n) ;
+ }
+ else if (n instanceof Package) {
+ importedBehaviors.addAll(processPublicallyImportedBehaviors((Package)n)) ;
+ }
+ }
+ for (ElementImport eImport : p.getElementImports()) {
+ if (eImport.getVisibility()!= VisibilityKind.PRIVATE_LITERAL) {
+ PackageableElement element = eImport.getImportedElement() ;
+ if (element instanceof Behavior) {
+ if (eImport.getAlias() != null)
+ importedBehaviors.add(eImport) ;
+ else
+ importedBehaviors.add(element) ;
+ }
+ }
+ }
+ for (PackageImport pImport : p.getPackageImports()) {
+ if (pImport.getVisibility() != VisibilityKind.PRIVATE_LITERAL) {
+ importedBehaviors.addAll(processPublicallyImportedBehaviors(pImport.getImportedPackage())) ;
+ }
+ }
+ return importedBehaviors ;
+ }
+ }
+
+
+
+ protected class EnumerationLiteralNameStrategy implements AlfPartialScope.IGetNameStrategy {
+ public String getName(EObject element) {
+ if (element instanceof EnumerationLiteral) {
+ return ((EnumerationLiteral)element).getName() ;
+ }
+ return "Unexpected element kind..." ;
+ }
+ }
+
+ protected class EnumerationLiteralBuildScopeStrategy implements AlfPartialScope.IBuildScopeStrategy {
+ public List<List<EObject>> buildScope(EObject contextElement) {
+ List<List<EObject>> nestedScopes = new ArrayList<List<EObject>>() ;
+ List<EObject> nestedList = new ArrayList<EObject>() ;
+
+ if (!(contextElement instanceof Enumeration)) {
+ nestedScopes.add(nestedList) ;
+ return nestedScopes ;
+ }
+ Enumeration contextEnumeration = (Enumeration)contextElement ;
+
+ // add all the literals owned by the context enumeration at the first scoping level
+ nestedList.addAll(contextEnumeration.getOwnedLiterals()) ;
+ nestedScopes.add(nestedList) ;
+ // then builds other scoping levels based on context classifier inheritance hierarchy
+
+ List<Classifier> currentGenerals = new ArrayList<Classifier>() ;
+ currentGenerals.addAll(contextEnumeration.getGenerals()) ;
+ List<Classifier> nextGenerals ;
+ while (!currentGenerals.isEmpty()) {
+ nextGenerals = new ArrayList<Classifier>() ;
+ nestedList = new ArrayList<EObject>() ;
+ for (Classifier general : currentGenerals) {
+ nextGenerals.addAll(general.getGenerals()) ;
+ if (general instanceof Enumeration) {
+ for (EnumerationLiteral enumLiteral : ((Enumeration)general).getOwnedLiterals())
+ nestedList.add(enumLiteral) ;
+ }
+ }
+ nestedScopes.add(nestedList) ;
+ currentGenerals = nextGenerals ;
+ }
+ return nestedScopes ;
+ }
+ }
+
+
+ public AlfPartialScope getVisibleEnumerationLiterals(EObject context) {
+ AlfPartialScope.IGetNameStrategy nameStrategy = new EnumerationLiteralNameStrategy() ;
+ AlfPartialScope.IBuildScopeStrategy buildScopeStrategy = new EnumerationLiteralBuildScopeStrategy() ;
+ return new AlfPartialScope(nameStrategy, buildScopeStrategy, context) ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/ASTCommonFactory.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/ASTCommonFactory.java
new file mode 100644
index 00000000000..e1abf5075ba
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/ASTCommonFactory.java
@@ -0,0 +1,5 @@
+package org.eclipse.papyrus.alf.syntax;
+
+public class ASTCommonFactory {
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/ASTExpressionFactory.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/ASTExpressionFactory.java
new file mode 100644
index 00000000000..c8768d1359c
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/ASTExpressionFactory.java
@@ -0,0 +1,1503 @@
+package org.eclipse.papyrus.alf.syntax;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.alf.alf.AdditiveExpression;
+import org.eclipse.papyrus.alf.alf.AndExpression;
+import org.eclipse.papyrus.alf.alf.BOOLEAN_LITERAL;
+import org.eclipse.papyrus.alf.alf.BooleanValue;
+import org.eclipse.papyrus.alf.alf.CollectOrIterateOperation;
+import org.eclipse.papyrus.alf.alf.ConditionalAndExpression;
+import org.eclipse.papyrus.alf.alf.ExclusiveOrExpression;
+import org.eclipse.papyrus.alf.alf.ForAllOrExistsOrOneOperation;
+import org.eclipse.papyrus.alf.alf.INTEGER_LITERAL;
+import org.eclipse.papyrus.alf.alf.InclusiveOrExpression;
+import org.eclipse.papyrus.alf.alf.IsUniqueOperation;
+import org.eclipse.papyrus.alf.alf.LITERAL;
+import org.eclipse.papyrus.alf.alf.LinkOperationTuple;
+import org.eclipse.papyrus.alf.alf.MultiplicativeExpression;
+import org.eclipse.papyrus.alf.alf.NonLiteralValueSpecification;
+import org.eclipse.papyrus.alf.alf.NullExpression;
+import org.eclipse.papyrus.alf.alf.ParenthesizedExpression;
+import org.eclipse.papyrus.alf.alf.PrimaryExpression;
+import org.eclipse.papyrus.alf.alf.QualifiedNamePath;
+import org.eclipse.papyrus.alf.alf.QualifiedNameWithBinding;
+import org.eclipse.papyrus.alf.alf.STRING_LITERAL;
+import org.eclipse.papyrus.alf.alf.SelectOrRejectOperation;
+import org.eclipse.papyrus.alf.alf.SuffixExpression;
+import org.eclipse.papyrus.alf.alf.TupleElement;
+import org.eclipse.papyrus.alf.alf.UNLIMITED_LITERAL;
+import org.eclipse.papyrus.alf.alf.UnqualifiedName;
+import org.eclipse.papyrus.alf.syntax.expressions.ArithmeticExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.BitStringUnaryExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.BooleanLiteralExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.BooleanUnaryExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.CastExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.ClassExtentExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.ClassificationExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.ConditionalLogicalExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.ConditionalTestExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.EqualityExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.Expression;
+import org.eclipse.papyrus.alf.syntax.expressions.ExtentOrExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.FeatureInvocationExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.FeatureReference;
+import org.eclipse.papyrus.alf.syntax.expressions.ForAllOrExistsOrOneExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.InstanceCreationExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.InvocationExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.IsUniqueExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.IsolationExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.LinkOperationExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.LogicalExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.NameBinding;
+import org.eclipse.papyrus.alf.syntax.expressions.NameExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.NamedExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.NamedTemplateBinding;
+import org.eclipse.papyrus.alf.syntax.expressions.NamedTuple;
+import org.eclipse.papyrus.alf.syntax.expressions.NaturalLiteralExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.NumericUnaryExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.PositionalTuple;
+import org.eclipse.papyrus.alf.syntax.expressions.PropertyAccessExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.QualifiedName;
+import org.eclipse.papyrus.alf.syntax.expressions.RelationalExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.SelectOrRejectExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.SequenceAccessExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.SequenceConstructionExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.SequenceElements;
+import org.eclipse.papyrus.alf.syntax.expressions.SequenceExpressionList;
+import org.eclipse.papyrus.alf.syntax.expressions.SequenceOperationExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.SequenceRange;
+import org.eclipse.papyrus.alf.syntax.expressions.SequenceReductionExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.ShiftExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.StringLiteralExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.SuperInvocationExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.TemplateBinding;
+import org.eclipse.papyrus.alf.syntax.expressions.TemplateParameterSubstitution;
+import org.eclipse.papyrus.alf.syntax.expressions.ThisExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.Tuple;
+import org.eclipse.papyrus.alf.syntax.expressions.UnaryExpression;
+import org.eclipse.papyrus.alf.syntax.expressions.UnboundedLiteralExpression;
+
+public class ASTExpressionFactory {
+ /*
+ * Synthesizes a alf.syntax.expressions.QualifiedName from a QualifiedNameWithBinding
+ */
+ public static final QualifiedName synthesizeQualifiedName(QualifiedNameWithBinding parsed) {
+ QualifiedName synthesized = new QualifiedName() ;
+
+ /* 1. Synthesizes property isAmbigous:boolean */
+ // LIMITATION: The parser implementation only supports :: (no .)
+ // Therefore, a qualified name is never ambiguous
+ synthesized.isAmbiguous = false ;
+
+ /* 2. Synthesizes property nameBinding:List<NameBinding> */
+ synthesized.nameBinding = new ArrayList<NameBinding>() ;
+ synthesized.nameBinding.add(
+ ASTExpressionFactory.synthesizeNameBinding(parsed)) ;
+ QualifiedNameWithBinding remaining = parsed.getRemaining() ;
+ while(remaining != null) {
+ synthesized.nameBinding.add(
+ ASTExpressionFactory.synthesizeNameBinding(remaining)) ;
+ remaining = remaining.getRemaining() ;
+ }
+
+ return synthesized ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.QualifiedName from a NameExpression
+ */
+ public static final QualifiedName synthesizeQualifiedName(org.eclipse.papyrus.alf.alf.NameExpression parsed) {
+ QualifiedName synthesized = new QualifiedName() ;
+ /* 1. Synthesizes property isAmbigous:boolean */
+ // LIMITATION: The parser implementation only supports :: (no .)
+ // Therefore, a qualified name is never ambiguous
+ synthesized.isAmbiguous = false ;
+
+ /* 2. Synthesizes property nameBinding:List<NameBinding> */
+ synthesized.nameBinding = new ArrayList<NameBinding>() ;
+ if (parsed.getPath() != null) {
+ QualifiedNamePath path = parsed.getPath() ;
+ for (UnqualifiedName pathElement : path.getNamespace()) {
+ synthesized.nameBinding.add(ASTExpressionFactory.synthesizeNameBinding(pathElement)) ;
+ }
+ }
+ // Finally add the last name binding (i.e., parsed.id)
+ // LIMITATION: The parser implementation does not support a template binding for the last element of the path
+ NameBinding last = new NameBinding() ;
+ last.name = parsed.getId() ;
+ synthesized.nameBinding.add(last) ;
+
+ // TODO: raise an error in the cases where the following properties have a value:
+ // - prefixOp
+ // - invocationCompletion
+ // - sequenceConstructionCompletion
+ // - postfixOp
+ // - suffix
+
+ return synthesized ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.QualifiedName from a NameExpression
+ */
+ public static final QualifiedName synthesizeQualifiedName(
+ org.eclipse.papyrus.alf.alf.Expression parsed) {
+ // TODO Raise an error in the case where "parsed" does not finally resolve to a NameExpression
+ org.eclipse.papyrus.alf.alf.ConditionalTestExpression tmp1 =
+ (org.eclipse.papyrus.alf.alf.ConditionalTestExpression)parsed ;
+ if (tmp1.getWhenFalse() != null || tmp1.getWhenTrue() != null)
+ // error
+ return new QualifiedName() ;
+ org.eclipse.papyrus.alf.alf.ConditionalOrExpression tmp2 = tmp1.getExp() ;
+ if (tmp2.getExp().size() != 1)
+ // error
+ return new QualifiedName() ;
+ org.eclipse.papyrus.alf.alf.ConditionalAndExpression tmp3 = tmp2.getExp().get(0) ;
+ if (tmp3.getExp().size() != 1)
+ // error
+ return new QualifiedName() ;
+ org.eclipse.papyrus.alf.alf.InclusiveOrExpression tmp4 = tmp3.getExp().get(0) ;
+ if (tmp4.getExp().size() != 1)
+ // error
+ return new QualifiedName() ;
+ org.eclipse.papyrus.alf.alf.ExclusiveOrExpression tmp5 = tmp4.getExp().get(0) ;
+ if (tmp5.getExp().size() != 1)
+ // error
+ return new QualifiedName() ;
+ org.eclipse.papyrus.alf.alf.AndExpression tmp6 = tmp5.getExp().get(0) ;
+ if (tmp6.getExp().size() != 1)
+ // error
+ return new QualifiedName() ;
+ org.eclipse.papyrus.alf.alf.EqualityExpression tmp7 = tmp6.getExp().get(0) ;
+ if (tmp7.getOp().size() != 0)
+ // error
+ return new QualifiedName() ;
+ org.eclipse.papyrus.alf.alf.ClassificationExpression tmp8 = tmp7.getExp().get(0) ;
+ if (tmp8.getOp() != null && !tmp8.getOp().equals(""))
+ //error
+ return new QualifiedName() ;
+ org.eclipse.papyrus.alf.alf.RelationalExpression tmp9 = tmp8.getExp() ;
+ if (tmp9.getOp() != null && !tmp9.getOp().equals(""))
+ // error
+ return new QualifiedName() ;
+ org.eclipse.papyrus.alf.alf.ShiftExpression tmp10 = tmp9.getLeft() ;
+ if (tmp10.getExp().size() != 1)
+ // error
+ return new QualifiedName() ;
+ org.eclipse.papyrus.alf.alf.AdditiveExpression tmp11 = tmp10.getExp().get(0) ;
+ if (tmp11.getExp().size() != 1)
+ // error
+ return new QualifiedName() ;
+ org.eclipse.papyrus.alf.alf.MultiplicativeExpression tmp12 = tmp11.getExp().get(0) ;
+ if (tmp12.getExp().size() != 1)
+ // error
+ return new QualifiedName() ;
+ org.eclipse.papyrus.alf.alf.UnaryExpression tmp13 = tmp12.getExp().get(0) ;
+ if (tmp13.getOp() != null && !tmp13.getOp().equals(""))
+ // error
+ return new QualifiedName() ;
+ org.eclipse.papyrus.alf.alf.PrimaryExpression tmp14 = tmp13.getExp() ;
+ if (tmp14.getPrefix() == null)
+ // error
+ return new QualifiedName() ;
+ org.eclipse.papyrus.alf.alf.ValueSpecification tmp15 = tmp14.getPrefix() ;
+
+ if (! (tmp15 instanceof org.eclipse.papyrus.alf.alf.NameExpression))
+ // error
+ return new QualifiedName() ;
+
+ return ASTExpressionFactory.synthesizeQualifiedName((org.eclipse.papyrus.alf.alf.NameExpression)tmp15) ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.QualifiedName from a alf.syntax.expressions.Expression
+ */
+ public static final QualifiedName synthesizeQualifiedName(Expression synthesized) {
+ if (synthesized instanceof NameExpression)
+ return ((NameExpression) synthesized).name ;
+ return new QualifiedName() ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.NameBinding from a QualifiedNameWithBinding
+ */
+ public static final NameBinding synthesizeNameBinding(QualifiedNameWithBinding parsed) {
+ NameBinding synthesized = new NameBinding() ;
+ /* 1. Synthesizes property name:String */
+ synthesized.name = "" + parsed.getId() ;
+
+ /* 2. Synthesizes property binding:TemplateBinding */
+ if (parsed.getBinding() != null) {
+ synthesized.binding =
+ ASTExpressionFactory.synthesizeTemplateBinding(parsed.getBinding()) ;
+ }
+
+ return synthesized ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.NameBinding from a String
+ */
+ public static final NameBinding synthesizeNameBinding(String parsed) {
+ NameBinding synthesized = new NameBinding() ;
+ /* 1. Synthesizes property name:String */
+ synthesized.name = "" + parsed ;
+
+ return synthesized ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.NameBinding from a UnqualifiedName
+ */
+ public static final NameBinding synthesizeNameBinding(UnqualifiedName parsed) {
+ NameBinding synthesized = new NameBinding() ;
+ /* 1. Synthesizes property name:String */
+ synthesized.name = "" + parsed.getName() ;
+
+ /* 2. Synthesizes property binding:TemplateBinding */
+ if (parsed.getTemplateBinding() != null) {
+ synthesized.binding =
+ ASTExpressionFactory.synthesizeTemplateBinding(parsed.getTemplateBinding()) ;
+ }
+
+ return synthesized ;
+ }
+
+ /*
+ * Synthesizes a import alf.syntax.expressions.TemplateBinding from a TemplateBinding
+ */
+ public static final TemplateBinding synthesizeTemplateBinding(org.eclipse.papyrus.alf.alf.TemplateBinding parsed) {
+ // LIMITATION: In this implementation of the Alf parser, only NamedTemplateBinding are supported
+ return ASTExpressionFactory.synthesizeNamedTemplateBinding(parsed) ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.NamedTemplateBinding from a TemplateBinding
+ */
+ public static final NamedTemplateBinding synthesizeNamedTemplateBinding(org.eclipse.papyrus.alf.alf.TemplateBinding parsed) {
+ NamedTemplateBinding synthesized = new NamedTemplateBinding() ;
+
+ /*1. Synthesizes property substitution:List<TemplateParameterSubstitution> */
+ synthesized.substitution = new ArrayList<TemplateParameterSubstitution>() ;
+ for (org.eclipse.papyrus.alf.alf.NamedTemplateBinding s : parsed.getBindings()) {
+ synthesized.substitution.add(
+ ASTExpressionFactory.synthesizeTemplateParameterSubstitution(s)) ;
+ }
+ return synthesized ;
+ }
+ /*
+ * Synthesizes a alf.syntax.expressions.TemplateParameterSubstitution from a NamedTemplateBinding
+ * NOTE: The class NamedTemplateBinding, from the implementation of the Alf grammar, is misleading
+ * Should be TemplateParameterSubsitution
+ */
+ public static final TemplateParameterSubstitution synthesizeTemplateParameterSubstitution(org.eclipse.papyrus.alf.alf.NamedTemplateBinding parsed) {
+ TemplateParameterSubstitution synthesized = new TemplateParameterSubstitution() ;
+
+ /* 1. Synthesizes property parameterName:String */
+ synthesized.parameterName = parsed.getFormal() ;
+
+ /* 2. Synthesizes property argumentName:QualifiedName */
+ synthesized.argumentName =
+ ASTExpressionFactory.synthesizeQualifiedName(parsed.getActual()) ;
+
+ return synthesized ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from an Expression
+ */
+ public static final Expression synthesizeExpression(org.eclipse.papyrus.alf.alf.Expression parsed) {
+
+ // In this implementation of the Alf parser, rule Expression can only
+ // produce a ConditionalTestExpression
+ // NOTE: In the Alf spec, Expression can also produce an AssignmentExpression,
+ // which are not directly supported by our parser.
+ return ASTExpressionFactory.synthesizeConditionalTestExpression((org.eclipse.papyrus.alf.alf.ConditionalTestExpression)parsed);
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a ParenthesizedExpression
+ */
+ public static final Expression synthesizeExpression(ParenthesizedExpression parsed) {
+ // first check it is really a ParenthesizedExpression
+ if (parsed.getCasted() == null) {
+ // this is a ParenthesizedExpression
+ Expression synthesized = ASTExpressionFactory.synthesizeExpression(parsed.getExpOrTypeCast()) ;
+ if (parsed.getSuffix() != null)
+ return ASTExpressionFactory.synthesizeExpression(synthesized, parsed.getSuffix()) ;
+ return synthesized ;
+ }
+
+ // this is not a ParenthesizedExpression, i.e., this is a cast expression
+ return ASTExpressionFactory.synthesizeCastExpression(parsed) ;
+ }
+
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a NameExpression
+ */
+ public static final Expression synthesizeExpression(org.eclipse.papyrus.alf.alf.NameExpression exp) {
+ // TODO Auto-generated method stub
+ return new Expression();
+ }
+
+
+ public static final Expression synthesizeCastExpression(ParenthesizedExpression parsed) {
+ CastExpression synthesized = new CastExpression() ;
+
+ /* 1. Synthesizes property operand:Expression */
+ synthesized.operand = ASTExpressionFactory.synthesizePrimaryExpression(parsed.getCasted()) ;
+
+ /* 2. Synthesizes property typeName:QualifiedName */
+ synthesized.typeName = ASTExpressionFactory.synthesizeQualifiedName(parsed.getExpOrTypeCast()) ;
+
+ return synthesized ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a ConditionTestExpression
+ */
+ public static final Expression synthesizeConditionalTestExpression(org.eclipse.papyrus.alf.alf.ConditionalTestExpression parsed) {
+ // First checks if it is actually a ConditionalTestExpression
+ if (parsed.getWhenFalse() != null || parsed.getWhenTrue() != null) {
+ // This is a ConditionalTestExpression
+ ConditionalTestExpression synthesized = new ConditionalTestExpression() ;
+ /* 1. Synthesizes property operand1:Expression */
+ synthesized.operand1 = ASTExpressionFactory.synthesizeConditionalLogicalExpression(parsed.getExp()) ;
+
+ /* 2. Synthesizes property operand2:Expression */
+ synthesized.operand2 = ASTExpressionFactory.synthesizeConditionalTestExpression(parsed.getWhenTrue()) ;
+
+ /* 3. Synthesizes property operand3:Expression */
+ synthesized.operand3 = ASTExpressionFactory.synthesizeConditionalTestExpression(parsed.getWhenFalse()) ;
+
+ return synthesized ;
+ }
+
+ // This is not a ConditionalTestExpression
+ return ASTExpressionFactory.synthesizeConditionalLogicalExpression(parsed.getExp()) ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a ConditionalOrExpression
+ */
+ public static final Expression synthesizeConditionalLogicalExpression(org.eclipse.papyrus.alf.alf.ConditionalOrExpression parsed) {
+
+ // First check if it is a ConditionalOrExpression
+ if (parsed.getExp().size() == 1)
+ // This is not a ConditionalOrExpression
+ return ASTExpressionFactory.synthesizeConditionalLogicalExpression(parsed.getExp().get(0)) ;
+
+ // This is a ConditionalOrExpression
+ ConditionalLogicalExpression synthesized = new ConditionalLogicalExpression() ;
+ /* 1. Synthesizes property operand1:Expression */
+ synthesized.operand1 = ASTExpressionFactory.synthesizeConditionalLogicalExpression(parsed.getExp().get(0)) ;
+
+ /* 2. Synthesizes property operand2:Expression */
+ synthesized.operand2 = ASTExpressionFactory.synthesizeConditionalLogicalExpression(parsed.getExp().subList(1, parsed.getExp().size())) ;
+
+ /* 3. Synthesizes property operator:String */
+ synthesized.operator = "||" ;
+
+ return synthesized ;
+
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a ConditionalAndExpression
+ */
+ public static final Expression synthesizeConditionalLogicalExpression(
+ ConditionalAndExpression parsed) {
+ //first check if it is a ConditionalAndExpression
+ if (parsed.getExp().size() == 1)
+ // This is not a ConditionalAndExpression
+ return ASTExpressionFactory.synthesizeLogicalExpression(parsed.getExp().get(0)) ;
+
+ // This is a ConditionalAndExpression
+ ConditionalLogicalExpression synthesized = new ConditionalLogicalExpression() ;
+ /* 1. Synthesizes property operand1:Expression */
+ synthesized.operand1 = ASTExpressionFactory.synthesizeLogicalExpression(parsed.getExp().get(0)) ;
+
+ /* 2. Synthesizes property operand2:Expression */
+ synthesized.operand2 = ASTExpressionFactory.synthesizeLogicalExpressionFromListOfInclusiveOrExpression (parsed.getExp().subList(1, parsed.getExp().size())) ;
+
+ /* 3. Synthesizes property operator:String */
+ synthesized.operator = "&&" ;
+
+ return synthesized ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a list ConditionalAndExpression
+ * representing a flat ConditionalAndExpression
+ */
+ public static final Expression synthesizeConditionalLogicalExpression(
+ List<ConditionalAndExpression> flatParsed) {
+
+ //first check if it is a ConditionalAndExpression
+ if (flatParsed.size() == 1)
+ // This is not a flat ConditionalAndExpression
+ return ASTExpressionFactory.synthesizeConditionalLogicalExpression(flatParsed.get(0)) ;
+
+ // This is a flat ConditionalAndExpression
+ ConditionalLogicalExpression synthesized = new ConditionalLogicalExpression() ;
+ /* 1. Synthesizes property operand1:Expression */
+ synthesized.operand1 = ASTExpressionFactory.synthesizeConditionalLogicalExpression(flatParsed.get(0)) ;
+
+ /* 2. Synthesizes property operand2:Expression */
+ synthesized.operand2 = ASTExpressionFactory.synthesizeConditionalLogicalExpression(flatParsed.subList(1, flatParsed.size())) ;
+
+ /* 3. Synthesizes property operator:String */
+ synthesized.operator = "&&" ;
+
+ return synthesized ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a InclusiveOrExpression
+ */
+ public static final Expression synthesizeLogicalExpression(
+ InclusiveOrExpression parsed) {
+ //first check if it is an InclusiveOrExpression
+ if (parsed.getExp().size() == 1)
+ // This is not an InclusiveOrExpression
+ return ASTExpressionFactory.synthesizeLogicalExpression(parsed.getExp().get(0)) ;
+
+ // This is an InclusiveOrExpression
+ LogicalExpression synthesized = new LogicalExpression() ;
+ /* 1. Synthesizes property operand1:Expression */
+ synthesized.operand1 = ASTExpressionFactory.synthesizeLogicalExpression(parsed.getExp().get(0)) ;
+
+ /* 2. Synthesizes property operand2:Expression */
+ synthesized.operand2 = ASTExpressionFactory.synthesizeLogicalExpressionFromListOfExclusiveOrExpression(parsed.getExp().subList(1, parsed.getExp().size())) ;
+
+ /* 3. Synthesizes property operator:String */
+ synthesized.operator = "|" ;
+
+ return synthesized ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a list of InclusiveOrExpression
+ * representing a flat InclusiveOrExpression
+ */
+ public static final Expression synthesizeLogicalExpressionFromListOfInclusiveOrExpression (
+ List<InclusiveOrExpression> flatParsed) {
+ //first check if it is a flat InclusiveOrExpression
+ if (flatParsed.size() == 1)
+ // This is not a flat InclusiveOrExpression
+ return ASTExpressionFactory.synthesizeLogicalExpression(flatParsed.get(0)) ;
+
+ // This is a flat InclusiveOrExpression
+ LogicalExpression synthesized = new LogicalExpression() ;
+ /* 1. Synthesizes property operand1:Expression */
+ synthesized.operand1 = ASTExpressionFactory.synthesizeLogicalExpression(flatParsed.get(0)) ;
+
+ /* 2. Synthesizes property operand2:Expression */
+ synthesized.operand2 = ASTExpressionFactory.synthesizeLogicalExpressionFromListOfInclusiveOrExpression (flatParsed.subList(1, flatParsed.size())) ;
+
+ /* 3. Synthesizes property operator:String */
+ synthesized.operator = "|" ;
+
+ return synthesized ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a ExclusiveOrExpression
+ */
+ public static final Expression synthesizeLogicalExpression(
+ ExclusiveOrExpression parsed) {
+ //first check if it is an ExclusiveOrExpression
+ if (parsed.getExp().size() == 1)
+ // This is not an ExclusiveOrExpression
+ return ASTExpressionFactory.synthesizeLogicalExpression(parsed.getExp().get(0)) ;
+
+ // This is an InclusiveOrExpression
+ LogicalExpression synthesized = new LogicalExpression() ;
+ /* 1. Synthesizes property operand1:Expression */
+ synthesized.operand1 = ASTExpressionFactory.synthesizeLogicalExpression(parsed.getExp().get(0));
+
+ /* 2. Synthesizes property operand2:Expression */
+ synthesized.operand2 = ASTExpressionFactory.synthesizeLogicalExpressionFromListOfAndExpression(parsed.getExp().subList(1, parsed.getExp().size())) ;
+
+ /* 3. Synthesizes property operator:String */
+ synthesized.operator = "^" ;
+
+ return synthesized ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a list of ExclusiveOrExpression
+ * representing a flat ExclusiveOrExpression
+ */
+ public static final Expression synthesizeLogicalExpressionFromListOfExclusiveOrExpression(
+ List<ExclusiveOrExpression> flatParsed) {
+ //first check if it is a flat ExclusiveOrExpression
+ if (flatParsed.size() == 1)
+ // This is not a flat ExclusiveOrExpression
+ return ASTExpressionFactory.synthesizeLogicalExpression(flatParsed.get(0)) ;
+
+ // This is a flat ExclusiveOrExpression
+ LogicalExpression synthesized = new LogicalExpression() ;
+ /* 1. Synthesizes property operand1:Expression */
+ synthesized.operand1 = ASTExpressionFactory.synthesizeLogicalExpression(flatParsed.get(0)) ;
+
+ /* 2. Synthesizes property operand2:Expression */
+ synthesized.operand2 = ASTExpressionFactory.synthesizeLogicalExpressionFromListOfExclusiveOrExpression (flatParsed.subList(1, flatParsed.size())) ;
+
+ /* 3. Synthesizes property operator:String */
+ synthesized.operator = "^" ;
+
+ return synthesized ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a AndExpression
+ */
+ public static final Expression synthesizeLogicalExpression(AndExpression parsed) {
+ //first check if it is an AndExpression
+ if (parsed.getExp().size() == 1)
+ // This is not an AndExpression
+ return ASTExpressionFactory.synthesizeEqualityExpression(parsed.getExp().get(0)) ;
+
+ // This is an AndOrExpression
+ LogicalExpression synthesized = new LogicalExpression() ;
+ /* 1. Synthesizes property operand1:Expression */
+ synthesized.operand1 = ASTExpressionFactory.synthesizeEqualityExpression(parsed.getExp().get(0)) ;
+
+ /* 2. Synthesizes property operand2:Expression */
+ synthesized.operand2 = ASTExpressionFactory.synthesizeLogicalExpressionFromListOfEqualityExpression(parsed.getExp().subList(1, parsed.getExp().size())) ;
+
+ /* 3. Synthesizes property operator:String */
+ synthesized.operator = "&" ;
+
+ return synthesized ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a list of EqualityExpression
+ * representing a flat AndExpression
+ */
+ public static final Expression synthesizeLogicalExpressionFromListOfEqualityExpression(
+ List<org.eclipse.papyrus.alf.alf.EqualityExpression> flatParsed) {
+ //first check if it is a flat AndExpression
+ if (flatParsed.size() == 1)
+ // This is not a flat AndExpression
+ return ASTExpressionFactory.synthesizeEqualityExpression(flatParsed.get(0)) ;
+
+ // This is a flat AndExpression
+ LogicalExpression synthesized = new LogicalExpression() ;
+ /* 1. Synthesizes property operand1:Expression */
+ synthesized.operand1 = ASTExpressionFactory.synthesizeEqualityExpression(flatParsed.get(0)) ;
+
+ /* 2. Synthesizes property operand2:Expression */
+ synthesized.operand2 = ASTExpressionFactory.synthesizeLogicalExpressionFromListOfEqualityExpression (flatParsed.subList(1, flatParsed.size())) ;
+
+ /* 3. Synthesizes property operator:String */
+ synthesized.operator = "&" ;
+
+ return synthesized ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a list of AndExpression
+ * representing a flat AndExpression
+ */
+ public static final Expression synthesizeLogicalExpressionFromListOfAndExpression(
+ List<AndExpression> flatParsed) {
+ //first check if it is a flat AndExpression
+ if (flatParsed.size() == 1)
+ // This is not a flat AndExpression
+ return ASTExpressionFactory.synthesizeLogicalExpression(flatParsed.get(0)) ;
+
+ // This is a flat AndExpression
+ LogicalExpression synthesized = new LogicalExpression() ;
+ /* 1. Synthesizes property operand1:Expression */
+ synthesized.operand1 = ASTExpressionFactory.synthesizeLogicalExpression(flatParsed.get(0)) ;
+
+ /* 2. Synthesizes property operand2:Expression */
+ synthesized.operand2 = ASTExpressionFactory.synthesizeLogicalExpressionFromListOfAndExpression (flatParsed.subList(1, flatParsed.size())) ;
+
+ /* 3. Synthesizes property operator:String */
+ synthesized.operator = "&" ;
+
+ return synthesized ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a EqualityExpression
+ */
+ public static final Expression synthesizeEqualityExpression(
+ org.eclipse.papyrus.alf.alf.EqualityExpression parsed) {
+ //first check if it is an EqualityExpression
+ if (parsed.getExp().size() == 1)
+ // This is not an EqualityExpression
+ return ASTExpressionFactory.synthesizeClassificationExpression(parsed.getExp().get(0)) ;
+
+ // This is an EqualityExpression
+ EqualityExpression synthesized = new EqualityExpression() ;
+ /* 1. Synthesizes property operand1:Expression */
+ synthesized.operand1 = ASTExpressionFactory.synthesizeClassificationExpression(parsed.getExp().get(0)) ;
+
+ /* 2. Synthesizes property operand2:Expression */
+ synthesized.operand2 = ASTExpressionFactory.synthesizeEqualityExpression(parsed.getExp().subList(1, parsed.getExp().size()),
+ parsed.getOp().subList(1, parsed.getOp().size())) ;
+
+ /* 3. Synthesizes property operator:String */
+ synthesized.operator = parsed.getOp().get(0) ;
+
+ return synthesized ;
+ }
+
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a list of ClassificationExpression
+ * and (equality) operators representing a flat EqualityExpression
+ */
+ public static final Expression synthesizeEqualityExpression(
+ List<org.eclipse.papyrus.alf.alf.ClassificationExpression> flatParsed,
+ List<String> operators) {
+ //first check if it is a flat EqualityExpression
+ if (flatParsed.size() == 1)
+ // This is not a flat EqualityExpression
+ return ASTExpressionFactory.synthesizeClassificationExpression(flatParsed.get(0)) ;
+
+ // This is a flat EqualityExpression
+ EqualityExpression synthesized = new EqualityExpression() ;
+ /* 1. Synthesizes property operand1:Expression */
+ synthesized.operand1 = ASTExpressionFactory.synthesizeClassificationExpression(flatParsed.get(0)) ;
+
+ /* 2. Synthesizes property operand2:Expression */
+ synthesized.operand2 = ASTExpressionFactory.synthesizeEqualityExpression (flatParsed.subList(1, flatParsed.size()),
+ operators.subList(1, operators.size())) ;
+
+ /* 3. Synthesizes property operator:String */
+ synthesized.operator = operators.get(0) ;
+
+ return synthesized ;
+ }
+
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a ClassificationExpression
+ */
+ public static final Expression synthesizeClassificationExpression(
+ org.eclipse.papyrus.alf.alf.ClassificationExpression parsed) {
+ //first check if it is a ClassificationExpression
+ if (parsed.getOp() == null || parsed.getOp().equals(""))
+ // This is not a ClassificationExpression
+ return ASTExpressionFactory.synthesizeRelationalExpression(parsed.getExp()) ;
+
+ // This is a ClassificationExpression
+ ClassificationExpression synthesized = new ClassificationExpression() ;
+ /* 1. Synthesizes property operand:Expression */
+ synthesized.operand= ASTExpressionFactory.synthesizeRelationalExpression(parsed.getExp()) ;
+
+ /* 2. Synthesizes property typename:QualifiedName */
+ synthesized.typeName = ASTExpressionFactory.synthesizeQualifiedName(parsed.getTypeName()) ;
+
+ /* 3. Synthesizes property operator:String */
+ synthesized.operator = parsed.getOp() ;
+
+ return synthesized ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a RelationalExpression
+ */
+ public static final Expression synthesizeRelationalExpression(org.eclipse.papyrus.alf.alf.RelationalExpression parsed) {
+ //first check if it is a RelationalExpression
+ if (parsed.getOp() == null || parsed.getOp().equals(""))
+ // This is not a RelationalExpression
+ return ASTExpressionFactory.synthesizeShiftExpression(parsed.getLeft()) ;
+
+ // This is a RelationalExpression
+ RelationalExpression synthesized = new RelationalExpression() ;
+ /* 1. Synthesizes property operand1:Expression */
+ synthesized.operand1= ASTExpressionFactory.synthesizeShiftExpression(parsed.getLeft()) ;
+
+ /* 2. Synthesizes property operand2:Expression */
+ synthesized.operand2 = ASTExpressionFactory.synthesizeShiftExpression(parsed.getRight()) ;
+
+ /* 3. Synthesizes property operator:String */
+ synthesized.operator = parsed.getOp() ;
+
+ return synthesized ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a ShiftExpression
+ */
+ public static final Expression synthesizeShiftExpression(org.eclipse.papyrus.alf.alf.ShiftExpression parsed) {
+ //first check if it is a ShiftExpression
+ if (parsed.getExp().size() == 1)
+ // This is not a ShiftExpression
+ return ASTExpressionFactory.synthesizeArithmeticExpression(parsed.getExp().get(0)) ;
+
+ // This is a ShiftExpression
+ ShiftExpression synthesized = new ShiftExpression() ;
+ /* 1. Synthesizes property operand1:Expression */
+ synthesized.operand1= ASTExpressionFactory.synthesizeArithmeticExpression(parsed.getExp().get(0)) ;
+
+ /* 2. Synthesizes property operand2:Expression */
+ synthesized.operand2 = ASTExpressionFactory.synthesizeArithmeticExpression(parsed.getExp().get(1)) ;
+
+ /* 3. Synthesizes property operator:String */
+ synthesized.operator = parsed.getOp() ;
+
+ return synthesized ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a AdditiveExpression
+ */
+ public static final Expression synthesizeArithmeticExpression(
+ AdditiveExpression parsed) {
+ //first check if it is a AdditiveExpression
+ if (parsed.getExp().size() == 1)
+ // This is not a ShiftExpression
+ return ASTExpressionFactory.synthesizeArithmeticExpression(parsed.getExp().get(0)) ;
+
+ // This is a ShiftExpression
+ ArithmeticExpression synthesized = new ArithmeticExpression() ;
+ /* 1. Synthesizes property operand1:Expression */
+ synthesized.operand1= ASTExpressionFactory.synthesizeArithmeticExpression(parsed.getExp().get(0)) ;
+
+ /* 2. Synthesizes property operand2:Expression */
+ synthesized.operand2 = ASTExpressionFactory.synthesizeArithmeticExpressionFromListOfMultiplicativeExpression(parsed.getExp().subList(1, parsed.getExp().size()),
+ parsed.getOp().subList(1, parsed.getOp().size())) ;
+
+ /* 3. Synthesizes property operator:String */
+ synthesized.operator = parsed.getOp().get(0) ;
+
+ return synthesized ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a list of AdditiveExpression
+ * and (additive) operators representing a flat AdditiveExpression
+ */
+ public static final Expression synthesizeArithmeticExpressionFromListOfMultiplicativeExpression(
+ List<MultiplicativeExpression> flatParsed, List<String> operators) {
+ //first check if it is a flat AdditiveExpression
+ if (flatParsed.size() == 1)
+ // This is not a flat AdditiveExpression
+ return ASTExpressionFactory.synthesizeArithmeticExpression(flatParsed.get(0)) ;
+
+ // This is a flat AdditiveExpression
+ EqualityExpression synthesized = new EqualityExpression() ;
+ /* 1. Synthesizes property operand1:Expression */
+ synthesized.operand1 = ASTExpressionFactory.synthesizeArithmeticExpression(flatParsed.get(0)) ;
+
+ /* 2. Synthesizes property operand2:Expression */
+ synthesized.operand2 = ASTExpressionFactory.synthesizeArithmeticExpressionFromListOfMultiplicativeExpression(flatParsed.subList(1, flatParsed.size()),
+ operators.subList(1, operators.size())) ;
+
+ /* 3. Synthesizes property operator:String */
+ synthesized.operator = operators.get(0) ;
+
+ return synthesized ;
+ }
+
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a MultiplicativeExpression
+ */
+ public static final Expression synthesizeArithmeticExpression(
+ MultiplicativeExpression parsed) {
+ //first check if it is a MultiplicativeExpression
+ if (parsed.getExp().size() == 1)
+ // This is not a MultiplicativeExpression
+ return ASTExpressionFactory.synthesizeUnaryExpression(parsed.getExp().get(0)) ;
+
+ // This is a MultiplicativeExpression
+ ArithmeticExpression synthesized = new ArithmeticExpression() ;
+ /* 1. Synthesizes property operand1:Expression */
+ synthesized.operand1= ASTExpressionFactory.synthesizeUnaryExpression(parsed.getExp().get(0)) ;
+
+ /* 2. Synthesizes property operand2:Expression */
+ synthesized.operand2 = ASTExpressionFactory.synthesizeArithmeticExpressionFromListOfUnaryExpression(parsed.getExp().subList(1, parsed.getExp().size()),
+ parsed.getOp().subList(1, parsed.getOp().size())) ;
+
+ /* 3. Synthesizes property operator:String */
+ synthesized.operator = parsed.getOp().get(0) ;
+
+ return synthesized ;
+ }
+
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a list of UnaryExpression
+ * and (multiplicative) operators representing a flat MultiplicativeExpression
+ */
+ public static final Expression synthesizeArithmeticExpressionFromListOfUnaryExpression(
+ List<org.eclipse.papyrus.alf.alf.UnaryExpression> flatParsed,
+ List<String> operators) {
+ //first check if it is a flat MultiplicativeExpression
+ if (flatParsed.size() == 1)
+ // This is not a flat MultiplicativeExpression
+ return ASTExpressionFactory.synthesizeUnaryExpression(flatParsed.get(0)) ;
+
+ // This is a flat MultiplicativeExpression
+ EqualityExpression synthesized = new EqualityExpression() ;
+ /* 1. Synthesizes property operand1:Expression */
+ synthesized.operand1 = ASTExpressionFactory.synthesizeUnaryExpression(flatParsed.get(0)) ;
+
+ /* 2. Synthesizes property operand2:Expression */
+ synthesized.operand2 = ASTExpressionFactory.synthesizeArithmeticExpressionFromListOfUnaryExpression(flatParsed.subList(1, flatParsed.size()),
+ operators.subList(1, operators.size())) ;
+
+ /* 3. Synthesizes property operator:String */
+ synthesized.operator = operators.get(0) ;
+
+ return synthesized ;
+ }
+
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a UnaryExpression
+ */
+ public static final Expression synthesizeUnaryExpression(
+ org.eclipse.papyrus.alf.alf.UnaryExpression parsed) {
+ //first check if it is a UnaryExpression
+ if (parsed.getOp() == null || parsed.getOp().equals(""))
+ // This is not a UnaryExpression
+ return ASTExpressionFactory.synthesizePrimaryExpression(parsed.getExp()) ;
+
+ // This is a UnaryExpression
+ UnaryExpression synthesized = new UnaryExpression() ;
+ // depending on the operator, synthesizes the right kind of UnaryExpression
+ if (parsed.getOp().equals("!"))
+ synthesized = new BooleanUnaryExpression() ;
+ else if (parsed.getOp().equals("$"))
+ synthesized = new IsolationExpression() ;
+ else if (parsed.getOp().equals("~"))
+ synthesized = new BitStringUnaryExpression() ;
+ else // "+" or "-" unary operators
+ synthesized = new NumericUnaryExpression() ;
+
+ /* 1. Synthesizes property operand1:Expression */
+ synthesized.operand= ASTExpressionFactory.synthesizePrimaryExpression(parsed.getExp()) ;
+
+ /* 2. Synthesizes property operator:String */
+ synthesized.operator = parsed.getOp() ;
+
+ return synthesized ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a PrimaryExpression
+ */
+ public static final Expression synthesizePrimaryExpression(PrimaryExpression exp) {
+ if (exp.getPrefix() instanceof org.eclipse.papyrus.alf.alf.LITERAL)
+ return ASTExpressionFactory.synthesizeLiteralExpression(
+ (org.eclipse.papyrus.alf.alf.LITERAL) exp.getPrefix()) ;
+ else if (exp.getPrefix() instanceof org.eclipse.papyrus.alf.alf.ThisExpression)
+ return ASTExpressionFactory.synthesizeThisExpression(
+ (org.eclipse.papyrus.alf.alf.ThisExpression) exp.getPrefix()) ;
+ else if (exp.getPrefix() instanceof org.eclipse.papyrus.alf.alf.SuperInvocationExpression)
+ return ASTExpressionFactory.synthesizeSuperInvocationExpression(
+ (org.eclipse.papyrus.alf.alf.SuperInvocationExpression) exp.getPrefix()) ;
+ else if (exp.getPrefix() instanceof org.eclipse.papyrus.alf.alf.InstanceCreationExpression)
+ return ASTExpressionFactory.synthesizeInstanceCreationExpression(
+ (org.eclipse.papyrus.alf.alf.InstanceCreationExpression) exp.getPrefix()) ;
+ else if (exp.getPrefix() instanceof org.eclipse.papyrus.alf.alf.ParenthesizedExpression)
+ return ASTExpressionFactory.synthesizeExpression(
+ (org.eclipse.papyrus.alf.alf.ParenthesizedExpression) exp.getPrefix()) ;
+ else if (exp.getPrefix() instanceof org.eclipse.papyrus.alf.alf.NameExpression)
+ return ASTExpressionFactory.synthesizeExpression(
+ (org.eclipse.papyrus.alf.alf.NameExpression) exp.getPrefix()) ;
+ else // NullExpression
+ return ASTExpressionFactory.synthesizeSequenceConstructionExpression(
+ (org.eclipse.papyrus.alf.alf.NullExpression) exp.getPrefix()) ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a NullExpression
+ */
+ public static final Expression synthesizeSequenceConstructionExpression(
+ NullExpression exp) {
+ SequenceConstructionExpression synthesized = new SequenceConstructionExpression() ;
+ /*. No property to synthesize */
+ return synthesized ;
+ }
+
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a NonLiteralValueSpecification
+ */
+ public static final Expression synthesizePrimaryExpression(NonLiteralValueSpecification exp) {
+ if (exp instanceof org.eclipse.papyrus.alf.alf.ThisExpression)
+ return ASTExpressionFactory.synthesizeThisExpression(
+ (org.eclipse.papyrus.alf.alf.ThisExpression) exp) ;
+ else if (exp instanceof org.eclipse.papyrus.alf.alf.SuperInvocationExpression)
+ return ASTExpressionFactory.synthesizeSuperInvocationExpression(
+ (org.eclipse.papyrus.alf.alf.SuperInvocationExpression) exp) ;
+ else if (exp instanceof org.eclipse.papyrus.alf.alf.InstanceCreationExpression)
+ return ASTExpressionFactory.synthesizeInstanceCreationExpression(
+ (org.eclipse.papyrus.alf.alf.InstanceCreationExpression) exp) ;
+ else if (exp instanceof org.eclipse.papyrus.alf.alf.ParenthesizedExpression)
+ return ASTExpressionFactory.synthesizeExpression(
+ (org.eclipse.papyrus.alf.alf.ParenthesizedExpression) exp) ;
+ else // NameExpression
+ return ASTExpressionFactory.synthesizeExpression(
+ (org.eclipse.papyrus.alf.alf.NameExpression) exp) ;
+ }
+
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a LITERAL
+ */
+ public static final Expression synthesizeLiteralExpression(LITERAL parsed) {
+ if (parsed instanceof INTEGER_LITERAL) {
+ NaturalLiteralExpression synthesized = new NaturalLiteralExpression() ;
+ /* 1. Synthesizes property image:String */
+ synthesized.image = ((INTEGER_LITERAL) parsed).getValue() ;
+ return synthesized ;
+ }
+ else if (parsed instanceof UNLIMITED_LITERAL) {
+ UnboundedLiteralExpression synthesized = new UnboundedLiteralExpression() ;
+ /*. No properties to synthesize */
+ return synthesized ;
+ }
+ else if (parsed instanceof STRING_LITERAL) {
+ StringLiteralExpression synthesized = new StringLiteralExpression() ;
+ /* 1. Synthesizes property image:String */
+ synthesized.image = ((STRING_LITERAL) parsed).getValue() ;
+ return synthesized ;
+ }
+ else { // BOOLEAN_LITERAL
+ BOOLEAN_LITERAL castedExp = (BOOLEAN_LITERAL)parsed ;
+ BooleanLiteralExpression synthesized = new BooleanLiteralExpression() ;
+ /* 1. Synthesizes property image:String */
+ if (castedExp.getValue() == BooleanValue.TRUE)
+ synthesized.image = "true" ;
+ else
+ synthesized.image = "false" ;
+ return synthesized ;
+ }
+ }
+
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a ThisExpression
+ */
+ public static final Expression synthesizeThisExpression(org.eclipse.papyrus.alf.alf.ThisExpression parsed) {
+ ThisExpression synthesized = new ThisExpression() ;
+ /*. No properties to synthesize */
+ if (parsed.getSuffix() != null)
+ return ASTExpressionFactory.synthesizeExpression(synthesized, parsed.getSuffix()) ;
+ return synthesized ;
+ }
+
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a SuperInvocationExpression
+ */
+ public static final Expression synthesizeSuperInvocationExpression(
+ org.eclipse.papyrus.alf.alf.SuperInvocationExpression parsed) {
+ SuperInvocationExpression synthesized = new SuperInvocationExpression() ;
+
+ /* 1. Synthesizes property target:QualifiedName */
+ if (parsed.getOperationName() != null)
+ synthesized.target = ASTExpressionFactory.synthesizeQualifiedName(parsed.getOperationName()) ;
+
+ /* 2. Synthesizes property tuple:Tuple */
+ synthesized.tuple = ASTExpressionFactory.synthesizeTuple(parsed.getTuple(), synthesized) ;
+
+ return synthesized ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Tuple from a Tuple
+ */
+ public static final Tuple synthesizeTuple(org.eclipse.papyrus.alf.alf.Tuple parsed,
+ InvocationExpression invocation) {
+ // LIMITATION: This implementation of the Alf Parser only supports positional tuples
+ return ASTExpressionFactory.synthesizePositionalTuple(parsed, invocation);
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.PositionalTuple from a Tuple
+ */
+ public static final Tuple synthesizePositionalTuple(
+ org.eclipse.papyrus.alf.alf.Tuple parsed,
+ InvocationExpression invocation) {
+ PositionalTuple synthesized = new PositionalTuple() ;
+
+ /* 1. Synthesizes property expression:List<Expression> */
+ synthesized.expression = new ArrayList<Expression>() ;
+ for (TupleElement t :parsed.getTupleElements()) {
+ synthesized.expression.add(ASTExpressionFactory.synthesizeExpression(t.getArgument())) ;
+ }
+
+ /* 2. Synthesizes property invocation:InvocationExpression */
+ synthesized.invocation = invocation ;
+
+ return synthesized ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Tuple from a LinkOperationTuple
+ */
+ public static final Tuple synthesizeNamedTupleFromLinkOperationExpression(LinkOperationTuple tuple,
+ LinkOperationExpression invocation) {
+ NamedTuple synthesized = new NamedTuple() ;
+
+ /*1. Synthesize property invocation:InvocationExpression */
+ synthesized.invocation = invocation ;
+
+ /*2. Synthesize property namedExpression:List<NamedExpression> */
+ synthesized.namedExpression = new ArrayList<NamedExpression>() ;
+ //NamedExpression n ;
+ // Hypothesis: All LinkOperationTupleElement have both a "objectOrRole" and an "object"
+// for (LinkOperationTupleElement t : tuple.getLinkOperationTupleElement()) {
+// n = new NamedExpression() ;
+// n.name = t.getObjectOrRole() ;
+// if (t.getRoleIndex() != null)
+// n.index = this.synthesizeExpression(t.getRoleIndex()) ;
+// n.expression = this.synthesizeNameExpression(t.getObject()) ;
+// synthesized.namedExpression.add(n) ;
+// }
+
+ return synthesized ;
+ }
+
+ public static final Expression synthesizeNameExpression(String object) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a InstanceCreationExpression
+ */
+ public static final Expression synthesizeInstanceCreationExpression(
+ org.eclipse.papyrus.alf.alf.InstanceCreationExpression parsed) {
+ InstanceCreationExpression synthesized = new InstanceCreationExpression() ;
+
+ /* 1. Synthesizes property target:QualifiedName */
+ synthesized.constructor = ASTExpressionFactory.synthesizeQualifiedName(parsed.getConstructor()) ;
+
+// /* 2. Synthesizes property tuple:Tuple */
+// synthesized.tuple = this.synthesizeTuple(parsed.getTuple(), synthesized) ;
+
+ if (parsed.getSuffix() != null)
+ return ASTExpressionFactory.synthesizeExpression(synthesized, parsed.getSuffix()) ;
+
+ return synthesized ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a alf.syntax.expressions.Expression
+ * and a SuffixExpression
+ */
+ public static final Expression synthesizeExpression(
+ Expression synthesized, SuffixExpression suffix) {
+ if (suffix instanceof org.eclipse.papyrus.alf.alf.OperationCallExpression)
+ return ASTExpressionFactory.synthesizeFeatureInvocationExpression(
+ synthesized,
+ (org.eclipse.papyrus.alf.alf.OperationCallExpression)suffix) ;
+ if (suffix instanceof org.eclipse.papyrus.alf.alf.PropertyCallExpression)
+ return ASTExpressionFactory.synthesizePropertyAccessExpression(
+ synthesized,
+ (org.eclipse.papyrus.alf.alf.PropertyCallExpression)suffix) ;
+ if (suffix instanceof org.eclipse.papyrus.alf.alf.LinkOperationExpression)
+ return ASTExpressionFactory.synthesizeLinkOperationExpression(
+ synthesized,
+ (org.eclipse.papyrus.alf.alf.LinkOperationExpression)suffix) ;
+ if (suffix instanceof org.eclipse.papyrus.alf.alf.SequenceOperationExpression)
+ return ASTExpressionFactory.synthesizeSequenceOperationExpression(
+ synthesized,
+ (org.eclipse.papyrus.alf.alf.SequenceOperationExpression)suffix) ;
+ if (suffix instanceof org.eclipse.papyrus.alf.alf.SequenceReductionExpression)
+ return ASTExpressionFactory.synthesizeSequenceReductionExpression(
+ synthesized,
+ (org.eclipse.papyrus.alf.alf.SequenceReductionExpression)suffix) ;
+ if (suffix instanceof org.eclipse.papyrus.alf.alf.SequenceExpansionExpression)
+ return ASTExpressionFactory.synthesizeSequenceExpansionExpression(
+ synthesized,
+ (org.eclipse.papyrus.alf.alf.SequenceExpansionExpression)suffix) ;
+ else // org.eclipse.papyrus.alf.alf.ClassExtentExpression
+ return ASTExpressionFactory.synthesizeClassExtentExpression(
+ synthesized,
+ (org.eclipse.papyrus.alf.alf.ClassExtentExpression)suffix) ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a alf.syntax.expressions.Expression
+ * and a suffix OperationCallExpression
+ */
+ public static final Expression synthesizeFeatureInvocationExpression(
+ Expression target, org.eclipse.papyrus.alf.alf.OperationCallExpression suffix) {
+ FeatureInvocationExpression synthesized = new FeatureInvocationExpression() ;
+
+ /*1. Synthesizes property tuple:Tuple */
+ synthesized.tuple = ASTExpressionFactory.synthesizeTuple(suffix.getTuple(), synthesized) ;
+
+ /*2. Synthesizes property target:FeatureReference */
+ FeatureReference featureReference = new FeatureReference() ;
+ featureReference.expression = target ;
+ featureReference.nameBinding = ASTExpressionFactory.synthesizeNameBinding(suffix.getOperationName()) ;
+ synthesized.target = featureReference ;
+
+ if (suffix.getSuffix() != null)
+ return ASTExpressionFactory.synthesizeExpression(synthesized, suffix.getSuffix()) ;
+
+ return synthesized ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a alf.syntax.expressions.Expression
+ * and a suffix PropertyCallExpression
+ */
+ public static final Expression synthesizePropertyAccessExpression(Expression target,
+ org.eclipse.papyrus.alf.alf.PropertyCallExpression suffix) {
+ PropertyAccessExpression synthesized = new PropertyAccessExpression() ;
+ /*1. Synthesize property featureReference */
+ FeatureReference featureReference = new FeatureReference() ;
+ featureReference.expression = target ;
+ // LIMITATION: in this version of the Alf parser, no binding can be specified in a property access expression
+ NameBinding nameBinding = new NameBinding() ;
+ nameBinding.name = suffix.getPropertyName() ;
+ featureReference.nameBinding = nameBinding ;
+ synthesized.featureReference = featureReference ;
+
+ Expression resultingExpression = synthesized ;
+
+ // in the case where an index is specified, needs to synthesize a SequenceAccessExpression
+ if (suffix.getIndex() != null) {
+ SequenceAccessExpression synthesizedAccessExpression = new SequenceAccessExpression() ;
+ synthesizedAccessExpression.primary = synthesized ;
+ synthesizedAccessExpression.index =
+ ASTExpressionFactory.synthesizeExpression(suffix.getIndex()) ;
+ resultingExpression = synthesizedAccessExpression ;
+ }
+
+ if (suffix.getSuffix() != null)
+ return ASTExpressionFactory.synthesizeExpression(resultingExpression, suffix.getSuffix()) ;
+
+ return resultingExpression ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a alf.syntax.expressions.Expression
+ * and a suffix LinkCallExpression
+ */
+ public static final Expression synthesizeLinkOperationExpression(
+ Expression target, org.eclipse.papyrus.alf.alf.LinkOperationExpression suffix) {
+ LinkOperationExpression synthesized = new LinkOperationExpression() ;
+
+ /*1. Synthesize property tuple:Tuple */
+ synthesized.tuple = ASTExpressionFactory.synthesizeNamedTupleFromLinkOperationExpression(suffix.getTuple(), synthesized) ;
+
+ /*2. Synthesize property associationName:QualifiedName */
+ synthesized.associationName = ASTExpressionFactory.synthesizeQualifiedName(target) ;
+
+ /*3. Synthesize property operation:String */
+ switch (suffix.getKind()) {
+ case CLEAR:
+ synthesized.operation = "clearAssoc" ;
+ break;
+ case CREATE:
+ synthesized.operation = "createLink" ;
+ break;
+ case DESTROY:
+ synthesized.operation = "destroyLink" ;
+ break;
+ }
+
+ return synthesized ;
+ }
+
+ /**
+ * Build a alf.syntax.expressions.SequenceConstructionExpression from a SequenceConstructionExpression
+ * @param parsed
+ * @return The SequenceConstructionExpression
+ */
+ public static final Expression synthesizeSequenceConstructionExpression(
+ org.eclipse.papyrus.alf.alf.SequenceConstructionExpression parsed){
+ SequenceConstructionExpression synthesized = null;
+ if(parsed != null){
+ synthesized = new SequenceConstructionExpression();
+ if(parsed.getSequenceElement()!=null){
+ /*0. Determine if we want to generate a SequenceExpressionList or a SequenceRange*/
+ if(parsed.getRangeUpper() != null){
+ SequenceRange seqRange = new SequenceRange();
+ seqRange.rangeUpper = ASTExpressionFactory.synthesizeExpression(parsed.getRangeUpper());
+ NaturalLiteralExpression literalExp = new NaturalLiteralExpression();
+ literalExp.image = "0";
+ seqRange.rangeLower = literalExp;
+ }else{
+ synthesized.elements = ASTExpressionFactory.synthesizeSequenceExpressionList(
+ parsed.getSequenceElement());
+ }
+ }
+ }
+ return synthesized;
+ }
+
+ /**
+ * Build an alf.syntax.expressions.SequenceExpressionList from a list of SequenceElement
+ * @param seqElts
+ * @return The SequenceExpressionList
+ */
+ public static final SequenceElements synthesizeSequenceExpressionList(
+ EList<org.eclipse.papyrus.alf.alf.SequenceElement> seqElts){
+ SequenceExpressionList synthesized = null;
+ if(seqElts!=null){
+ synthesized = new SequenceExpressionList();
+ synthesized.element = new ArrayList<Expression>();
+ for(org.eclipse.papyrus.alf.alf.SequenceElement seqElt : seqElts){
+ /*1.1 If it is not an Expression it is a SequenceConstructionExpression*/
+ if(seqElt instanceof org.eclipse.papyrus.alf.alf.impl.SequenceConstructionExpressionImpl){
+ synthesized.element.add(ASTExpressionFactory.synthesizeSequenceConstructionExpression(
+ (org.eclipse.papyrus.alf.alf.SequenceConstructionExpression)seqElt));
+ }else{
+ synthesized.element.add(ASTExpressionFactory.synthesizeExpression(
+ (org.eclipse.papyrus.alf.alf.ConditionalTestExpression)seqElt));
+ }
+ }
+ //TODO : upper and lower must be computed
+ }
+ return synthesized;
+ }
+
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a alf.syntax.expressions.Expression
+ * and a suffix SequenceOperationExpression
+ */
+ public static final Expression synthesizeSequenceOperationExpression(
+ Expression target, org.eclipse.papyrus.alf.alf.SequenceOperationExpression suffix) {
+ SequenceOperationExpression synthesized = new SequenceOperationExpression() ;
+
+ /*1. Synthesize property tuple:Tuple */
+ synthesized.tuple = ASTExpressionFactory.synthesizeTuple(suffix.getTuple(), synthesized) ;
+
+ /*2. Synthesize property associationName:QualifiedName */
+ synthesized.operation = ASTExpressionFactory.synthesizeQualifiedName(target) ;
+
+ if (suffix.getSuffix() != null) {
+ return ASTExpressionFactory.synthesizeExpression(synthesized, suffix.getSuffix()) ;
+ }
+
+ return synthesized ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a alf.syntax.expressions.Expression
+ * and a suffix SequenceReductionExpression
+ */
+ public static final Expression synthesizeSequenceReductionExpression(
+ Expression target, org.eclipse.papyrus.alf.alf.SequenceReductionExpression suffix) {
+ SequenceReductionExpression synthesized = new SequenceReductionExpression() ;
+
+ /*1. Synthesize property behaviorName:QualifiedName */
+ synthesized.behaviorName = ASTExpressionFactory.synthesizeQualifiedName(suffix.getBehavior()) ;
+
+ /*2. Synthesize property isOrdered:boolean */
+ synthesized.isOrdered = suffix.isIsOrdered() ;
+
+ /*3. Synthesize property primary:ExtentOrExpression */
+ synthesized.primary = ASTExpressionFactory.synthesizeExtentOrExpression(target) ;
+
+ if (suffix.getSuffix() != null) {
+ return ASTExpressionFactory.synthesizeExpression(synthesized, suffix.getSuffix()) ;
+ }
+ return synthesized ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a alf.syntax.expressions.Expression
+ * and a suffix SequenceExpansionExpression
+ */
+ public static final Expression synthesizeSequenceExpansionExpression(
+ Expression target, org.eclipse.papyrus.alf.alf.SequenceExpansionExpression suffix) {
+ if (suffix instanceof org.eclipse.papyrus.alf.alf.SelectOrRejectOperation) {
+ return ASTExpressionFactory.synthesizeSelectOrRejectExpression(target,
+ (org.eclipse.papyrus.alf.alf.SelectOrRejectOperation)suffix) ;
+ }
+ else if (suffix instanceof org.eclipse.papyrus.alf.alf.ForAllOrExistsOrOneOperation) {
+ return ASTExpressionFactory.synthesizeForAllOrExistsOrOneExpression(target,
+ (org.eclipse.papyrus.alf.alf.ForAllOrExistsOrOneOperation)suffix) ;
+ }
+ else if (suffix instanceof org.eclipse.papyrus.alf.alf.CollectOrIterateOperation) {
+ return ASTExpressionFactory.synthesizeCollectOrIterateExpression(target,
+ (org.eclipse.papyrus.alf.alf.CollectOrIterateOperation)suffix) ;
+ }
+ else { // instanceof org.eclipse.papyrus.alf.alf.IsUniqueOperation
+ return ASTExpressionFactory.synthesizeIsUniqueExpression(target,
+ (org.eclipse.papyrus.alf.alf.IsUniqueOperation)suffix) ;
+ }
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a alf.syntax.expressions.Expression
+ * and a suffix SelectOrRejectExpression
+ */
+ public static final Expression synthesizeSelectOrRejectExpression(Expression target,
+ SelectOrRejectOperation suffix) {
+ SelectOrRejectExpression synthesized = new SelectOrRejectExpression() ;
+
+ /*1. Synthesize property argument:Expression */
+ synthesized.argument = ASTExpressionFactory.synthesizeExpression(suffix.getExpr());
+
+ /*2. Synthesize property operation:String */
+ switch (suffix.getOp()) {
+ case SELECT:
+ synthesized.operation = "select" ;
+ break;
+ case REJECT:
+ synthesized.operation = "reject" ;
+ break;
+ default:
+ break;
+ }
+
+ /*3. Synthesize property variable:String */
+ synthesized.variable = suffix.getName() ;
+
+ /*4. Synthesize property primary:ExtentOrExpression */
+ synthesized.primary = ASTExpressionFactory.synthesizeExtentOrExpression(target) ;
+
+ if (suffix.getSuffix() != null) {
+ return ASTExpressionFactory.synthesizeExpression(synthesized, suffix.getSuffix()) ;
+ }
+ return synthesized;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a alf.syntax.expressions.Expression
+ * and a suffix ForAllOrExistsOrOneExpression
+ */
+ public static final Expression synthesizeForAllOrExistsOrOneExpression(
+ Expression target, ForAllOrExistsOrOneOperation suffix) {
+ ForAllOrExistsOrOneExpression synthesized = new ForAllOrExistsOrOneExpression() ;
+
+ /*1. Synthesize property argument:Expression */
+ synthesized.argument = ASTExpressionFactory.synthesizeExpression(suffix.getExpr());
+
+ /*2. Synthesize property operation:String */
+ switch (suffix.getOp()) {
+ case EXISTS:
+ synthesized.operation = "exists" ;
+ break;
+ case FORALL:
+ synthesized.operation = "forAll" ;
+ break;
+ case ONE:
+ synthesized.operation = "one" ;
+ break;
+ default:
+ break;
+ }
+
+ /*3. Synthesize property variable:String */
+ synthesized.variable = suffix.getName() ;
+
+ /*4. Synthesize property primary:ExtentOrExpression */
+ synthesized.primary = ASTExpressionFactory.synthesizeExtentOrExpression(target) ;
+
+ if (suffix.getSuffix() != null) {
+ return ASTExpressionFactory.synthesizeExpression(synthesized, suffix.getSuffix()) ;
+ }
+ return synthesized ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a alf.syntax.expressions.Expression
+ * and a suffix ForAllOrExistsOrOneExpression
+ */
+ public static final Expression synthesizeCollectOrIterateExpression(Expression target,
+ CollectOrIterateOperation suffix) {
+ ForAllOrExistsOrOneExpression synthesized = new ForAllOrExistsOrOneExpression() ;
+
+ /*1. Synthesize property argument:Expression */
+ synthesized.argument = ASTExpressionFactory.synthesizeExpression(suffix.getExpr());
+
+ /*2. Synthesize property operation:String */
+ switch (suffix.getOp()) {
+ case COLLECT:
+ synthesized.operation = "collect" ;
+ break;
+ case ITERATE:
+ synthesized.operation = "iterate" ;
+ break;
+ default:
+ break;
+ }
+
+ /*3. Synthesize property variable:String */
+ synthesized.variable = suffix.getName() ;
+
+ /*4. Synthesize property primary:ExtentOrExpression */
+ synthesized.primary = ASTExpressionFactory.synthesizeExtentOrExpression(target) ;
+
+ if (suffix.getSuffix() != null) {
+ return ASTExpressionFactory.synthesizeExpression(synthesized, suffix.getSuffix()) ;
+ }
+ return synthesized ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a alf.syntax.expressions.Expression
+ * and a suffix IsUniqueExpression
+ */
+ public static final Expression synthesizeIsUniqueExpression(Expression target,
+ IsUniqueOperation suffix) {
+ IsUniqueExpression synthesized = new IsUniqueExpression() ;
+
+ /*1. Synthesize property argument:Expression */
+ synthesized.argument = ASTExpressionFactory.synthesizeExpression(suffix.getExpr());
+
+ /*2. Synthesize property variable:String */
+ synthesized.variable = suffix.getName() ;
+
+ /*3. Synthesize property primary:ExtentOrExpression */
+ synthesized.primary = ASTExpressionFactory.synthesizeExtentOrExpression(target) ;
+
+ if (suffix.getSuffix() != null) {
+ return ASTExpressionFactory.synthesizeExpression(synthesized, suffix.getSuffix()) ;
+ }
+ return synthesized ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.Expression from a alf.syntax.expressions.Expression
+ * and a suffix ClassExtentExpression
+ */
+ public static final Expression synthesizeClassExtentExpression(Expression target,
+ org.eclipse.papyrus.alf.alf.ClassExtentExpression suffix) {
+ ClassExtentExpression synthesized = new ClassExtentExpression() ;
+
+ /*1. Synthesize property className:QualifiedName */
+ synthesized.className = ASTExpressionFactory.synthesizeQualifiedName(target) ;
+
+ return synthesized ;
+ }
+
+ /*
+ * Synthesizes a alf.syntax.expressions.ExtentOrExpression
+ * from a alf.syntax.expressions.Expression
+ */
+ public static final ExtentOrExpression synthesizeExtentOrExpression(
+ Expression target) {
+ ExtentOrExpression synthesized = new ExtentOrExpression() ;
+
+ /* 1. Case where it is an Extent: Tries to synthesize property name:QualifiedName */
+ QualifiedName tryQualifiedName = ASTExpressionFactory.synthesizeQualifiedName(target) ;
+ if (tryQualifiedName.nameBinding != null &&
+ !tryQualifiedName.nameBinding.isEmpty()) {
+ synthesized.name = tryQualifiedName ;
+ }
+ else { // this is not an extent expression.
+ /* 2. Synthesize property nonNameExpression:Expression */
+ synthesized.nonNameExpression = target ;
+ }
+
+ return synthesized ;
+ }
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/ASTStatementFactory.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/ASTStatementFactory.java
new file mode 100644
index 00000000000..ea3af80ea22
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/ASTStatementFactory.java
@@ -0,0 +1,317 @@
+package org.eclipse.papyrus.alf.syntax;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.expressions.QualifiedName;
+import org.eclipse.papyrus.alf.syntax.statements.AcceptBlock;
+import org.eclipse.papyrus.alf.syntax.statements.AcceptStatement;
+import org.eclipse.papyrus.alf.syntax.statements.Block;
+import org.eclipse.papyrus.alf.syntax.statements.ConcurrentClauses;
+import org.eclipse.papyrus.alf.syntax.statements.IfStatement;
+import org.eclipse.papyrus.alf.syntax.statements.LocalNameDeclarationStatement;
+import org.eclipse.papyrus.alf.syntax.statements.NonFinalClause;
+import org.eclipse.papyrus.alf.syntax.statements.QualifiedNameList;
+import org.eclipse.papyrus.alf.syntax.statements.Statement;
+import org.eclipse.papyrus.alf.syntax.statements.WhileStatement;
+
+public class ASTStatementFactory {
+
+ /**
+ * Build an alf.syntax.statements.Block from Block
+ * @param parsed
+ * @return alf.syntax.statements.Block
+ */
+ public static final Block synthesizeBlock(org.eclipse.papyrus.alf.alf.Block parsed){
+ Block synthesized = null;
+ if(parsed!=null){
+ synthesized = new Block();
+ /*1. Retrieve all statements*/
+ synthesized.statement = new ArrayList<Statement>();
+ if(parsed.getSequence()!=null){
+ org.eclipse.papyrus.alf.alf.StatementSequence seq = parsed.getSequence();
+ if(seq.getStatements() != null){
+ for(org.eclipse.papyrus.alf.alf.DocumentedStatement dst :seq.getStatements()){
+ synthesized.statement.add(
+ ASTStatementFactory.synthesizeStatement(dst));
+ }
+ }
+ }
+ //TODO AssignmentBefore and AssignmentAfter
+ }
+ return synthesized;
+ }
+
+ /**
+ * Build an alf.syntax.statements.Statement from DocumentedStatement
+ * @param stmt
+ * @return
+ */
+ public static final Statement synthesizeStatement(
+ org.eclipse.papyrus.alf.alf.DocumentedStatement docstmt){
+ org.eclipse.papyrus.alf.alf.Statement stmt = docstmt.getStatement();
+ Statement synthesized = null;
+ if(stmt instanceof org.eclipse.papyrus.alf.alf.impl.AnnotatedStatementImpl){
+
+ }
+ else if(stmt instanceof org.eclipse.papyrus.alf.alf.impl.BlockStatementImpl){
+
+ }
+ else if(stmt instanceof org.eclipse.papyrus.alf.alf.impl.EmptyStatementImpl){
+
+ }
+ else if(stmt instanceof org.eclipse.papyrus.alf.alf.impl.LocalNameDeclarationStatementImpl){
+ synthesized = ASTStatementFactory.synthesizeLocalNameDeclarationStatement(
+ (org.eclipse.papyrus.alf.alf.LocalNameDeclarationStatement)stmt);
+ }
+ else if(stmt instanceof org.eclipse.papyrus.alf.alf.impl.IfStatementImpl){
+
+ }
+ else if(stmt instanceof org.eclipse.papyrus.alf.alf.impl.SwitchStatementImpl){
+
+ }
+ else if(stmt instanceof org.eclipse.papyrus.alf.alf.impl.WhileStatementImpl){
+ synthesized = ASTStatementFactory.synthesizeWhileStatement(
+ (org.eclipse.papyrus.alf.alf.WhileStatement)stmt);
+ }
+ else if(stmt instanceof org.eclipse.papyrus.alf.alf.impl.DoStatementImpl){
+
+ }
+ else if(stmt instanceof org.eclipse.papyrus.alf.alf.impl.ForStatementImpl){
+
+ }
+ else if(stmt instanceof org.eclipse.papyrus.alf.alf.impl.BreakStatementImpl){
+
+ }
+ else if(stmt instanceof org.eclipse.papyrus.alf.alf.impl.ReturnStatementImpl){
+
+ }
+ else if(stmt instanceof org.eclipse.papyrus.alf.alf.impl.AcceptStatementImpl){
+ synthesized = ASTStatementFactory.synthesizeAcceptStatement(
+ (org.eclipse.papyrus.alf.alf.AcceptStatement)stmt);
+ }
+ else if(stmt instanceof org.eclipse.papyrus.alf.alf.impl.ClassifyStatementImpl){
+
+ }
+ else if(stmt instanceof org.eclipse.papyrus.alf.alf.impl.InvocationOrAssignementOrDeclarationStatementImpl){
+
+ }
+ else if(stmt instanceof org.eclipse.papyrus.alf.alf.impl.SuperInvocationStatementImpl){
+
+ }
+ else if(stmt instanceof org.eclipse.papyrus.alf.alf.impl.ThisInvocationStatementImpl){
+
+ }
+ else if(stmt instanceof org.eclipse.papyrus.alf.alf.impl.InstanceCreationInvocationStatementImpl){
+
+ }
+ return synthesized;
+ }
+
+ /**
+ * Build an alf.syntax.statements.AcceptStatement from an AcceptStatement
+ * @param accept
+ * @return The AcceptStatement
+ */
+ public static final AcceptStatement synthesizeAcceptStatement(org.eclipse.papyrus.alf.alf.AcceptStatement parsed){
+ AcceptStatement synthesized = null;
+ if(parsed != null){
+ synthesized = new AcceptStatement();
+ synthesized.acceptBlock = new ArrayList<AcceptBlock>();
+ /*1. Determine whether the accept is simple or compound*/
+ if(parsed.getCompoundAccept() != null){
+ synthesized.isSimple = false;
+ org.eclipse.papyrus.alf.alf.CompoundAcceptStatementCompletion accept = parsed.getCompoundAccept();
+ /*1.1 Retrieve the block of the top AcceptStatement*/
+ AcceptBlock tmpAcceptBlock = ASTStatementFactory.synthesizeAcceptBlock(parsed.getClause());
+ tmpAcceptBlock.block = ASTStatementFactory.synthesizeBlock(accept.getBlock());
+ synthesized.acceptBlock.add(tmpAcceptBlock);
+ /*1.2 Retrieve the list of AcceptBlock of the CompoundStatement*/
+ for(org.eclipse.papyrus.alf.alf.AcceptBlock block: accept.getAcceptBlock()){
+ synthesized.acceptBlock.add(ASTStatementFactory.synthesizeAcceptBlock(block));
+ }
+ }else{
+ synthesized.isSimple = true;
+ synthesized.acceptBlock.add(ASTStatementFactory.synthesizeAcceptBlock(parsed.getClause()));
+ }
+ /*3. Determine which behavior contains this AcceptStatement*/
+ //TODO Assign the ElementReference to the behavior attribute
+
+ /*4. Determine the context behavior*/
+ //TODO Assign the behavior attribute to the context behavior evaluation provided by AlfJavaValidator
+ }
+ return synthesized;
+ }
+
+ /**
+ * Build an alf.syntax.statements.AcceptBlock from an AcceptClause
+ * @param parsed
+ * @return The AcceptBlock
+ */
+ public static final AcceptBlock synthesizeAcceptBlock(org.eclipse.papyrus.alf.alf.AcceptClause parsed){
+ AcceptBlock synthesized = null;
+ if(parsed != null){
+ synthesized = new AcceptBlock();
+ /*1. Local name which holds the signal instance*/
+ synthesized.name = parsed.getName();
+ /*2. Retrieve the list of signal accepted by this AcceptBlock*/
+ if(parsed.getQualifiedNameList() != null){
+ synthesized.signalNames = new QualifiedNameList();
+ synthesized.signalNames.name = new ArrayList<QualifiedName>();
+ for(org.eclipse.papyrus.alf.alf.QualifiedNameWithBinding sigName :
+ parsed.getQualifiedNameList().getQualifiedName()){
+ synthesized.signalNames.name.add(
+ ASTExpressionFactory.synthesizeQualifiedName(sigName));
+ }
+ }
+ /*3 Set up the element reference on the signal*/
+ //TODO Assign the ElementReference to the signal attribute
+ }
+ return synthesized;
+ }
+
+ /**
+ * Build an alf.syntax.statements.AcceptBlock from an AcceptBlock
+ * @param parsed
+ * @return The AcceptBlock
+ */
+ public static final AcceptBlock synthesizeAcceptBlock(org.eclipse.papyrus.alf.alf.AcceptBlock parsed){
+ AcceptBlock synthesized = null;
+ if(parsed!=null){
+ synthesized = ASTStatementFactory.synthesizeAcceptBlock(parsed.getClause());
+ synthesized.block = ASTStatementFactory.synthesizeBlock(parsed.getBlock());
+ }
+ return synthesized;
+ }
+
+ /**
+ * Build an alf.syntax.statements.LocalNameDeclarationStatement from an LocalNameDeclarationStatement
+ * @param parsed
+ * @return The LocalNameDeclarationStatement
+ */
+ public static final LocalNameDeclarationStatement synthesizeLocalNameDeclarationStatement(org.eclipse.papyrus.alf.alf.LocalNameDeclarationStatement parsed){
+ LocalNameDeclarationStatement synthesized = null;
+ if(parsed!=null){
+ synthesized = new LocalNameDeclarationStatement();
+ /*1. Determine if the multiplicity is specified*/
+ synthesized.hasMultiplicity = parsed.isMultiplicityIndicator();
+ /*2. Determine the name of the local name being declared*/
+ synthesized.name = parsed.getVarName();
+ /*3. Determine the type of the local name being declared*/
+ synthesized.typeName = ASTExpressionFactory.synthesizeQualifiedName(parsed.getType());
+ /*4 Build the expression to evaluated in order to provide the initial value*/
+ if(parsed.getInit() != null){
+ /*If it is not an Expression it is a SequenceConstructionExpression*/
+ if(parsed.getInit() instanceof
+ org.eclipse.papyrus.alf.alf.impl.SequenceConstructionExpressionImpl){
+ synthesized.expression = ASTExpressionFactory.synthesizeSequenceConstructionExpression(
+ (org.eclipse.papyrus.alf.alf.SequenceConstructionExpression)parsed.getInit());
+ }else{
+ synthesized.expression = ASTExpressionFactory.synthesizeExpression(
+ (org.eclipse.papyrus.alf.alf.ConditionalTestExpression)parsed.getInit());
+ }
+ }
+ /*5. type attribute should be assigned to an ElementReference referencing the type*/
+ if(synthesized.expression.type != null){
+ synthesized.type = synthesized.expression.type;
+ }
+ }
+ return synthesized;
+ }
+
+ /**
+ * Build an alf.syntax.statements.WhileStatement from an WhileStatement
+ * @param parsed
+ * @return The WhileStatement
+ */
+ public static final WhileStatement synthesizeWhileStatement(org.eclipse.papyrus.alf.alf.WhileStatement parsed){
+ WhileStatement synthesized = null;
+ if(parsed!=null){
+ /*Condition and Block shall be valid*/
+ if(parsed.getCondition() != null && parsed.getBlock() != null){
+ synthesized = new WhileStatement();
+ synthesized.condition = ASTExpressionFactory.synthesizeExpression(parsed.getCondition());
+ synthesized.body = ASTStatementFactory.synthesizeBlock(parsed.getBlock());
+ }
+ }
+ return synthesized;
+ }
+
+ /**
+ * Build an alf.syntax.statements.IfStatement from an IfStatement
+ * @param parsed
+ * @return The IfStatement
+ */
+ public static final IfStatement synthesizeIfStatement(org.eclipse.papyrus.alf.alf.IfStatement parsed){
+ IfStatement synthesized = null;
+ if(parsed!=null){
+ synthesized = new IfStatement();
+ synthesized.finalClause = ASTStatementFactory.synthesizeBlock(parsed.getFinalClause());
+ synthesized.nonFinalClauses = ASTStatementFactory.
+ synthesizeConcurrentClausesList(parsed.getSequentialClausses());
+ }
+ return synthesized;
+ }
+
+ /**
+ * Build an alf.syntax.statements.Block from a FinalClause
+ * @param parsed
+ * @return The Block
+ */
+ public static final Block synthesizeBlock(org.eclipse.papyrus.alf.alf.FinalClause parsed){
+ Block synthesized = null;
+ if(parsed!=null && parsed.getBlock()!=null){
+ synthesized = ASTStatementFactory.synthesizeBlock(parsed.getBlock());
+ }
+ return synthesized;
+ }
+
+ /**
+ * Build an alf.syntax.statements.NonFinalClause from a NonFinalClause
+ * @param parsed
+ * @return
+ */
+ public static final NonFinalClause synthesizeNonFinalClause(org.eclipse.papyrus.alf.alf.NonFinalClause parsed){
+ NonFinalClause synthesized = null;
+ if(parsed != null && (parsed.getBlock() != null && parsed.getCondition() != null)){
+ synthesized = new NonFinalClause();
+ synthesized.condition = ASTExpressionFactory.synthesizeExpression(parsed.getCondition());
+ synthesized.body = ASTStatementFactory.synthesizeBlock(parsed.getBlock());
+ }
+ return synthesized;
+ }
+
+ /**
+ * Build an alf.syntax.statements.ConcurrentClauses from a ConcurrentClauses
+ * @param parsed
+ * @return The ConcurrentClauses
+ */
+ public static final ConcurrentClauses synthesizeConcurrentClauses(org.eclipse.papyrus.alf.alf.ConcurrentClauses parsed){
+ ConcurrentClauses synthesized = null;
+ if(parsed!=null && parsed.getNonFinalClause().size() >= 1){
+ synthesized = new ConcurrentClauses();
+ synthesized.clause = new ArrayList<NonFinalClause>();
+ for(org.eclipse.papyrus.alf.alf.NonFinalClause nonFinalClause :parsed.getNonFinalClause()){
+ NonFinalClause clause = ASTStatementFactory.synthesizeNonFinalClause(nonFinalClause);
+ if(clause!=null){
+ synthesized.clause.add(clause);
+ }
+ }
+ }
+ return synthesized;
+ }
+
+ public static final List<ConcurrentClauses> synthesizeConcurrentClausesList(org.eclipse.papyrus.alf.alf.SequentialClauses parsed){
+ List<ConcurrentClauses> synthesized = null;
+ if(parsed!=null && parsed.getConccurentClauses().size()>=1){
+ synthesized = new ArrayList<ConcurrentClauses>();
+ for(org.eclipse.papyrus.alf.alf.ConcurrentClauses concClause: parsed.getConccurentClauses()){
+ ConcurrentClauses clause = ASTStatementFactory.synthesizeConcurrentClauses(concClause);
+ if(clause!=null){
+ synthesized.add(clause);
+ }
+ }
+ }
+ return synthesized;
+ }
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/ASTUnitFactory.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/ASTUnitFactory.java
new file mode 100644
index 00000000000..70ca0ba8027
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/ASTUnitFactory.java
@@ -0,0 +1,6 @@
+package org.eclipse.papyrus.alf.syntax;
+
+public class ASTUnitFactory {
+
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/common/AssignedSource.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/common/AssignedSource.java
new file mode 100644
index 00000000000..05ec0a8ae30
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/common/AssignedSource.java
@@ -0,0 +1,12 @@
+package org.eclipse.papyrus.alf.syntax.common;
+
+public class AssignedSource {
+
+ // Synthesized properties
+ protected int lower ;
+ protected String name ;
+ protected SyntaxElement source ;
+ protected ElementReference type ;
+ protected int upper ;
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/common/DocumentedElement.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/common/DocumentedElement.java
new file mode 100644
index 00000000000..d0be1aee192
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/common/DocumentedElement.java
@@ -0,0 +1,9 @@
+package org.eclipse.papyrus.alf.syntax.common;
+
+import java.util.List;
+
+public abstract class DocumentedElement {
+
+ protected List<String> documentation ;
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/common/ElementReference.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/common/ElementReference.java
new file mode 100644
index 00000000000..b106f9a261b
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/common/ElementReference.java
@@ -0,0 +1,5 @@
+package org.eclipse.papyrus.alf.syntax.common;
+
+public abstract class ElementReference {
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/common/ExternalElementReference.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/common/ExternalElementReference.java
new file mode 100644
index 00000000000..401e52affde
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/common/ExternalElementReference.java
@@ -0,0 +1,10 @@
+package org.eclipse.papyrus.alf.syntax.common;
+
+import org.eclipse.uml2.uml.Element;
+
+public class ExternalElementReference extends ElementReference {
+
+ // Synthesized properties
+ protected Element element ;
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/common/InternalElementReference.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/common/InternalElementReference.java
new file mode 100644
index 00000000000..2839da4a9f2
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/common/InternalElementReference.java
@@ -0,0 +1,8 @@
+package org.eclipse.papyrus.alf.syntax.common;
+
+public class InternalElementReference extends ElementReference {
+
+ // Synthesized properties
+ protected SyntaxElement element ;
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/common/SyntaxElement.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/common/SyntaxElement.java
new file mode 100644
index 00000000000..4706a88b86c
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/common/SyntaxElement.java
@@ -0,0 +1,5 @@
+package org.eclipse.papyrus.alf.syntax.common;
+
+public abstract class SyntaxElement {
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ArithmeticExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ArithmeticExpression.java
new file mode 100644
index 00000000000..47fd23784ee
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ArithmeticExpression.java
@@ -0,0 +1,47 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+public class ArithmeticExpression extends BinaryExpression {
+
+ // derived properties
+ protected boolean isConcatenation ;
+
+ // constraints
+
+ /*
+ * An arithmetic expression is a string concatenation expression if its type is String.
+ */
+ protected void checkArithmeticExpressionIsConcatenationDerivation () {
+
+ }
+
+ /*
+ * An arithmetic expression has a multiplicity lower bound of 0 if the lower bound if either operand
+ * expression is 0 and 1 otherwise.
+ */
+ protected void checkArithmeticExpressionLowerDerivation () {
+
+ }
+
+ /*
+ * The operands of an arithmetic expression must both have type Integer, unless the operator is +, in which
+ * case they may also both have type String.
+ */
+ protected void checkArithmeticExpressionOperandTypes () {
+
+ }
+
+ /*
+ * The type of an arithmetic expression is the same as the type of its operands.
+ */
+ protected void checkArithmeticExpressionTypeDerivation () {
+
+ }
+
+ /*
+ * An arithmetic expression has a multiplicity upper bound of 1.
+ */
+ protected void checkArithmeticExpressionUpperDerivation () {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/AssignmentExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/AssignmentExpression.java
new file mode 100644
index 00000000000..f0be211e824
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/AssignmentExpression.java
@@ -0,0 +1,193 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.AssignedSource;
+import org.eclipse.papyrus.alf.syntax.common.ElementReference;
+
+public class AssignmentExpression extends Expression {
+
+ // Synthesized Properties
+ protected LeftHandSide leftHandSide ;
+ protected String operator ;
+ protected Expression rightHandSide ;
+
+ // Derived Properties
+ protected AssignedSource assignment ;
+ protected Expression expression ;
+ protected ElementReference feature ;
+ protected boolean isArithmetic ;
+ protected boolean isBitStringConversion ;
+ protected boolean isCollectionConversion ;
+ protected boolean isDataValueUpdate ;
+ protected boolean isDefinition ;
+ protected boolean isFeature ;
+ protected boolean isIndexed ;
+ protected boolean isSimple ;
+
+ // Constraints
+
+ /*
+ * The new assigned source for an assignment to a local name is the assignment expression. If the
+ * assignment is a definition, then the type is given by the right hand side, the multiplicity upper bound is 1
+ * if the upper bound of the right hand side is 1 and otherwise * and the multiplicity lower bound is 0.
+ * Otherwise, the type and multiplicity are the same as the left hand side.
+ */
+ public void checkAssignmentExpressionAssignmentDerivation() {
+
+ }
+
+ /*
+ * The assigned source of a name before the right-hand side expression of an assignment expression is the
+ * same as the assigned source before the assignment expression. The assigned source of a name before the
+ * left-hand side is the assigned source after the right-hand side expression.
+ */
+ public void checkAssignmentExpressionAssignmentsBefore() {
+
+ }
+
+ /*
+ * For a compound assignment, both the left-hand and right-hand sides must have a multiplicity upper
+ * bound of 1.
+ */
+ public void checkAssignmentExpressionCompoundAssignmentMultiplicityConformance () {
+
+ }
+
+ /*
+ * For a compound assignment, both the left-hand side and the right-hand side must have the same type,
+ * consistent with the arithmetic or logical operator used in the compound assignment operator.
+ */
+ public void checkAssignmentExpressionCompoundAssignmentTypeConformance () {
+
+ }
+
+ /*
+ * For a compound assignment, the effective expression is the left-hand side treated as a name expression,
+ * property access expression or sequence access expression, as appropriate for evaluation to obtain the
+ * original value to be updated.
+ */
+ public void checkAssignmentExpressionExpressionDerivation () {
+
+ }
+
+ /*
+ * If the left-hand side of an assignment expression is a feature, then the feature of the assignment is the
+ * referent of the left-hand side.
+ */
+ public void checkAssignmentExpressionFeatureDerivation () {
+
+ }
+
+ /*
+ * An assignment expression is an arithmetic assignment if its operator is a compound assignment operator
+ * for an arithmetic operation.
+ */
+ public void checkAssignmentExpressionIsArithmeticDerivation () {
+
+ }
+
+ /*
+ * An assignment requires BitString conversion if the type of the left-hand side is BitString and either the
+ * type of the right-hand side is Integer or collection conversion is required and the type of the right-hand
+ * side is a collection class whose argument type is Integer.
+ */
+ public void checkAssignmentExpressionIsBitStringConversionDerivation () {
+
+ }
+
+ /*
+ * An assignment requires collection conversion if the type of the right-hand side is a collection class and
+ * its multiplicity upper bound is 1, and the type of the left-hand side is not a collection class.
+ */
+ public void checkAssignmentExpressionIsCollectionConversionDerivation () {
+
+ }
+
+ /*
+ * An assignment expression is a data value update if its left hand side is an attribute of a data value held in
+ * a local name or parameter.
+ */
+ public void checkAssignmentExpressionIsDataValueUpdateDerivation () {
+
+ }
+
+ /*
+ * An assignment expression is a definition if it is a simple assignment and its left hand side is a local name
+ * for which there is no assignment before the expression.
+ */
+ public void checkAssignmentExpressionIsDefinitionDerivation () {
+
+ }
+
+ /*
+ * The left hand side of an assignment expression is a feature if it is a kind of FeatureLeftHandSide.
+ */
+ public void checkAssignmentExpressionIsFeatureDerivation () {
+
+ }
+
+ /*
+ * The left hand side of an assignment expression is indexed if it has an index.
+ */
+ public void checkAssignmentExpressionIsIndexedDerivation () {
+
+ }
+
+ /*
+ * An assignment expression is a simple assignment if the assignment operator is "=".
+ */
+ public void checkAssignmentExpressionIsSimpleDerivation () {
+
+ }
+
+ /*
+ * An assignment expression has the same multiplicity lower bound as its right-hand side expression.
+ */
+ public void checkAssignmentExpressionLowerDerivation () {
+
+ }
+
+ /*
+ * If the left-hand side of a simple assignment is not a new local name and the multiplicity upper bound of
+ * the left-hand side is less than or equal to 1, then the multiplicity upper bound of the right-hand side
+ * cannot be greater than that of the left-hand side.
+ */
+ public void checkAssignmentExpressionSimpleAssignmentMultiplicityConformance () {
+
+ }
+
+ /*
+ * If the left-hand side of a simple assignment is not a new local name, and the right-hand side is not null,
+ * then the left-hand side must either be untyped or have a type that conforms to the type of the right-hand
+ * side expression.
+ */
+ public void checkAssignmentExpressionSimpleAssignmentTypeConformance () {
+
+ }
+
+ /*
+ * An assignment expression has the same type as its right-hand side expression.
+ */
+ public void checkAssignmentExpressionTypeDerivation () {
+
+ }
+
+ /*
+ * An assignment expression has the same multiplicity upper bound as its right-hand side expression.
+ */
+ public void checkAssignmentExpressionUpperDerivation () {
+
+ }
+
+ // Helper Operations
+
+ /*
+ * The assignments after an assignment expression are the assignments after the left-hand side, updated by
+ * the assignment from the assignment statement, if any.
+ */
+ public List<AssignedSource> updateAssignments ( ) {
+ return new ArrayList<AssignedSource>() ;
+ }
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/BehaviorInvocationExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/BehaviorInvocationExpression.java
new file mode 100644
index 00000000000..101ebea21c5
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/BehaviorInvocationExpression.java
@@ -0,0 +1,44 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+public class BehaviorInvocationExpression extends InvocationExpression {
+
+ //Synthesized Properties
+ protected QualifiedName target ;
+
+ // Constraints
+
+ /*
+ * An input argument expression must be assignable to its corresponding parameter. An output parameter
+ * must be assignable to its corresponding argument expression. (Note that this implies that the type of an
+ * argument expression for an inout parameter must be the same as the type of that parameter.)
+ */
+ public void checkBehaviorInvocationExpressionArgumentCompatibility () {
+
+ }
+
+ /*
+ * If the target qualified name disambiguates to a feature reference, then the feature of a behavior
+ * invocation expression is that feature reference.
+ */
+ public void checkBehaviorInvocationExpressionFeatureDerivation () {
+
+ }
+
+ /*
+ * If the target qualified name does not disambiguate to a feature reference, then it must resolve to a
+ * behavior or an association end. Otherwise it must resolve to a single feature referent according to the
+ * overloading resolution rules, unless it is an implicit destructor call (in which case it has no referent).
+ */
+ public void checkBehaviorInvocationExpressionReferentConstraint () {
+
+ }
+
+ /*
+ * The referent of a behavior invocation expression is the behavior named by the target or, if the target
+ * disambiguates to a feature reference, the operation or signal being invoked.
+ */
+ public void checkBehaviorInvocationExpressionReferentDerivation () {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/BinaryExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/BinaryExpression.java
new file mode 100644
index 00000000000..a90f4a1c9fb
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/BinaryExpression.java
@@ -0,0 +1,52 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.AssignedSource;
+
+public abstract class BinaryExpression extends Expression {
+
+ // Synthesized Properties
+ public Expression operand1 ;
+ public Expression operand2 ;
+ public String operator ;
+
+ // Constraints
+
+ /*
+ * The assignments in the operand expressions of a binary expression must be valid (as determined by the
+ * validateAssignments helper operation).
+ */
+ public void checkBinaryExpressionOperandAssignments() {
+
+ }
+
+ /*
+ * The operands of a binary expression must both have a multiplicity upper bound of 1.
+ */
+ public void checkBinaryExpressionOperandMultiplicity() {
+
+ }
+
+ // Helper Operations
+
+ /*
+ * The assignments after a binary expression include all the assignments before the expression that are not
+ * reassigned in either operand expression, plus the new assignments from each of the operand expressions.
+ */
+ public List<AssignedSource> updateAssignments ( ) {
+ return new ArrayList<AssignedSource>() ;
+ }
+
+ /*
+ * In general the assignments before the operand expressions of a binary expression are the same as those
+ * before the binary expression and, if an assignment for a name is changed in one operand expression,
+ * then the assignment for that name may not change in the other operand expression. (This is overridden
+ * for conditional logical expressions.)
+ */
+ public boolean validateAssignments ( ) {
+ return false ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/BitStringUnaryExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/BitStringUnaryExpression.java
new file mode 100644
index 00000000000..5f5fbb60a87
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/BitStringUnaryExpression.java
@@ -0,0 +1,47 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+public class BitStringUnaryExpression extends UnaryExpression {
+
+ // Derived Properties
+ protected boolean isBitStringConversion ;
+
+ // Constraints
+
+ /*
+ * BitString conversion is required if the operand expression of a BitString unary expression has type
+ * Integer.
+ */
+ public void checkBitStringUnaryExpresionIsBitStringConversionDerivation() {
+
+ }
+
+ /*
+ * A BitString unary expression has the same multiplicity lower bound as its operand expression.
+ */
+ public void checkBitStringUnaryExpressionLowerDerivation() {
+
+ }
+
+ /*
+ * The operand expression of a BitString unary expression must have type BitString or Integer and a
+ * multiplicity upper bound of 1.
+ */
+ public void checkBitStringUnaryExpressionOperand() {
+
+ }
+
+ /*
+ * A BitString unary expression has type BitString.
+ */
+ public void checkBitStringUnaryExpressionTypeDerivation() {
+
+ }
+
+ /*
+ * A BitString unary expression has a multiplicity upper bound of 1.
+ */
+ public void checkBitStringUnaryExpressionUpperDerivation() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/BooleanLiteralExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/BooleanLiteralExpression.java
new file mode 100644
index 00000000000..b17f88b7fc5
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/BooleanLiteralExpression.java
@@ -0,0 +1,17 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+public class BooleanLiteralExpression extends LiteralExpression {
+
+ // Synthesized Properties
+ public String image ;
+
+ //Constraints
+
+ /*
+ * The type of a boolean literal expression is Boolean.
+ */
+ public void checkBooleanLiteralExpressionTypeDerivation() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/BooleanUnaryExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/BooleanUnaryExpression.java
new file mode 100644
index 00000000000..9469986d775
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/BooleanUnaryExpression.java
@@ -0,0 +1,36 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+public class BooleanUnaryExpression extends UnaryExpression {
+
+ // Constraints
+
+ /*
+ * A Boolean unary expression has the same multiplicity lower bound as its operand expression.
+ */
+ public void checkBooleanUnaryExpressionLowerDerivation() {
+
+ }
+
+ /*
+ * The operand expression of a Boolean unary expression must have type Boolean and a multiplicity upper
+ * bound of 1.
+ */
+ public void checkBooleanUnaryExpressionOperand() {
+
+ }
+
+ /*
+ * A Boolean unary expression has type Boolean.
+ */
+ public void checkBooleanUnaryExpressionTypeDerivation() {
+
+ }
+
+ /*
+ * A Boolean unary expression has a multiplicity upper bound of 1.
+ */
+ public void checkBooleanUnaryExpressionUpperDerivation() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/CastExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/CastExpression.java
new file mode 100644
index 00000000000..8005c5e1b26
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/CastExpression.java
@@ -0,0 +1,61 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.AssignedSource;
+
+public class CastExpression extends Expression {
+
+ // Synthesized Properties
+ public Expression operand ;
+ public QualifiedName typeName ;
+
+ // Constraints
+
+ /*
+ * The assignments before the operand of a cast expression are the same as those before the cast
+ * expression.
+ */
+ public void checkCastExpressionAssignmentsBefore() {
+
+ }
+
+ /*
+ * A cast expression has a multiplicity lower bound of 0.
+ */
+ public void checkCastExpressionLowerDerivation() {
+
+ }
+
+ /*
+ * The type of a cast expression is the referent of the given type name (if there is one).
+ */
+ public void checkCastExpressionTypeDerivation() {
+
+ }
+
+ /*
+ * If the cast expression has a type name, then it must resolve to a classifier.
+ */
+ public void checkCastExpressionTypeResolution() {
+
+ }
+
+ /*
+ * A cast expression has a multiplicity upper bound that is the same as the upper bound of its operand
+ * expression.
+ */
+ public void checkCastExpressionUpperDerivation() {
+
+ }
+
+ // Helper Operations
+
+ /*
+ * The assignments after a cast expression are the same as those after its operand expression.
+ */
+ public List<AssignedSource> updateAssignments ( ) {
+ return new ArrayList<AssignedSource>() ;
+ }
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ClassExtentExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ClassExtentExpression.java
new file mode 100644
index 00000000000..98b17e87f74
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ClassExtentExpression.java
@@ -0,0 +1,36 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+public class ClassExtentExpression extends Expression {
+
+ //Synthesized Properties
+ public QualifiedName className ;
+
+ //Constraints
+ /*
+ * The given type name must resolve to a non-template class.
+ */
+ public void checkClassExtentExpressionExtentType() {
+
+ }
+
+ /*
+ * The multiplicity lower bound of a class extent expression is 0.
+ */
+ public void checkClassExtentExpressionLowerDerivation() {
+
+ }
+
+ /*
+ * The type of a class extent expression is the given class.
+ */
+ public void checkClassExtentExpressionTypeDerivation() {
+
+ }
+
+ /*
+ * The multiplicity upper bound of a class expression is *.
+ */
+ public void checkClassExtentExpressionUpperDerivation() {
+
+ }
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ClassificationExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ClassificationExpression.java
new file mode 100644
index 00000000000..5713d13c930
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ClassificationExpression.java
@@ -0,0 +1,65 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+import org.eclipse.papyrus.alf.syntax.common.ElementReference;
+
+public class ClassificationExpression extends UnaryExpression {
+
+ // Synthesized Properties
+ public QualifiedName typeName ;
+
+ // Derived Properties
+ public boolean isDirect ;
+ public ElementReference referent ;
+
+ //Constraints
+ /*
+ * A classification expression is direct if its operator is "hastype".
+ */
+ public void checkClassificationExpressionIsDirectDerivation() {
+
+ }
+
+ /*
+ * A classification expression has a multiplicity lower bound that is the same as the lower bound of its
+ * operand expression.
+ */
+ public void checkClassificationExpressionLowerDerivation() {
+
+ }
+
+ /*
+ * The operand expression of a classification expression must have a multiplicity upper bound of 1.
+ */
+ public void checkClassificationExpressionOperand() {
+
+ }
+
+ /*
+ * The referent of a classification expression is the classifier to which the type name resolves.
+ */
+ public void checkClassificationExpressionReferentDerivation() {
+
+ }
+
+ /*
+ * A classification expression has type Boolean.
+ */
+ public void checkClassificationExpressionTypeDerivation() {
+
+ }
+
+ /*
+ * The type name in a classification expression must resolve to a classifier.
+ */
+ public void checkClassificationExpressionTypeName() {
+
+ }
+
+ /*
+ * A classification expression has a multiplicity upper bound of 1.
+ */
+ public void checkClassificationExpressionUpperDerivation() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/CollectOrIterateExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/CollectOrIterateExpression.java
new file mode 100644
index 00000000000..19299e2d6d3
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/CollectOrIterateExpression.java
@@ -0,0 +1,30 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+public class CollectOrIterateExpression extends SequenceExpansionExpression {
+
+ // Constraints
+
+ /*
+ * A collect or iterate expression has a multiplicity lower bound that is the product of the bounds of its
+ * primary and argument expressions.
+ */
+ public void checkCollectOrIterateExpressionLowerDerivation() {
+
+ }
+
+ /*
+ * A collect or iterate expression has the same type as its argument expression.
+ */
+ public void checkCollectOrIterateExpressionTypeDerivation() {
+
+ }
+
+ /*
+ * A collect or iterate expression has a multiplicity upper bound that is the product of the bounds of its
+ * primary and argument expressions.
+ */
+ public void checkCollectOrIterateExpressionUpperDerivation() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ConditionalLogicalExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ConditionalLogicalExpression.java
new file mode 100644
index 00000000000..100b93ee5b4
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ConditionalLogicalExpression.java
@@ -0,0 +1,63 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.AssignedSource;
+
+public class ConditionalLogicalExpression extends BinaryExpression {
+
+ // Constraints
+
+ /*
+ * A conditional logical expression has a multiplicity lower bound of 0 if the lower bound if either operand
+ * expression is 0 and 1 otherwise.
+ */
+ public void checkConditionalLogicalExpressionLower() {
+
+ }
+
+ /*
+ * The operands of a conditional logical expression must have type Boolean.
+ */
+ public void checkConditionalLogicalExpressionOperands() {
+
+ }
+
+ /*
+ * A conditional logical expression has type Boolean.
+ */
+ public void checkConditionalLogicalExpressionTypeDerivation() {
+
+ }
+
+ /*
+ * A conditional logical expression has a multiplicity upper bound of 1.
+ */
+ public void checkConditionalLogicalExpressionUpper() {
+
+ }
+
+ // Helper Operations
+
+ /*
+ * If a name has the same assigned source after the second operand expression as before it, then that is its
+ * assigned source after the conditional logical expression. If a name is unassigned before the second
+ * operand expression, then it is considered unassigned after the conditional logical expression, even if it
+ * has an assigned source after the second operand expression. Otherwise its assigned source after the
+ * conditional logical expression is the conditional logical expression itself.
+ */
+ public List<AssignedSource> updateAssignments() {
+ return new ArrayList<AssignedSource>() ;
+ }
+
+ /*
+ * The assignments before the first operand expression of a conditional logical expression are the same as
+ * those before the conditional logical expression. The assignments before the second operand expression
+ * are the same as those after the first operand expression.(non-Javadoc)
+ */
+ public boolean validateAssignments() {
+ return false ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ConditionalTestExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ConditionalTestExpression.java
new file mode 100644
index 00000000000..22e450aa0c6
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ConditionalTestExpression.java
@@ -0,0 +1,77 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.AssignedSource;
+
+public class ConditionalTestExpression extends Expression {
+
+ // Synthesized Properties
+ public Expression operand1 ;
+ public Expression operand2 ;
+ public Expression operand3 ;
+
+ // Constraints
+
+ /*
+ * If a name is unassigned after the first operand expression and has an assigned source after one of the
+ * other operand expression, then it must have an assigned source after both of those expressions.
+ */
+ public void checkConditionalTestExpressionAssignmentsAfter() {
+
+ }
+
+ /*
+ * The assignments before the first operand expression of a conditional-test expression are the same as
+ * those before the conditional-test expression. The assignments before the second and third operand
+ * expressions are the same as those after the first operand expression.
+ */
+ public void checkConditionalTestExpressionAssignmentsBefore() {
+
+ }
+
+ /*
+ * The first operand expression of a conditional-test expression must be of type Boolean and have a
+ * multiplicity upper bound of 1.
+ */
+ public void checkConditionalTestExpressionCondition() {
+
+ }
+
+ /*
+ * The multiplicity lower bound of a conditional-test operator expression is the minimum of the
+ * multiplicity lower bounds of its second and third operand expressions.
+ */
+ public void checkConditionalTestExpressionLowerDerivation() {
+
+ }
+
+ /*
+ * The type of a conditional-test operator expression is the effective common ancestor (if one exists) of the
+ * types of its second and third operand expressions.
+ */
+ public void checkConditionalTestExpressionTypeDerivation() {
+
+ }
+
+ /*
+ * The multiplicity upper bound of a conditional-test operator expression is the maximum of the
+ * multiplicity upper bounds of its second and third operand expressions.
+ */
+ public void checkConditionalTestExpressionUpperDerivation() {
+
+ }
+
+ // Helper Operations
+
+ /*
+ * Returns unchanged all assignments for local names that are not reassigned in either the second or third
+ * operand expressions. Any local names that have different assignments after the second and third operand
+ * expressions are adjusted to have the conditional-test expression as their assigned source.
+ */
+ public List<AssignedSource> updateAssignments() {
+ return new ArrayList<AssignedSource>() ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/EqualityExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/EqualityExpression.java
new file mode 100644
index 00000000000..580b05c8aac
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/EqualityExpression.java
@@ -0,0 +1,38 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+public class EqualityExpression extends BinaryExpression {
+
+ // Derived Properties
+ public boolean isNegated ;
+
+ // Constraints
+
+ /*
+ * An equality expression is negated if its operator is "!=".
+ */
+ public void checkEqualityExpressionIsNegatedDerivation() {
+
+ }
+
+ /*
+ * An equality expression has a multiplicity lower bound of 1.
+ */
+ public void checkEqualityExpressionLowerDerivation() {
+
+ }
+
+ /*
+ * An equality expression has type Boolean.
+ */
+ public void checkEqualityExpressionTypeDerivation() {
+
+ }
+
+ /*
+ * An equality expression has a multiplicity upper bound of 1.
+ */
+ public void checkEqualityExpressionUpperDerivation() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/Expression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/Expression.java
new file mode 100644
index 00000000000..3bd6c4cd785
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/Expression.java
@@ -0,0 +1,45 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.AssignedSource;
+import org.eclipse.papyrus.alf.syntax.common.ElementReference;
+import org.eclipse.papyrus.alf.syntax.common.SyntaxElement;
+
+public class Expression extends SyntaxElement {
+
+ // Derived Properties
+ public List<AssignedSource> assignmentAfter ;
+ public List<AssignedSource> assignmentBefore ;
+ public int lower ;
+ public ElementReference type ;
+ public int upper ;
+
+ //Constraints
+
+ /*
+ * The assignments after an expression are given by the result of the updateAssignments helper operation.
+ */
+ public void checkExpressionAssignmentsAfterDerivation() {
+
+ }
+
+ /*
+ * No name may be assigned more than once before or after an expression.
+ */
+ public void checkExpressionUniqueAssignments() {
+
+ }
+
+ // Helper Operations
+ /*
+ * Returns the assignments from before this expression updated for any assignments made in the
+ expression. By default, this is the same set as the assignments before the expression. This operation is
+ redefined only in subclasses of Expression for kinds of expressions that make assignments.
+ */
+ public List<AssignedSource> updateAssignments() {
+ return new ArrayList<AssignedSource>() ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ExtentOrExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ExtentOrExpression.java
new file mode 100644
index 00000000000..58e11dfddf2
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ExtentOrExpression.java
@@ -0,0 +1,24 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+public class ExtentOrExpression {
+
+ // Synthesized Properties
+ public QualifiedName name ;
+ public Expression nonNameExpression ;
+
+
+ //Derived Properties
+ public Expression expression ;
+
+ // Constraints
+
+ /*
+ * The effective expression for the target is the parsed primary expression, if the target is not a qualified
+ name, a name expression, if the target is a qualified name other than a class name, or a class extent
+ expression, if the target is the qualified name of a class.
+ */
+ public void checkExtentOrExpressionExpressionDerivation() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/FeatureInvocationExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/FeatureInvocationExpression.java
new file mode 100644
index 00000000000..5da7801e6dd
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/FeatureInvocationExpression.java
@@ -0,0 +1,50 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+public class FeatureInvocationExpression extends InvocationExpression {
+
+ // Synthesized Properties
+ public FeatureReference target ;
+
+ // Constraints
+
+ /*
+ * An alternative constructor invocation may only occur in an expression statement as the first statement in
+ * the definition for the method of a constructor operation.
+ */
+ public void checkFeatureInvocationExpressionAlternativeConstructor() {
+
+ }
+
+ /*
+ * If a feature invocation expression has an explicit target, then that is its feature. Otherwise, it is an
+ * alternative constructor call with its feature determined implicitly.
+ */
+ public void checkFeatureInvocationExpressionFeatureDerivation() {
+
+ }
+
+ /*
+ * If there is no target feature expression, then the implicit feature with the same name as the target type
+ * must be a constructor.
+ */
+ public void checkFeatureInvocationExpressionImplicitAlternativeConstructor() {
+
+ }
+
+ /*
+ * If a feature invocation expression is an implicit object destruction, it has no referent. Otherwise, its
+ * referent is the referent of its feature.
+ */
+ public void checkFeatureInvocationExpressionReferentDerivation() {
+
+ }
+
+ /*
+ * If a feature invocation expression is not an implicit destructor call, then it must be possible to determine
+ * a single valid referent for it according to the overloading resolution rules.
+ */
+ public void checkFeatureInvocationExpressionReferentExists() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/FeatureLeftHandSide.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/FeatureLeftHandSide.java
new file mode 100644
index 00000000000..a7f2e9c4533
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/FeatureLeftHandSide.java
@@ -0,0 +1,42 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+public class FeatureLeftHandSide extends LeftHandSide {
+
+ // Synthesized Properties
+ public FeatureReference feature ;
+
+ // Constraints
+
+ /*
+ * The assignments after a feature left-hand side are the assignments after the expression of the feature
+ * reference or, if there is an index, those after the index expression.
+ */
+ public void checkFeatureLeftHandSideAssignmentAfterDerivation() {
+
+ }
+
+ /*
+ * The assignments before the expression of the feature reference of a feature left-hand side are the
+ * assignments before the feature left-hand side.
+ */
+ public void checkFeatureLeftHandSideAssignmentBeforeDerivation() {
+
+ }
+
+ /*
+ * If a feature left-hand side has an index, then the assignments before the index expression are the
+ * assignments after the expression of the feature reference.
+ */
+ public void checkFeatureLeftHandSideAssignmentsBefore() {
+
+ }
+
+ /*
+ * The expression of the feature reference of a feature left-hand side must have a multiplicity upper bound
+ * of 1.
+ */
+ public void checkFeatureLeftHandSideFeatureExpression() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/FeatureReference.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/FeatureReference.java
new file mode 100644
index 00000000000..840167f5912
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/FeatureReference.java
@@ -0,0 +1,42 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+import org.eclipse.papyrus.alf.syntax.common.ElementReference;
+import org.eclipse.papyrus.alf.syntax.common.SyntaxElement;
+
+public class FeatureReference extends SyntaxElement {
+
+ // Synthesized Properties
+
+ /*
+ * The target expression.
+ */
+ public Expression expression ;
+
+ /*
+ * The name of the feature
+ */
+ public NameBinding nameBinding ;
+
+ //Derived Properties
+ public ElementReference referent ;
+
+ // Constraints
+
+ /*
+ * The features referenced by a feature reference include the features of the type of the target expression
+ * and the association ends of any binary associations whose opposite ends are typed by the type of the
+ * target expression.
+ */
+ public void checkFeatureReferenceReferentDerivation() {
+
+ }
+
+ /*
+ * The target expression of the feature reference may not be untyped, nor may it have a primitive or
+ * enumeration type.
+ */
+ public void checkFeatureReferenceTargetType() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ForAllOrExistsOrOneExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ForAllOrExistsOrOneExpression.java
new file mode 100644
index 00000000000..cd4fd852ebb
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ForAllOrExistsOrOneExpression.java
@@ -0,0 +1,36 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+public class ForAllOrExistsOrOneExpression extends SequenceExpansionExpression {
+
+ // Constraints
+
+ /*
+ * The argument of a forAll, exists or one expression must have type Boolean and a multiplicity upper
+ * bound of 1.
+ */
+ public void checkForAllOrExistOrOneExpressionArgument() {
+
+ }
+
+ /*
+ * A forAll, exists or one expression has a multiplicity lower bound of 1.
+ */
+ public void checkForAllOrExistOrOneExpressionLowerDerivation() {
+
+ }
+
+ /*
+ * A forAll, exists or one expression has the type Boolean.
+ */
+ public void checkForAllOrExistOrOneExpressionTypeDerivation() {
+
+ }
+
+ /*
+ * A forAll, exists or one expression has a multiplicity upper bound of 1.
+ */
+ public void checkForAllOrExistOrOneExpressionUpperDerivation() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/IncrementOrDecrementExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/IncrementOrDecrementExpression.java
new file mode 100644
index 00000000000..edebf6a1a2a
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/IncrementOrDecrementExpression.java
@@ -0,0 +1,119 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.AssignedSource;
+import org.eclipse.papyrus.alf.syntax.common.ElementReference;
+
+public class IncrementOrDecrementExpression extends Expression {
+
+ // Synthesized Properties
+ public boolean isPrefix ;
+ public LeftHandSide operand ;
+
+ // Derived Properties
+ public AssignedSource assignment ;
+ public Expression expression ;
+ public ElementReference feature ;
+ public boolean isDataValueUpdate ;
+ public boolean isFeature ;
+ public boolean isIndexed ;
+
+ // Constraints
+
+ /*
+ * If the operand of an increment or decrement expression is a name, then the assignment for the
+ * expression is a new assigned source for the name with the expression as the source.
+ */
+ public void checkIncrementOrDecrementExpressionAssignment() {
+
+ }
+
+ /*
+ * The assignments before the operand of an increment or decrement expression are the same as those
+ * before the increment or decrement expression.
+ */
+ public void checkIncrementOrDecrementExpressionAssignmentsBefore() {
+
+ }
+
+ /*
+ * The effective expression for the operand of an increment or decrement expression is the operand treated
+ * as a name expression, property access expression or sequence access expression, as appropriate for
+ * evaluation to obtain the original value to be updated.
+ */
+ public void checkIncrementOrDecrementExpressionExpressionDerivation() {
+
+ }
+
+ /*
+ * If the operand of an increment or decrement expression is a feature, then the referent for the operand.
+ */
+ public void checkIncrementOrDecrementExpressionFeature() {
+
+ }
+
+ /*
+ * An increment or decrement expression is a data value update if its operand is an attribute of a data value
+ * held in a local name or parameter.
+ */
+ public void checkIncrementOrDecrementExpressionIsDataValueUpdate() {
+
+ }
+
+ /*
+ * An increment or decrement expression has a feature as its operand if the operand is a kind of
+ * FeatureLeftHandSide.
+ */
+ public void checkIncrementOrDecrementExpressionIsFeatureDerivation() {
+
+ }
+
+ /*
+ * An increment or decrement expression is indexed if its operand is indexed.
+ */
+ public void checkIncrementOrDecrementExpressionIsIndexedDerivation() {
+
+ }
+
+ /*
+ * An increment or decrement expression has the same multiplicity lower bound as its operand expression.
+ */
+ public void checkIncrementOrDecrementExpressionLowerDerivation() {
+
+ }
+
+ /*
+ * The operand expression must have type Integer and a multiplicity upper bound of 1.
+ */
+ public void checkIncrementOrDecrementExpressionOperand() {
+
+ }
+
+ /*
+ * An increment or decrement expression has type Integer.
+ */
+ public void checkIncrementOrDecrementExpressionTypeDerivation() {
+
+ }
+
+ /*
+ * An increment or decrement expression has a multiplicity upper bound of 1.
+ */
+ public void checkIncrementOrDecrementExpressionUpperDerivation() {
+
+ }
+
+ // Helper Operations
+
+ /*
+ * The assignments after an increment and decrement expression include all those after its operand
+ * expression. Further, if the operand expression, considered as a left hand side, is a local name, then this is
+ * reassigned.
+ */
+ public List<AssignedSource> updateAssignments() {
+ return new ArrayList<AssignedSource>() ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/InstanceCreationExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/InstanceCreationExpression.java
new file mode 100644
index 00000000000..85871b14ac5
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/InstanceCreationExpression.java
@@ -0,0 +1,81 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.ElementReference;
+
+public class InstanceCreationExpression extends InvocationExpression {
+
+ // Synthesized Properties
+ public QualifiedName constructor ;
+
+ // Derived Properties
+ public boolean isConstructorless ;
+ public boolean isObjectCreation ;
+
+ // Constraints
+
+ /*
+ * The constructor name must resolve to a constructor operation (that is compatible with the tuple
+ * argument expressions), a class or a data type, but not both a class and a data type.
+ */
+ public void checkInstanceCreationExpressionConstructor() {
+
+ }
+
+ /*
+ * If an instance creation expression is a data value creation (not an object creation), then the tuple
+ * argument expressions are matched with the attributes of the named type.
+ */
+ public void checkInstanceCreationExpressionDataTypeCompatibility() {
+
+ }
+
+ /*
+ * There is no feature for an instance creation expression.
+ */
+ public void checkInstanceCreationExpressionFeatureDerivation() {
+
+ }
+
+ /*
+ * An instance creation expression is constructorless if its referent is a class.
+ */
+ public void checkInstanceCreationExpressionIsConstructorlessDerivation() {
+
+ }
+
+ /*
+ * An instance creation expression is an object creation if its referent is not a data type.
+ */
+ public void checkInstanceCreationExpressionIsObjectCreationDerivation() {
+
+ }
+
+ /*
+ * The referent of an instance creation expression is the constructor operation, class or data type to which
+ * the constructor name resolves.
+ */
+ public void checkInstanceCreationExpressionReferentDerivation() {
+
+ }
+
+ /*
+ * If the expression is constructorless, then its tuple must be empty.
+ */
+ public void checkInstanceCreationExpressionTuple() {
+
+ }
+
+ // Helper Operations
+
+ /*
+ * Returns the parameters of a constructor operation or the attributes of a data type, or an empty set for a
+ * constructorless instance creation.
+ */
+ public List<ElementReference> parameterElements ( ) {
+ return new ArrayList<ElementReference>() ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/InvocationExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/InvocationExpression.java
new file mode 100644
index 00000000000..1d837e8f9f1
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/InvocationExpression.java
@@ -0,0 +1,132 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.AssignedSource;
+import org.eclipse.papyrus.alf.syntax.common.ElementReference;
+
+public abstract class InvocationExpression extends Expression {
+
+ // Synthesized Properties
+
+ /*
+ * The tuple for the invocation expression.
+ */
+ public Tuple tuple ;
+
+ // Derived Properties
+ public FeatureReference feature ;
+ public boolean isAssociationEnd ;
+ public boolean isBehavior ;
+ public boolean isDestructor ;
+ public boolean isImplicit ;
+ public boolean isOperation ;
+ public boolean isSignal ;
+ public List<ElementReference> parameter ;
+ public ElementReference referent ;
+
+ // Constraints
+
+ /*
+ * The assignments before the target expression of the feature reference of an invocation expression (if
+ * any) are the same as the assignments before the invocation expression.
+ */
+ public void checkInvocationExpressionAssignmentsBefore() {
+
+ }
+
+ /*
+ * An invocation expression is an association end read if its referent is an association end.
+ */
+ public void checkInvocationExpressionIsAssociationEndDerivation() {
+
+ }
+
+ /*
+ * An invocation expression is a behavior invocation if its referent is a behavior.
+ */
+ public void checkInvocationExpressionIsBehaviorDerivation() {
+
+ }
+
+ /*
+ * An invocation expression is a destructor call either implicitly or if it is an explicit operation call to a
+ * destructor operation.
+ */
+ public void checkInvocationExpressionIsDestructorDerivation() {
+
+ }
+
+ /*
+ * An invocation expression is an implicit object destruction if it has a feature with the name "destroy" and
+ * no explicit referents.
+ */
+ public void checkInvocationExpressionIsImplicitDerivation() {
+
+ }
+
+ /*
+ * An invocation expression is an operation call if its referent is an operation.
+ */
+ public void checkInvocationExpressionIsOperationDerivation() {
+
+ }
+
+ /*
+ * An invocation expression is a signal send if its referent is a signal.
+ */
+ public void checkInvocationExpressionIsSignalDerivation() {
+
+ }
+
+ /*
+ * The multiplicity lower bound of an invocation expression is determined by the return parameter (if any)
+ * of the referent.
+ */
+ public void checkInvocationExpressionLowerDerivation() {
+
+ }
+
+ /*
+ * The parameters of an invocation expression are given by the result of the parameterElements helper
+ * operation.
+ */
+ public void checkInvocationExpressionParameterDerivation() {
+
+ }
+
+ /*
+ * The type of an invocation expression is determined by the return parameter (if any) of the referent.
+ */
+ public void checkInvocationExpressionTypeDerivation() {
+
+ }
+
+ /*
+ * The multiplicity upper bound of an invocation expression is determined by the return parameter (if any)
+ * of the referent.
+ */
+ public void checkInvocationExpressionUpperDerivation() {
+
+ }
+
+ // Helper Operations
+ /*
+ * Returns references to the elements that act as the parameters of the referent. For a behavior or operation,
+ * these are the owned parameters, in order. Otherwise (by default), they are actually any properties of the
+ * referent (e.g., signal attributes), which are treated as if they were in parameters. (This is defined as a
+ * helper operation, so that it can be overridden by subclasses of InvocationExpression, if necessary.)
+ */
+ public List<ElementReference>parameterElements() {
+ return new ArrayList<ElementReference>() ;
+ }
+
+ /*
+ * The assignments after an invocation expression are the same as those after the tuple of the expression.
+ */
+ public List<AssignedSource> updateAssignments ( ) {
+ return new ArrayList<AssignedSource>() ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/IsUniqueExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/IsUniqueExpression.java
new file mode 100644
index 00000000000..010bc860880
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/IsUniqueExpression.java
@@ -0,0 +1,36 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+public class IsUniqueExpression extends SequenceExpansionExpression {
+
+ // Constraints
+
+ /*
+ * The argument of an isUnique expression must have a multiplicity upper bound of 1.
+ */
+ public void checkIsUniqueExpressionExpressionArgument() {
+
+ }
+
+ /*
+ * An isUnique expression has a multiplicity lower bound of 1.
+ */
+ public void checkIsUniqueExpressionLowerDerivation() {
+
+ }
+
+ /*
+ * An isUnique expression has the type Boolean.
+ */
+ public void checkIsUniqueExpressionTypeDerivation() {
+
+ }
+
+ /*
+ * An isUnique expression has a multiplicity upper bound of 1.
+ */
+ public void checkIsUniqueExpressionUpperDerivation() {
+
+ }
+
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/IsolationExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/IsolationExpression.java
new file mode 100644
index 00000000000..d4c101614ec
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/IsolationExpression.java
@@ -0,0 +1,28 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+public class IsolationExpression extends UnaryExpression {
+
+ // Constraints
+
+ /*
+ * An isolation expression has the multiplicity lower bound of its operand expression.
+ */
+ public void checkIsolationExpressionLowerDerivation() {
+
+ }
+
+ /*
+ * An isolation expression has the type of its operand expression.
+ */
+ public void checkIsolationExpressionTypeDerivation() {
+
+ }
+
+ /*
+ * An isolation expression has the multiplicity upper bound of its operand expression.
+ */
+ public void checkIsolationExpressionUpperDerivation() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/LeftHandSide.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/LeftHandSide.java
new file mode 100644
index 00000000000..48096bfab2b
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/LeftHandSide.java
@@ -0,0 +1,24 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.AssignedSource;
+import org.eclipse.papyrus.alf.syntax.common.SyntaxElement;
+
+public class LeftHandSide extends SyntaxElement {
+
+ // Derived Properties
+ public List<AssignedSource> assignmentAfter ;
+ public List<AssignedSource> assignmentBefore ;
+
+ // Constraints
+
+ /*
+ * If a left-hand side has an index, then the index expression must have a multiplicity upper bound no
+ * greater than 1.
+ */
+ public void checkLeftHandSideIndexExpression() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/LinkOperationExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/LinkOperationExpression.java
new file mode 100644
index 00000000000..9581d71bc4c
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/LinkOperationExpression.java
@@ -0,0 +1,72 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.ElementReference;
+
+public class LinkOperationExpression extends InvocationExpression {
+
+ // Synthesized Properties
+ public QualifiedName associationName ;
+ public String operation ;
+
+ // Derived Properties
+ public boolean isClear ;
+ public boolean isCreation ;
+
+ // Constraints
+
+ /*
+ * Each argument expression must be assignable to its corresponding expression.
+ */
+ public void checkLinkOperationExpressionArgumentCompatibility() {
+
+ }
+
+ /*
+ * The qualified name of a link operation expression must resolve to a single association.
+ */
+ public void checkLinkOperationExpressionAssociationReference() {
+
+ }
+
+ /*
+ * There is no feature for a link operation expression.
+ */
+ public void checkLinkOperationExpressionFeatureDerivation() {
+
+ }
+
+ /*
+ * A link operation expression is for clearing an association if the operation is "clearAssoc".
+ */
+ public void checkLinkOperationExpressionIsClearDerivation() {
+
+ }
+
+ /*
+ * A link operation expression is for link creation if its operation is "createLink".
+ */
+ public void checkLinkOperationExpressionIsCreationDerivation() {
+
+ }
+
+ /*
+ * The referent for a link operation expression is the named association.
+ */
+ public void checkLinkOperationExpressionReferentDerivation() {
+
+ }
+
+ // Helper Operations
+
+ /*
+ * For a clear association operation, returns a single, typeless parameter. Otherwise, returns the ends of the
+ * named association.
+ */
+ public List<ElementReference> parameterElements() {
+ return new ArrayList<ElementReference>() ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/LiteralExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/LiteralExpression.java
new file mode 100644
index 00000000000..2e6c91775c6
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/LiteralExpression.java
@@ -0,0 +1,28 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+public abstract class LiteralExpression extends Expression {
+
+ // Constraints
+
+ /*
+ * The multiplicity lower bound of a literal expression is always 1.
+ */
+ public void checkLiteralExpressionLowerDerivation() {
+
+ }
+
+ /*
+ * The type of a literal expression is given by the type of the literal, as defined for each subclass below.
+ */
+ public void checkLiteralExpressionTypeDerivation() {
+
+ }
+
+ /*
+ * The multiplicity upper bound of a literal expression is always 1.
+ */
+ public void checkLiteralExpressionUpperDerivation() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/LogicalExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/LogicalExpression.java
new file mode 100644
index 00000000000..17b8f7af0a7
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/LogicalExpression.java
@@ -0,0 +1,62 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+public class LogicalExpression extends BinaryExpression {
+
+ // Derived Properties
+ public boolean isBitStringConversion1 ;
+ public boolean isBitStringConversion2 ;
+ public boolean isBitWise ;
+
+ // Constraints
+
+ /*
+ * BitString conversion is required if the first operand expression of a shift expression has type Integer.
+ */
+ public void checkLogicalExpressionIsBitStringConversion1Derivation() {
+
+ }
+
+ /*
+ * BitString conversion is required if the second operand expression of a shift expression has type Integer.
+ */
+ public void checkLogicalExpressionIsBitStringConversion2Derivation() {
+
+ }
+
+ /*
+ * A logical expression is bit-wise if the type of its first operand is not Boolean.
+ */
+ public void checkLogicalExpressionIsBitWiseDerivation() {
+
+ }
+
+ /*
+ * A logical expression has a multiplicity lower bound of 0 if the lower bound if either operand expression
+ * is 0 and 1 otherwise.
+ */
+ public void checkLogicalExpressionLowerDerivation() {
+
+ }
+
+ /*
+ * The operands of a logical expression must have type Boolean.
+ */
+ public void checkLogicalExpressionOperands() {
+
+ }
+
+ /*
+ * A logical expression has type Boolean.
+ */
+ public void checkLogicalExpressionTypeDerivation() {
+
+ }
+
+ /*
+ * A logical expression has a multiplicity upper bound of 1.
+ */
+ public void checkLogicalExpressionUpperDerivation() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/NameBinding.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/NameBinding.java
new file mode 100644
index 00000000000..d141f1fd766
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/NameBinding.java
@@ -0,0 +1,11 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+import org.eclipse.papyrus.alf.syntax.common.SyntaxElement;
+
+public class NameBinding extends SyntaxElement {
+
+ // Synthesized Properties
+ public TemplateBinding binding ;
+ public String name ;
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/NameExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/NameExpression.java
new file mode 100644
index 00000000000..1bf8fc84c51
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/NameExpression.java
@@ -0,0 +1,76 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+import org.eclipse.papyrus.alf.syntax.common.AssignedSource;
+import org.eclipse.papyrus.alf.syntax.common.ElementReference;
+
+public class NameExpression extends Expression {
+
+ // Synthesized Properties
+ public QualifiedName name ;
+
+ // Derived Properties
+ public AssignedSource assignment ;
+ public ElementReference enumerationLiteral ;
+ public PropertyAccessExpression propertyAccess ;
+
+ // Constraints
+
+ /*
+ * If the name in a name expression is a local or parameter name, then its assignment is its assigned source
+ * before the expression.
+ */
+ public void checkNameExpressionAssignmentDerivation() {
+
+ }
+
+ /*
+ * If the name in a name expression resolves to an enumeration literal name, then that is the enumeration
+ * literal for the expression.
+ */
+ public void checkNameExpressionEnumerationLiteralDerivation() {
+
+ }
+
+ /*
+ * The multiplicity lower bound of a name expression is determined by its name.
+ */
+ public void checkNameExpressionLowerDerivation() {
+
+ }
+
+ /*
+ * If the name in a name expression disambiguates to a feature reference, then the equivalent property
+ * access expression has the disambiguation of the name as its feature. The assignments before the property
+ * access expression are the same as those before the name expression.
+ */
+ public void checkNameExpressionPropertyAccessDerivation() {
+
+ }
+
+ /*
+ * If the name referenced by this expression is not a disambiguated feature reference or a local or
+ * parameter name, then it must resolve to exactly one enumeration literal.
+ */
+ public void checkNameExpressionResolution() {
+
+ }
+
+ /*
+ * The type of a name expression is determined by its name. If the name is a local name or parameter with
+ * an assignment, then the type of the name expression is the type of that assignment. If the name is an
+ * enumeration literal, then the type of the name expression is the corresponding enumeration. If the name
+ * disambiguates to a feature reference, then the type of the name expression is the type of the equivalent
+ * property access expression.
+ */
+ public void checkNameExpressionTypeDerivation() {
+
+ }
+
+ /*
+ * The multiplicity upper bound of a name expression is determined by its name.
+ */
+ public void checkNameExpressionUpperDerivation() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/NameLeftHandSide.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/NameLeftHandSide.java
new file mode 100644
index 00000000000..57acdaed30a
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/NameLeftHandSide.java
@@ -0,0 +1,34 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+public class NameLeftHandSide extends LeftHandSide {
+
+ // Synthesized Properties
+ public QualifiedName target ;
+
+ // Constraints
+
+ /*
+ * The assignments after a name left-hand side are the same as the assignments before.
+ */
+ public void checkNameLeftHandSideAssignmentAfterDerivation() {
+
+ }
+
+ /*
+ * If a name left-hand side has an index, then the target name must already have an assigned source and the
+ * assignments before the index expression are the assignments before the left-hand side.
+ */
+ public void checkNameLeftHandSideAssignmentsBefore() {
+
+ }
+
+ /*
+ * The target of a name left hand side may not already have an assigned source that is a loop variable
+ * definition, an annotation, a sequence expansion expression or a parameter that is an in parameter.
+ */
+ public void checkNameLeftHandSideTargetAssignment() {
+
+ }
+
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/NamedExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/NamedExpression.java
new file mode 100644
index 00000000000..13beb86f02a
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/NamedExpression.java
@@ -0,0 +1,35 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+import org.eclipse.papyrus.alf.syntax.common.SyntaxElement;
+
+public class NamedExpression extends SyntaxElement {
+
+ // Synthesized Properties
+ public Expression expression ;
+ public Expression index ;
+ public String name ;
+
+ // Derived Properties
+ public boolean isBitStringConverstion ;
+ public boolean isCollectionConversion ;
+
+ // Constraints
+
+ /*
+ * Bit string conversion is required if the type of the type of the corresponding parameter is BitString, or a
+ * collection class instantiated with a BitString type, and the type of the argument expression is not
+ * BitString.
+ */
+ public void checkNamedExpressionIsBitStringConversionDerivation() {
+
+ }
+
+ /*
+ * Collection conversion is required if the type of the corresponding parameter is a collection class and the
+ * type of the argument expression is not.
+ */
+ public void checkNamedExpressionIsCollectionConversionDerivation() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/NamedTemplateBinding.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/NamedTemplateBinding.java
new file mode 100644
index 00000000000..aa341350a8c
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/NamedTemplateBinding.java
@@ -0,0 +1,9 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+import java.util.List;
+
+public class NamedTemplateBinding extends TemplateBinding {
+
+ // Synthesized Properties
+ public List<TemplateParameterSubstitution> substitution ;
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/NamedTuple.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/NamedTuple.java
new file mode 100644
index 00000000000..8228cd75bd7
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/NamedTuple.java
@@ -0,0 +1,10 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+import java.util.List;
+
+public class NamedTuple extends Tuple {
+
+ // Synthesized Properties
+ public List<NamedExpression> namedExpression ;
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/NaturalLiteralExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/NaturalLiteralExpression.java
new file mode 100644
index 00000000000..d5feab60555
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/NaturalLiteralExpression.java
@@ -0,0 +1,21 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+public class NaturalLiteralExpression extends LiteralExpression {
+
+ // Synthesized Properties
+ public String image ;
+
+ // Constraints
+
+ /*
+ * The type of a natural literal is the Alf library type Natural.
+ * NOTE: If the context of a natural literal expression unambiguously requires either an Integer or an
+ * UnlimitedNatural value, then the result of the literal expression is implicitly downcast to the required
+ * type. If the context is ambiguous, however, than an explicit cast to Integer or UnlimitedNatural must be
+ * used.
+ */
+ public void checkNaturalLiteralExpressionTypeDerivation() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/NumericUnaryExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/NumericUnaryExpression.java
new file mode 100644
index 00000000000..e8d7d5d8212
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/NumericUnaryExpression.java
@@ -0,0 +1,36 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+public class NumericUnaryExpression extends UnaryExpression {
+
+ // Constraints
+
+ /*
+ * A numeric unary expression has the same multiplicity lower bound as its operand expression.
+ */
+ public void checkNumericUnaryExpressionLowerDerivation() {
+
+ }
+
+ /*
+ * The operand expression must have type Integer and a multiplicity upper bound of 1.
+ */
+ public void checkNumericUnaryExpressionOperand() {
+
+ }
+
+ /*
+ * A numeric unary expression must have type Integer.
+ */
+ public void checkNumericUnaryExpressionTypeDerivation() {
+
+ }
+
+ /*
+ * A numeric unary expression has a multiplicity upper bound of 1.
+ */
+ public void checkNumericUnaryExpressionUpperDerivation() {
+
+ }
+
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/OutputNamedExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/OutputNamedExpression.java
new file mode 100644
index 00000000000..212c44c79d1
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/OutputNamedExpression.java
@@ -0,0 +1,35 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+public class OutputNamedExpression extends NamedExpression {
+
+ // Derived Properties
+ public LeftHandSide leftHandSide ;
+
+ // Constraints
+
+ /*
+ * The argument for an output parameter must be either be null, a name expression, a property access
+ * expression, or a sequence access expression whose primary expression is a name expression or a
+ * property access expression.
+ */
+ public void checkOutputNamedExpressionForm() {
+
+ }
+
+ /*
+ * The equivalent left-hand side for an output named expression depends on the kind of expression. If the
+ * expression is a name expression with no disambiguation, then the left-hand side is a name left-hand side
+ * with the name from the name expression. If the expression is a name expression that disambiguates to a
+ * feature reference, then the left-hand side is a feature left-hand side for that feature reference. If the
+ * expression is a property access expression, then the left-hand side is a feature left-hand side for the
+ * feature reference of the property access expression. If the expression is a sequence access expression,
+ * then the left-hand side is a name left-hand side or feature left-hand side, as above, depending on whether
+ * the primary expression of the sequence access expression is a name expression or property access
+ * expression, and an index given by the index expression of the sequence access expression. Otherwise the
+ * left-hand side is empty.
+ */
+ public void checkOutputNamedExpressionLeftHandSideDerivation() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/PositionalTemplateBinding.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/PositionalTemplateBinding.java
new file mode 100644
index 00000000000..7e3578f8a4c
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/PositionalTemplateBinding.java
@@ -0,0 +1,8 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+public class PositionalTemplateBinding extends TemplateBinding {
+
+ // Synthesized Properties
+ public QualifiedName argumentName ;
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/PositionalTuple.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/PositionalTuple.java
new file mode 100644
index 00000000000..7f8e5bff0cd
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/PositionalTuple.java
@@ -0,0 +1,10 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+import java.util.List;
+
+public class PositionalTuple extends Tuple {
+
+ // Synthesized Properties
+ public List<Expression> expression ;
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/PropertyAccessExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/PropertyAccessExpression.java
new file mode 100644
index 00000000000..5900ea68a59
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/PropertyAccessExpression.java
@@ -0,0 +1,75 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.AssignedSource;
+import org.eclipse.papyrus.alf.syntax.common.ElementReference;
+
+public class PropertyAccessExpression extends Expression {
+
+ // Synthesized Properties
+ public FeatureReference featureReference ;
+
+ // Derived Properties
+ public ElementReference feature ;
+
+ //Constraints
+
+ /*
+ * The assignments before the expression of the feature reference of a property access expression are the
+ * same as before the property access expression.
+ */
+ public void checkPropertyAccessExpressionAssignmentsBefore() {
+
+ }
+
+ /*
+ * The feature of a property access expression is the structural feature to which its feature reference
+ * resolves.
+ */
+ public void checkPropertyAccessExpressionFeatureDerivation() {
+
+ }
+
+ /*
+ * The feature reference for a property access expression must resolve to a single structural feature.
+ */
+ public void checkPropertyAccessExpressionFeatureResolution() {
+
+ }
+
+ /*
+ * The multiplicity upper bound of a property access expression is given by the product of the multiplicity
+ * upper bounds of the referenced feature and the target expression.
+ */
+ public void checkPropertyAccessExpressionLowerDerivation() {
+
+ }
+
+ /*
+ * The type of a property access expression is the type of the referenced feature.
+ */
+ public void checkPropertyAccessExpressionTypeDerivation() {
+
+ }
+
+ /*
+ * The multiplicity upper bound of a property access expression is given by the product of the multiplicity
+ * upper bounds of the referenced feature and the target expression.
+ */
+ public void checkPropertyAccessExpressionUpperDerivation() {
+
+ }
+
+ // Helper Operations
+
+ /*
+ * The assignments after a property access expression are the same as those after the target expression of
+ * its feature reference.
+ */
+ public List<AssignedSource> updateAssignments() {
+ return new ArrayList<AssignedSource>() ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/QualifiedName.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/QualifiedName.java
new file mode 100644
index 00000000000..9c1d082b44a
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/QualifiedName.java
@@ -0,0 +1,198 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.ElementReference;
+import org.eclipse.papyrus.alf.syntax.common.SyntaxElement;
+
+public class QualifiedName extends SyntaxElement {
+
+ // Synthesized Properties
+
+ /*
+ * Whether this qualified name is ambiguous.
+ */
+ public boolean isAmbiguous = false ;
+
+ /*
+ * The sequence of individual name bindings in this qualified name.
+ */
+ public List<NameBinding> nameBinding ;
+
+ // Derived Properties
+
+ /*
+ * The disambiguation into a feature reference of a syntactic element initially parsed as a qualified
+ * name.
+ */
+ public FeatureReference disambiguation() {
+ // LIMITATION: The parser implementation only supports :: (no .)
+ // Therefore, a qualified name is never ambiguous
+ return null ;
+ }
+
+ /*
+ * Indicates whether this qualified name has been disambiguated to a feature reference.
+ */
+ public boolean isFeatureReference() {
+ // LIMITATION: The parser implementation only supports :: (no .)
+ // Therefore, a qualified name is never ambiguous
+ return false ;
+ }
+
+ /*
+ * The complete path name for the qualified name, with individual name bindings separated by "::"
+ * punctuation.
+ */
+ public String pathName() {
+ String path = "" ;
+ String doubleColon = "::" ;
+ boolean first = true ;
+ for (NameBinding n : this.nameBinding) {
+ path += (first ? "" : doubleColon) + n.name ;
+ if (first)
+ first = false ;
+ // TODO: Take into account template bindings
+ }
+ return path ;
+ }
+
+ /*
+ * The qualified name corresponding to the qualification part of this qualified name, if any.
+ */
+ public QualifiedName qualification() {
+ // TODO
+ return null ;
+ }
+
+ /*
+ * The possible referents to which this qualified name may resolve. (Note that the UML rules for
+ * namespaces in general allow a namespace to contain elements of different kinds with the same
+ * name.) If the qualified name is for a template instantiation, then the referent is the equivalent bound
+ * element.
+ */
+ public List<ElementReference> referent() {
+ // TODO
+ return new ArrayList<ElementReference>() ;
+ }
+
+
+ public QualifiedName templateName() {
+ // TODO
+ return null ;
+ }
+
+ /*
+ * The rightmost individual name binding in the qualified name, without the qualification.
+ */
+ public NameBinding unqualifiedName() {
+ // TODO
+ return null ;
+ }
+
+ //Constraints
+
+ /*
+ * If a qualified name is not ambiguous or it resolves to a namespace, then it is has no disambiguation.
+ * Otherwise, its disambiguation is a feature reference with a name given by the unqualified name of the
+ * qualified name and a target expression determined by the disambiguation of the qualification of the
+ * qualified name.
+ */
+ public void checkQualifiedNameDisambiguationDerivation() {
+
+ }
+
+ /*
+ * A qualified name is a feature reference is its disambiguation is not empty.
+ */
+ public void checkQualifiedNameIsFeatureReferenceDerivation() {
+
+ }
+
+ /*
+ * If a qualified name is a local name, then the reference must be within the same local scope as the
+ * definition of the named element.
+ */
+ public void checkQualifiedNameLocalName() {
+
+ }
+
+ /*
+ * If a qualified name is an unqualified, non-local name, then it must be visible in the current scope of the
+ * use of the name.
+ */
+ public void checkQualifiedNameNonLocalUnqualifiedName() {
+
+ }
+
+ /*
+ * The path name for a qualified name consists of the string representation of each of the name bindings,
+ * separated by "::" punctuation. The string representation of a name binding is its name followed by the
+ * representation of its template binding, if it has one. The string representation of a positional template
+ * binding consists of an ordered list of the path names of its argument qualified names separated by
+ * commas, all surrounded by the angle brackets "<" and ">". The string representation of a named
+ * template binding consists of an ordered list of its template parameter substitutions, each consisting of the
+ * formal parameter name followed by "=>" followed by the path name of the argument qualified name,
+ * separated by commas, all surrounded by the angle brackets "<" and ">".
+ */
+ public void checkQualifiedNamePathNameDerivation() {
+
+ }
+
+ /*
+ * The qualification of a qualified name is a empty if the qualified name has only one name binding.
+ * Otherwise it is the qualified name consisting of all the name bindings of the original qualified name
+ * except for the last one. The qualification of a qualified name is considered ambiguous if the qualified
+ * name is ambiguous and has more than two name bindings.
+ */
+ public void checkQualifiedNameQualificationDerivation() {
+
+ }
+
+ /*
+ * If a qualified name has a qualification, then its unqualified name must name an element of the
+ * namespace named by the qualification, where the first name in the qualification must name an element
+ * of the current scope.
+ */
+ public void checkQualifiedNameQualifiedResolution() {
+
+ }
+
+ /*
+ * The referents of a qualified name are the elements to which the name may resolve in the current scope,
+ * according to the UML rules for namespaces and named elements.
+ */
+ public void checkQualifiedNameReferentDerivation() {
+
+ }
+
+ /*
+ * If the unqualified name of a qualified name has a template binding, then the template name must resolve
+ * to a template. The template binding must have an argument name for each of the template parameters
+ * and each argument name must resolve to a classifier. If the template parameter has constraining
+ * classifiers, then the referent of the corresponding argument name must conform to all those constraining
+ * classifiers.
+ */
+ public void checkQualifiedNameTemplateBinding() {
+
+ }
+
+ /*
+ * If the last name binding in a qualified name has a template binding, then the template name is a qualified
+ * name with the same template bindings as the original qualified name, but with the template binding
+ * removed on the last name binding.
+ */
+ public void checkQualifiedNameTemplateNameDerivation() {
+
+ }
+
+ /*
+ * The unqualified name of a qualified name is the last name binding.
+ */
+ public void checkQualifiedNameUnqualifiedNameDerivation() {
+
+ }
+
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/RelationalExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/RelationalExpression.java
new file mode 100644
index 00000000000..9b8b6b7eefe
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/RelationalExpression.java
@@ -0,0 +1,50 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+public class RelationalExpression extends BinaryExpression {
+
+ // Derived Properties
+ public boolean isUnlimitedNatural ;
+
+ // Constraints
+
+ /*
+ * A relational expression has a multiplicity lower bound of 0 if the lower bound if either operand
+ * expression is 0 and 1 otherwise.
+ */
+ public void checkRelationalExpressionIsLowerDerivation() {
+
+ }
+
+ /*
+ * The type of a relational expression is Boolean.
+ */
+ public void checkRelationalExpressionIsTypeDerivation() {
+
+ }
+
+ /*
+ * A relational expression is an UnlimitedNatural comparison if either one of its operands has type
+ * UnlimitedNatural.
+ */
+ public void checkRelationalExpressionIsUnlimitedNaturalDerivation() {
+
+ }
+
+ /*
+ * A relational expression has a multiplicity upper bound of 1.
+ */
+ public void checkRelationalExpressionIsUpperDerivation() {
+
+ }
+
+ /*
+ * The operand expressions for a comparison operator must have type Integer, UnlimitedNatural or
+ * Natural. However, it is not allowed to have one operand expression be Integer and the other be
+ * UnlimitedNatural.
+ */
+ public void checkRelationalExpressionOperandTypes() {
+
+ }
+
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SelectOrRejectExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SelectOrRejectExpression.java
new file mode 100644
index 00000000000..a5d97ff873b
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SelectOrRejectExpression.java
@@ -0,0 +1,37 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+public class SelectOrRejectExpression extends SequenceExpansionExpression {
+
+ // Constraints
+
+ /*
+ * The argument of a select or reject expression must have type Boolean and a multiplicity upper bound of
+ * 1.
+ */
+ public void checkSelectOrRejectExpressionArgument() {
+
+ }
+
+ /*
+ * A select or reject expression has a multiplicity lower bound of 0.
+ */
+ public void checkSelectOrRejectExpressionLowerDerivation() {
+
+ }
+
+ /*
+ * A select or reject expression has the same type as its primary expression.
+ */
+ public void checkSelectOrRejectExpressionTypeDerivation() {
+
+ }
+
+ /*
+ * A select or reject expression has a multiplicity upper bound of *.
+ */
+ public void checkSelectOrRejectExpressionUpperDerivation() {
+
+ }
+
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SequenceAccessExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SequenceAccessExpression.java
new file mode 100644
index 00000000000..4b2952dc6c2
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SequenceAccessExpression.java
@@ -0,0 +1,46 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+public class SequenceAccessExpression extends Expression {
+
+ // Synthesized Properties
+ public Expression index ;
+ public Expression primary ;
+
+ // Constraints
+
+ /*
+ * The multiplicity upper bound of the index of a sequence access expression must be 1.
+ */
+ public void checkSequenceAccessExpressionIndexMultiplicity() {
+
+ }
+
+ /*
+ * The type of the index of a sequence access expression must be Integer.
+ */
+ public void checkSequenceAccessExpressionIndexType() {
+
+ }
+
+ /*
+ * The multiplicity lower bound of a sequence access expression is 0.
+ */
+ public void checkSequenceAccessExpressionLowerDerivation() {
+
+ }
+
+ /*
+ * The type of a sequence access expression is the same as the type of its primary expression.
+ */
+ public void checkSequenceAccessExpressionTypeDerivation() {
+
+ }
+
+ /*
+ * The multiplicity upper bound of a sequence access expression is 1.
+ */
+ public void checkSequenceAccessExpressionUpperDerivation() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SequenceConstructionExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SequenceConstructionExpression.java
new file mode 100644
index 00000000000..36d84c7317c
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SequenceConstructionExpression.java
@@ -0,0 +1,45 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+public class SequenceConstructionExpression extends Expression {
+
+ // Synthesized Properties
+ public SequenceElements elements ;
+ public boolean hasMultiplicity = false ;
+ public QualifiedName typeName ;
+
+ //Constraints
+
+ /*
+ * If a sequence construction expression has multiplicity, then its multiplicity lower bound is given by its
+ * elements, if this is not empty, and zero otherwise. If a sequence construction expression does not have
+ * multiplicity, then its multiplicity lower bound is one.
+ */
+ public void checkSequenceConstructionExpressionLowerDerivation() {
+
+ }
+
+ /*
+ * The type name of a sequence construction expression must resolve to a non-template classifier. If the
+ * expression does not have multiplicity, then this classifier must be the instantiation of a collection class.
+ */
+ public void checkSequenceConstructionExpressionType() {
+
+ }
+
+ /*
+ * The type of a sequence construction expression is the named type.
+ */
+ public void checkSequenceConstructionExpressionTypeDerivation() {
+
+ }
+
+ /*
+ * If a sequence construction expression has multiplicity, then its multiplicity upper bound is given by its
+ * elements, if this is not empty, and zero otherwise. If a sequence construction expression does not have
+ * multiplicity, then its multiplicity upper bound is one.
+ */
+ public void checkSequenceConstructionExpressionUpperDerivation() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SequenceElements.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SequenceElements.java
new file mode 100644
index 00000000000..8988ff0f43a
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SequenceElements.java
@@ -0,0 +1,11 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+import org.eclipse.papyrus.alf.syntax.common.SyntaxElement;
+
+public abstract class SequenceElements extends SyntaxElement {
+
+ // Derived Properties
+ public int lower ;
+ public int upper ;
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SequenceExpansionExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SequenceExpansionExpression.java
new file mode 100644
index 00000000000..ae1a653f14e
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SequenceExpansionExpression.java
@@ -0,0 +1,69 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.AssignedSource;
+
+public abstract class SequenceExpansionExpression extends Expression {
+
+ // Synthesized Properties
+ public Expression argument ;
+ public String operation ;
+ public ExtentOrExpression primary ;
+ public String variable ;
+
+ // Derived Properties
+ public AssignedSource variableSource ;
+
+ // Constraints
+
+ /*
+ * The assignments before the argument expression of a sequence expansion expression include those after
+ * the primary expression plus one for the expansion variable.
+ */
+ public void checkSequenceExpansionExpressionAssignmentsBeforeArgument() {
+
+ }
+
+ /*
+ * The assignments before the primary expression of a sequence expansion expression are the same as the
+ * assignments before the sequence expansion expression.
+ */
+ public void checkSequenceExpansionExpressionAssignmentsBeforePrimary() {
+
+ }
+
+ /*
+ * The expansion variable may not be assigned within the argument expression.
+ */
+ public void checkSequenceExpansionExpressionVariableAssignment() {
+
+ }
+
+ /*
+ * The expansion variable name may not conflict with any name already assigned after the primary
+ * expression.
+ */
+ public void checkSequenceExpansionExpressionVariableName() {
+
+ }
+
+ /*
+ * The assigned source for the expansion variable of a sequence expansion expression is the expression
+ * itself.
+ */
+ public void checkSequenceExpansionExpressionVariableSourceDerivation() {
+
+ }
+
+
+ //Helper Operations
+ /*
+ * The assignments after a sequence expansion expression are the same as after its primary expression.
+ */
+ public List<AssignedSource> updateAssignments() {
+ return new ArrayList<AssignedSource>() ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SequenceExpressionList.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SequenceExpressionList.java
new file mode 100644
index 00000000000..9532f7ac336
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SequenceExpressionList.java
@@ -0,0 +1,28 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+import java.util.List;
+
+public class SequenceExpressionList extends SequenceElements {
+
+ // Synthesized Properties
+ public List<Expression> element ;
+
+ // Constraints
+ /*
+ * The multiplicity lower bound of the elements of a sequence expression list is given by the sum of the
+ * lower bounds of each of the expressions in the list.
+ */
+ public void checkSequenceExpressionListLowerDerivation() {
+
+ }
+
+ /*
+ * The multiplicity lower bound of the elements of a sequence expression list is given by the sum of the
+ * lower bounds of each of the expressions in the list. If any of the expressions in the list have an
+ * unbounded upper bound, then the sequence expression list also has an unbounded upper bound.
+ */
+ public void checkSequenceExpressionListUpperDerivation() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SequenceOperationExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SequenceOperationExpression.java
new file mode 100644
index 00000000000..ecf06684668
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SequenceOperationExpression.java
@@ -0,0 +1,95 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.AssignedSource;
+
+public class SequenceOperationExpression extends InvocationExpression {
+
+ // Synthesized Properties
+ public QualifiedName operation ;
+ public ExtentOrExpression primary ;
+
+ // Derived Properties
+ public boolean isBitStringConversion ;
+ public boolean isCollectionConversion ;
+
+ // Constraints
+ /*
+ * The type of an input argument expression of a sequence operation parameter must be assignable to its
+ * corresponding parameter. The type of an output parameter must be assignable to its corresponding
+ * argument expression. (Note that this implies that the type of an argument expression for an inout
+ * parameter must be the same as the type of that parameter.)
+ */
+ public void checkSequenceOperationExpressionArgumentCompatibility() {
+
+ }
+
+ /*
+ * The assignments before the primary expression of a sequence operation expression are the same as the
+ * assignments before the sequence operation expression.
+ */
+ public void checkSequenceOperationExpressionAssignmentsBefore() {
+
+ }
+
+ /*
+ * There is no feature for a sequence operation expression.
+ */
+ public void checkSequenceOperationExpressionFeatureDerivation() {
+
+ }
+
+ /*
+ * BitString conversion is required if type of the first parameter of the referent of a sequence operation
+ * expression is BitString and either the type of its primary expression is Integer or collection conversion is
+ * required and the type of its primary expression is a collection class whose argument type is Integer.
+ */
+ public void checkSequenceOperationExpressionIsBitStringConversionDerivation() {
+
+ }
+
+ /*
+ * Collection conversion is required if the type of the primary expression of a sequence operation
+ * expression is a collection class.
+ */
+ public void checkSequenceOperationExpressionIsCollectionConversionDerivation() {
+
+ }
+
+ /*
+ * There must be a single behavior that is a resolution of the operation qualified name of a sequence
+ * operation expression with a least one parameter, whose first parameter has direction in or inout, has
+ * multiplicity [0..*] and to which the target primary expression is assignable.
+ */
+ public void checkSequenceOperationExpressionOperationReferent() {
+
+ }
+
+ /*
+ * The referent for a sequence operation expression is the behavior named by the operation for the
+ * expression.
+ */
+ public void checkSequenceOperationExpressionReferentDerivation() {
+
+ }
+
+ /*
+ * If the first parameter of the referent has direction inout, then the parameter type must have the same type
+ as the primary expression.
+ */
+ public void checkSequenceOperationExpressionTargetCompatibility() {
+
+ }
+
+ //Helper Operations
+ /*
+ * The assignments after a sequence operation expression include those made in the primary expression
+ * and those made in the tuple and, for an "in place" operation (one whose first parameter is inout), that
+ * made by the sequence operation expression itself.
+ */
+ public List<AssignedSource> updateAssignments() {
+ return new ArrayList<AssignedSource>() ;
+ }
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SequenceRange.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SequenceRange.java
new file mode 100644
index 00000000000..ffcfa277489
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SequenceRange.java
@@ -0,0 +1,26 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+public class SequenceRange extends SequenceElements {
+
+ // Synthesized Properties
+ public Expression rangeLower ;
+ public Expression rangeUpper ;
+
+ // Constraints
+ /*
+ * The multiplicity lower bound of a sequence range is 0.
+ */
+ public void checkSequenceRangeLowerDerivation() {
+
+ }
+
+ /*
+ * The multiplicity uper bound of a sequence range is * (since it is not possible, in general, to statically
+ * determine a more constrained upper bound).
+ */
+ public void checkSequenceRangeUpperDerivation() {
+
+ }
+
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SequenceReductionExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SequenceReductionExpression.java
new file mode 100644
index 00000000000..9ecb5a7a475
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SequenceReductionExpression.java
@@ -0,0 +1,81 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.AssignedSource;
+import org.eclipse.papyrus.alf.syntax.common.ElementReference;
+
+public class SequenceReductionExpression extends Expression {
+
+ // Synthesized Properties
+ public QualifiedName behaviorName ;
+ public boolean isOrdered = false ;
+ public ExtentOrExpression primary ;
+
+ // Derived Properties
+ public ElementReference referent ;
+
+ // Constraints
+ /*
+ * The assignments before the target expression of a sequence reduction expression are the same as the
+ * assignments before the sequence reduction expression.
+ */
+ public void checkSequenceReductionExpressionAssignmentsBefore() {
+
+ }
+
+ /*
+ * The behavior name in a sequence reduction expression must denote a behavior.
+ */
+ public void checkSequenceReductionExpressionBehavior() {
+
+ }
+
+ /*
+ * The referent behavior must have two in parameters, a return parameter and no other parameters. The
+ * parameters must all have the same type as the argument expression and multiplicity [1..1].
+ */
+ public void checkSequenceReductionExpressionBehaviorParameters() {
+
+ }
+
+ /*
+ * A sequence reduction expression has a multiplicity lower bound of 1.
+ */
+ public void checkSequenceReductionExpressionLowerDerivation() {
+
+ }
+
+ /*
+ * The referent for a sequence reduction expression is the behavior denoted by the behavior name of the
+ * expression.
+ */
+ public void checkSequenceReductionExpressionReferentDerivation() {
+
+ }
+
+ /*
+ * A sequence reduction expression has the same type as its primary expression.
+ */
+ public void checkSequenceReductionExpressionTypeDerivation() {
+
+ }
+
+ /*
+ * A sequence reduction expression has a multiplicity upper bound of 1.
+ */
+ public void checkSequenceReductionExpressionUpperDerivation() {
+
+ }
+
+
+ //Helper Operations
+ /*
+ * The assignments after a sequence reduction expression are the same as after its primary expression.
+ */
+ public List<AssignedSource> updateAssignments() {
+ return new ArrayList<AssignedSource>() ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ShiftExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ShiftExpression.java
new file mode 100644
index 00000000000..d842f546dea
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ShiftExpression.java
@@ -0,0 +1,47 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+public class ShiftExpression extends BinaryExpression {
+
+ // Derived Properties
+ public boolean isBitStringConversion ;
+
+ // Constraints
+
+ /*
+ * BitString conversion is required if the first operand expression of a shift expression has type Integer.
+ */
+ public void checkShiftExpressionIsBitStringConversionDerivation() {
+
+ }
+
+ /*
+ * A shift expression has a multiplicity lower bound of 0 if the lower bound if either operand expression is
+ * 0 and 1 otherwise.
+ */
+ public void checkShiftExpressionLowerDerivation() {
+
+ }
+
+ /*
+ * The operands of a shift expression must have type BitString or Integer.
+ */
+ public void checkShiftExpressionOperands() {
+
+ }
+
+ /*
+ * A shift expression has type BitString.
+ */
+ public void checkShiftExpressionTypeDerivation() {
+
+ }
+
+ /*
+ * A shift expression has a multiplicity upper bound of 1.
+ */
+ public void checkShiftExpressionUpperDerivation() {
+
+ }
+
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/StringLiteralExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/StringLiteralExpression.java
new file mode 100644
index 00000000000..73f2cac34aa
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/StringLiteralExpression.java
@@ -0,0 +1,18 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+public class StringLiteralExpression extends LiteralExpression {
+
+ //Synthesized Properties
+ public String image ;
+
+ //Constraints
+
+ /*
+ * The type of a string literal expression is String.
+ */
+ public void checkStringLiteralExpressionTypeDerivation() {
+
+ }
+
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SuperInvocationExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SuperInvocationExpression.java
new file mode 100644
index 00000000000..d3dcc3cf744
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/SuperInvocationExpression.java
@@ -0,0 +1,70 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+public class SuperInvocationExpression extends InvocationExpression {
+
+ // Synthesized Properties
+
+ /*
+ * The name of the operation to be invoked, optionally qualified with the name of the appropriate
+ * superclass.
+ */
+ public QualifiedName target ;
+
+ //Constraints
+
+ /*
+ * If the referent is the method of a constructor operation, the super invocation expression must occur in an
+ * expression statement at the start of the definition for the method of a constructor operation, such that any
+ * statements preceding it are also super constructor invocations.
+ */
+ public void checkSuperInvocationExpressionConstructorCall() {
+
+ }
+
+ /*
+ * If the referent is the method of a destructor operation, the super invocation expression must occur in an
+ * within the method of a destructor operation.
+ */
+ public void checkSuperInvocationExpressionDestructorCall() {
+
+ }
+
+ /*
+ * There is no feature for a super invocation.
+ */
+ public void checkSuperInvocationExpressionFeatureDerivation() {
+
+ }
+
+ /*
+ * If the target is empty, the referent must be the method for a constructor operation.
+ */
+ public void checkSuperInvocationExpressionImplicitTarget() {
+
+ }
+
+ /*
+ * It must be possible to identify a single valid operation denoted by the target of a super invocation
+ * expression that satisfies the overloading resolution rules.
+ */
+ public void checkSuperInvocationExpressionOperation() {
+
+ }
+
+ /*
+ * If the target has a qualification, then this must resolve to one of the superclasses of the current context
+ * class.
+ */
+ public void checkSuperInvocationExpressionQualification() {
+
+ }
+
+ /*
+ * The referent of a super invocation expression is the method behavior of the operation identified using
+ * the overloading resolution rules.
+ */
+ public void checkSuperInvocationExpressionReferentDerivation() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/TemplateBinding.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/TemplateBinding.java
new file mode 100644
index 00000000000..bc078e5d970
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/TemplateBinding.java
@@ -0,0 +1,7 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+import org.eclipse.papyrus.alf.syntax.common.SyntaxElement;
+
+public abstract class TemplateBinding extends SyntaxElement {
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/TemplateParameterSubstitution.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/TemplateParameterSubstitution.java
new file mode 100644
index 00000000000..bb0861e28cf
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/TemplateParameterSubstitution.java
@@ -0,0 +1,11 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+import org.eclipse.internal.xtend.expression.ast.SyntaxElement;
+
+public class TemplateParameterSubstitution extends SyntaxElement {
+
+ // Synthesized Properties
+ public QualifiedName argumentName ;
+ public String parameterName ;
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ThisExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ThisExpression.java
new file mode 100644
index 00000000000..c7eced154ae
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/ThisExpression.java
@@ -0,0 +1,28 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+public class ThisExpression extends Expression {
+
+ // Constraints
+ /*
+ * The multiplicity lower bound of a this expression is always 1.
+ */
+ public void checkThisExpressionLowerDerivation() {
+
+ }
+
+ /*
+ * The static type of a this expression is the statically determined context classifier for the context in which
+ * the this expression occurs.
+ */
+ public void checkThisExpressionTypeDerivation() {
+
+ }
+
+ /*
+ * The multiplicity upper bound of a this expression is always 1.
+ */
+ public void checkThisExpressionUpperDerivation() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/Tuple.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/Tuple.java
new file mode 100644
index 00000000000..3ac95c8d06a
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/Tuple.java
@@ -0,0 +1,76 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.SyntaxElement;
+
+public abstract class Tuple extends SyntaxElement {
+
+ // Synthesized Properties
+
+ /*
+ * The invocation expression of which this tuple is a part.
+ */
+ public InvocationExpression invocation ;
+
+ // Derived Properties
+ public List<NamedExpression> input ;
+ public List<OutputNamedExpression> output ;
+
+ // Constraints
+
+ /*
+ * A name may be assigned in at most one argument expression of a tuple.
+ */
+ public void checkTupleAssignmentsAfter() {
+
+ }
+
+ /*
+ * The assignments before each expression in a tuple are the same as the assignments before the tuple,
+ * except in the case of a name expression that defines a new local name, in which case the assigned source
+ * for the new name is included in the assignments before the name expression. (Note that the assigned
+ * source for a new name is included before the name expression so that the nameExpressionResolution
+ * constraint is not violated.) The assignments before the tuple are the same as the assignments after the
+ * feature reference of the invocation of the tuple, if the invocation has one, or otherwise the assignments
+ * before the invocation.
+ */
+ public void checkTupleAssignmentsBefore() {
+
+ }
+
+ /*
+ * A tuple has the same number of inputs as its invocation has input parameters. For each input parameter,
+ * the tuple has a corresponding input with the same name as the parameter and an expression that is the
+ * matching argument from the tuple, or an empty sequence construction expression if there is no matching
+ * argument.
+ */
+ public void checkTupleInputDerivation() {
+
+ }
+
+ /*
+ * An input parameter may only have a null argument if it has a multiplicity lower bound of 0.
+ */
+ public void checkTupleNullInputs() {
+
+ }
+
+ /*
+ * A tuple has the same number of outputs as its invocation has output parameters. For each output
+ * parameter, the tuple has a corresponding output with the same name as the parameter and an expression
+ * that is the matching argument from the tuple, or an empty sequence construction expression if there is no
+ * matching argument.
+ */
+ public void checkTupleOutputDerivation() {
+
+ }
+
+ /*
+ * An output parameter may only have a null argument if it is an out parameter.
+ */
+ public void checkTupleOutputs() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/UnaryExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/UnaryExpression.java
new file mode 100644
index 00000000000..53e22260150
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/UnaryExpression.java
@@ -0,0 +1,32 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.AssignedSource;
+
+public class UnaryExpression extends Expression {
+
+ // Synthesized Properties
+ public Expression operand ;
+ public String operator ;
+
+ // Constraints
+
+ /*
+ * The assignments before the operand of a unary expression are the same as those before the unary
+ * expression.
+ */
+ public void checkUnaryExpressionAssignmentsBefore() {
+
+ }
+
+ //Helper Operations
+ /*
+ * By default, the assignments after a unary expression are the same as those after its operand expression.
+ */
+ public List<AssignedSource> updateAssignments() {
+ return new ArrayList<AssignedSource>() ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/UnboundedLiteralExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/UnboundedLiteralExpression.java
new file mode 100644
index 00000000000..decb332e203
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/expressions/UnboundedLiteralExpression.java
@@ -0,0 +1,13 @@
+package org.eclipse.papyrus.alf.syntax.expressions;
+
+public class UnboundedLiteralExpression extends LiteralExpression {
+
+ // Constraints
+ /*
+ * The type of an unbounded literal expression is UnlimitedNatural.
+ */
+ public void checkUnboundedLiteralExpressionDerivation() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/AcceptBlock.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/AcceptBlock.java
new file mode 100644
index 00000000000..3a3acfc6b90
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/AcceptBlock.java
@@ -0,0 +1,35 @@
+package org.eclipse.papyrus.alf.syntax.statements;
+
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.ElementReference;
+import org.eclipse.papyrus.alf.syntax.common.SyntaxElement;
+
+public class AcceptBlock extends SyntaxElement {
+
+ // Synthesized Properties
+ public Block block ;
+ public String name ;
+ public QualifiedNameList signalNames ;
+
+ // Derived Properties
+ public List<ElementReference> signal ;
+
+ // Constraints
+
+ /*
+ * The signals of an accept block are the referents of the signal names of the accept block.
+ */
+ public void checkAcceptBlockSignalDerivation() {
+
+ }
+
+ /*
+ * All signal names in an accept block must resolve to signals.
+ */
+ public void checkAcceptBlockSignalNames() {
+
+ }
+
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/AcceptStatement.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/AcceptStatement.java
new file mode 100644
index 00000000000..b93fdbd69d9
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/AcceptStatement.java
@@ -0,0 +1,102 @@
+package org.eclipse.papyrus.alf.syntax.statements;
+
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.ElementReference;
+
+public class AcceptStatement extends Statement {
+
+ // Synthesized Properties
+ public List<AcceptBlock> acceptBlock ;
+
+ // Derived Properties
+ public ElementReference behavior ;
+ public boolean isSimple ;
+
+ // Constraints
+
+ /*
+ * If a name is assigned in any block of an accept statement, then the assigned source of the name after the
+ * accept statement is the accept statement itself.
+ */
+ public void checkAcceptStatementAssignmentsAfter() {
+
+ }
+
+ /*
+ * The assignments before any block of an accept statement are the assignments before the accept
+ * statement.
+ */
+ public void checkAcceptStatementAssignmentsBefore() {
+
+ }
+
+ /*
+ * For a compound accept statement, a local name defined in an accept block has the accept block as its
+ * assigned source before the block associated with the accept block. The type of the local name is the
+ * effective common ancestor of the specified signals for that accept clause, if one exists, and it is untyped
+ * otherwise. However, the local name is considered unassigned after the accept statement.
+ */
+ public void checkAcceptStatementCompoundAcceptLocalName() {
+
+ }
+
+ /*
+ * An accept statement can only be used within the definition of an active behavior or the classifier
+ * behavior of an active class.
+ */
+ public void checkAcceptStatementContext() {
+
+ }
+
+ /*
+ * The enclosing statement for all statements in the blocks of all accept blocks of an accept statement is the
+ * accept statement.
+ */
+ public void checkAcceptStatementEnclosedStatements() {
+
+ }
+
+ /*
+ * An accept statement is simple if it has exactly one accept block and that accept block does not have a
+ * block.
+ */
+ public void checkAcceptStatementIsSimpleDerivation() {
+
+ }
+
+ /*
+ * Any name defined in an accept block of an accept statement must be unassigned before the accept
+ * statement.
+ */
+ public void checkAcceptStatementNames() {
+
+ }
+
+ /*
+ * If a name is unassigned before an accept statement and assigned in any block of an accept statement,
+ * then it must be assigned in every block.
+ */
+ public void checkAcceptStatementNewAssignments() {
+
+ }
+
+ /*
+ * The containing behavior of an accept statement must have receptions for all signals from all accept
+ * blocks of the accept statement. No signal may be referenced in more than one accept block of an accept
+ * statement.
+ */
+ public void checkAcceptStatementSignals() {
+
+ }
+
+ /*
+ * A local name specified in the accept block of a simple accept statement has the accept statement as its
+ * assigned source after the accept statement. The type of the local name is the effective common ancestor
+ * of the specified signals, if one exists, and it is untyped otherwise.
+ */
+ public void checkAcceptStatementSimpleAcceptLocalName() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/Annotation.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/Annotation.java
new file mode 100644
index 00000000000..455b116839c
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/Annotation.java
@@ -0,0 +1,13 @@
+package org.eclipse.papyrus.alf.syntax.statements;
+
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.SyntaxElement;
+
+public class Annotation extends SyntaxElement {
+
+ // Synthesized Properties
+ public List<String> argument ;
+ public String identifier ;
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/Block.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/Block.java
new file mode 100644
index 00000000000..e19a31f72b6
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/Block.java
@@ -0,0 +1,36 @@
+package org.eclipse.papyrus.alf.syntax.statements;
+
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.AssignedSource;
+import org.eclipse.papyrus.alf.syntax.common.SyntaxElement;
+
+public class Block extends SyntaxElement {
+
+ // Synthesized Properties
+ public List<Statement> statement ;
+
+ // Derived Properties
+ public List<AssignedSource> assignmentAfter ;
+ public List<AssignedSource> assignmentBefore ;
+
+ // Constraints
+
+ /*
+ * If a block is not empty, then the assignments after the block are the same as the assignments after the
+ * last statement of the block. Otherwise they are the same as the assignments before the block.
+ */
+ public void checkBlockAssignmentAfterDerivation() {
+
+ }
+
+ /*
+ * The assignments before each statement in a block other than the first are the same as the assignments
+ * after the previous statement.
+ */
+ public void checkBlockAssignmentsBeforeStatements() {
+
+ }
+
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/BlockStatement.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/BlockStatement.java
new file mode 100644
index 00000000000..c7ad3221848
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/BlockStatement.java
@@ -0,0 +1,61 @@
+package org.eclipse.papyrus.alf.syntax.statements;
+
+public class BlockStatement extends Statement {
+
+ // Synthesized Properties
+ public Block block ;
+
+ // Derived Properties
+ public boolean isParallel ;
+
+ // Constraints
+
+ /*
+ * The assignments after a block statement are the same as the assignments after the block of the block
+ * statement.
+ */
+ public void checkBlockStatementAssignmentsAfter() {
+
+ }
+
+ /*
+ * The assignments before the block of a block statement are the same as the assignments before the block
+ * statement.
+ */
+ public void checkBlockStatementAssignmentsBefore() {
+
+ }
+
+ /*
+ * The enclosing statement for all the statements in the block of a block statement is the block statement.
+ */
+ public void checkBlockStatementEnclosedStatements() {
+
+ }
+
+ /*
+ * A block statement is parallel if it has a @parallel annotation.
+ */
+ public void checkBlockStatementIsParallelDerivation() {
+
+ }
+
+ /*
+ * In a parallel block statement, any name assigned in one statement of the block may not be further
+ * assigned in any subsequent statement in the same block.
+ */
+ public void checkBlockStatementParallelAssignments() {
+
+ }
+
+
+ // Helper Operations
+ /*
+ * In addition to an @isolated annotation, a block statement may have a @parallel annotation. It may not
+ have any arguments.
+ */
+ public boolean annotationAllowed (Annotation annotation ) {
+ return false ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/BreakStatement.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/BreakStatement.java
new file mode 100644
index 00000000000..e60973c4262
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/BreakStatement.java
@@ -0,0 +1,34 @@
+package org.eclipse.papyrus.alf.syntax.statements;
+
+public class BreakStatement extends Statement {
+
+ // Derived Properties
+ public Statement target ;
+
+ // Constraints
+ /*
+ * The target of a break statement may not have a @parallel annotation.
+ */
+ public void checkBreakStatementNonparallelTarget() {
+
+ }
+
+ /*
+ * The target of a break statement is the innermost switch, while, do or for statement enclosing the break
+ * statement.
+ */
+ public void checkBreakStatementTargetDerivation() {
+
+ }
+
+ // Helper Operations
+
+ /*
+ * A break statement may not have any annotations.
+ */
+ public boolean annotationAllowed (Annotation annotation) {
+ return false ;
+ }
+
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/ClassifyStatement.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/ClassifyStatement.java
new file mode 100644
index 00000000000..43bfec48620
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/ClassifyStatement.java
@@ -0,0 +1,76 @@
+package org.eclipse.papyrus.alf.syntax.statements;
+
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.ElementReference;
+import org.eclipse.papyrus.alf.syntax.expressions.Expression;
+
+public class ClassifyStatement extends Statement {
+
+ // Synthesized Properties
+ public Expression expression ;
+ public QualifiedNameList fromList ;
+ public boolean isReclassifyAll = false ;
+ public QualifiedNameList toList ;
+
+ // Derived Properties
+ public List<ElementReference> fromClass ;
+ public List<ElementReference> toClass ;
+
+ // Constraints
+
+ /*
+ * The assignments after a classify statement are the same as the assignments after its expression.
+ */
+ public void checkClassifyStatementAssignmentsAfter() {
+
+ }
+
+ /*
+ * The assignments before the expression of a classify statement are the same as the assignments before the
+ * statement.
+ */
+ public void checkClassifyStatementAssignmentsBefore() {
+
+ }
+
+ /*
+ * All the from and to classes of a classify statement must be subclasses of the type of the target expression
+ * and none of them may have a common superclass that is a subclass of the type of the target expression
+ * (that is, they must be disjoint subclasses).
+ */
+ public void checkClassifyStatementClasses() {
+
+ }
+
+ /*
+ * All qualified names listed in the from or to lists of a classify statement must resolve to classes.
+ */
+ public void checkClassifyStatementClassNames() {
+
+ }
+
+ /*
+ * The expression in a classify statement must have a class as its type and multiplicity upper bound of 1.
+ */
+ public void checkClassifyStatementExpression() {
+
+ }
+
+ /*
+ * The from classes of a classify statement are the class referents of the qualified names in the from list for
+ * the statement.
+ */
+ public void checkClassifyStatementFromClassDerivation() {
+
+ }
+
+ /*
+ * The to classes of a classify statement are the class referents of the qualified names in the to list for the
+ * statement.
+ */
+ public void checkClassifyStatementToClassDerivation() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/ConcurrentClauses.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/ConcurrentClauses.java
new file mode 100644
index 00000000000..50c436a71d9
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/ConcurrentClauses.java
@@ -0,0 +1,29 @@
+package org.eclipse.papyrus.alf.syntax.statements;
+
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.SyntaxElement;
+
+public class ConcurrentClauses extends SyntaxElement {
+
+ // Synthesized Properties
+ public List<NonFinalClause> clause ;
+
+ // Constraints
+ /*
+ * The assignments before each of the clauses in a set of concurrent clauses are the same as the
+ * assignments before the concurrent clauses.
+ */
+ public void checkConcurrentClausesAssignmentsBefore() {
+
+ }
+
+ /*
+ * The same name may not be assigned in more than one conditional expression within the same
+ * concurrent set of clauses.
+ */
+ public void checkConcurrentClausesConditionAssignments() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/DoStatement.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/DoStatement.java
new file mode 100644
index 00000000000..825ab1ab245
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/DoStatement.java
@@ -0,0 +1,45 @@
+package org.eclipse.papyrus.alf.syntax.statements;
+
+import org.eclipse.papyrus.alf.syntax.expressions.Expression;
+
+public class DoStatement extends Statement {
+
+ // Synthesized Properties
+ public Block body ;
+ public Expression condition ;
+
+ // Constraints
+
+ /*
+ * If the assigned source for a name after the condition expression is different than before the do statement,
+ * then the assigned source of the name after the do statement is the do statement. Otherwise it is the same
+ * as before the do statement.
+ */
+ public void checkDoStatementAssignmentsAfter() {
+
+ }
+
+ /*
+ * The assignments before the block of a do statement are the same as the assignments before the do
+ * statement. The assignments before the condition expression of a do statement are the same assignments
+ * after the block.
+ */
+ public void checkDoStatementAssignmentsBefore() {
+
+ }
+
+ /*
+ * The condition expression of a do statement must have type Boolean and a multiplicity upper bound of 1.
+ */
+ public void checkDoStatementCondition() {
+
+ }
+
+ /*
+ * The enclosing statement for all statements in the body of a do statement are the do statement.
+ */
+ public void checkDoStatementEnclosedStatements() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/EmptyStatement.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/EmptyStatement.java
new file mode 100644
index 00000000000..d3a599ec31f
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/EmptyStatement.java
@@ -0,0 +1,19 @@
+package org.eclipse.papyrus.alf.syntax.statements;
+
+public class EmptyStatement extends Statement {
+
+ // Constraints
+
+ /*
+ * The assignments after and empty statement are the same as the assignments before the statement.
+ */
+ public void checkEmptyStatementAssignmentsAfter() {
+
+ }
+
+ // Helper Operations
+ public boolean annotationAllowed (Annotation annotation) {
+ return false ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/ExpressionStatement.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/ExpressionStatement.java
new file mode 100644
index 00000000000..49a5f05cead
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/ExpressionStatement.java
@@ -0,0 +1,27 @@
+package org.eclipse.papyrus.alf.syntax.statements;
+
+import org.eclipse.papyrus.alf.syntax.expressions.Expression;
+
+public class ExpressionStatement extends Statement {
+
+ // Synthesized Properties
+ public Expression expression ;
+
+ // Constraints
+
+ /*
+ * The assignments after an expression statement are the same as the assignments after its expression.
+ */
+ public void checkExpressionStatementAssignmentsAfter() {
+
+ }
+
+ /*
+ * The assignments before the expression of an expression statement are the same as the assignments
+ * before the statement.
+ */
+ public void checkExpressionStatementAssignmentsBefore() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/ForStatement.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/ForStatement.java
new file mode 100644
index 00000000000..c1e4d91cecd
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/ForStatement.java
@@ -0,0 +1,103 @@
+package org.eclipse.papyrus.alf.syntax.statements;
+
+import java.util.List;
+
+public class ForStatement extends Statement{
+
+ // Synthesized Properties
+ public Block body ;
+ public List<LoopVariableDefinition> variableDefinition ;
+
+ // Derived Properties
+ public boolean isParallel ;
+
+ // Constraints
+
+ /*
+ * The loop variables are unassigned after a for statement. Other than the loop variables, if the assigned
+ * source for a name after the body of a for statement is the same as after the for variable definitions, then
+ * the assigned source for the name after the for statement is the same as after the for variable definitions.
+ * If a name is unassigned after the for variable definitions, then it is unassigned after the for statement
+ * (even if it is assigned in the body of the for statement). If, after the loop variable definitions, a name has
+ * an assigned source, and it has a different assigned source after the body of the for statement, then the
+ * assigned source after the for statement is the for statement itself.
+ */
+ public void checkForStatementAssignmentsAfter() {
+
+ }
+
+ /*
+ * The assignments before a loop variable definition in a for statement are the same as before the for
+ * statement. The assignments before the body of the statement include all the assignments before the
+ * statement plus any new assignments from the loop variable definitions, except that, if the statement is
+ * parallel, the assigned sources of any names given in @parallel annotations are changed to be the for
+ * statement itself.
+ */
+ public void checkForStatementAssignmentsBefore() {
+
+ }
+
+ /*
+ * The enclosing statement for all statements in the body of a for statement are the for statement.
+ */
+ public void checkForStatementEnclosedStatements() {
+
+ }
+
+ /*
+ * A for statement is parallel if it has a @parallel annotation.
+ */
+ public void checkForStatementIsParallelDerivation() {
+
+ }
+
+ /*
+ * The assigned sources for loop variables after the body of a for statement must be the for statement (the
+ * same as before the body).
+ */
+ public void checkForStatementLoopVariables() {
+
+ }
+
+ /*
+ * A @parallel annotation of a for statement may include a list of names. Each such name must be already
+ * assigned after the loop variable definitions of the for statement, with a multiplicity of [0..*]. These
+ * names may only be used within the body of the for statement as the first argument to for the
+ * CollectionFunctions::add behavior.
+ */
+ public void checkForStatementParallelAnnotationNames() {
+
+ }
+
+ /*
+ * If, after the loop variable definitions of a parallel for statement, a name has an assigned source, then it
+ * must have the same assigned source after the block of the for statement. Other than for names defined in
+ * the @parallel annotation of the for statement, the assigned source for such names is the same after the
+ * for statement as before it. Any names defined in the @parallel annotation have the for statement itself as
+ * their assigned source after the for statement. Other than names given in the @parallel annotation, if a
+ * name is unassigned after the loop variable definitions, then it is considered unassigned after the for
+ * statement, even if it is assigned in the block of the for statement.
+ */
+ public void checkForStatementParallelAssignmentsAfter() {
+
+ }
+
+ /*
+ * The isFirst attribute of the first loop variable definition for a for statement is true while the isFirst
+ * attribute if false for any other definitions.
+ */
+ public void checkForStatementVariableDefinitions() {
+
+ }
+
+
+ // Helper Operations
+
+ /*
+ * In addition to an @isolated annotation, a for statement may have a @parallel annotation.
+ */
+ public boolean annotationAllowed (Annotation annotation) {
+ return false ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/IfStatement.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/IfStatement.java
new file mode 100644
index 00000000000..e47e27665ab
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/IfStatement.java
@@ -0,0 +1,74 @@
+package org.eclipse.papyrus.alf.syntax.statements;
+
+import java.util.List;
+
+public class IfStatement extends Statement {
+
+ // Synthesized Properties
+ public Block finalClause ;
+ public List<ConcurrentClauses> nonFinalClauses ;
+
+ // Derived Properties
+ public boolean isAssured ;
+ public boolean isDetermined ;
+
+ // Constraints
+
+ /*
+ * If an if statement does not have a final else clause, then any name that is unassigned before the if
+ * statement is unassigned after the if statement. If an if statement does have a final else clause, then any
+ * name that is unassigned before the if statement and is assigned after any one clause of the if statement
+ * must also be assigned after every other clause. The type of such names after the if statement is the
+ * effective common ancestor of the types of the name in each clause with a multiplicity lower bound that
+ * is the minimum of the lower bound for the name in each clause and a multiplicity upper bound that is the
+ * maximum for the name in each clause. For a name that has an assigned source after any clause of an if
+ * statement that is different than before that clause, then the assigned source after the if statement is the if
+ * statement. Otherwise, the assigned source of a name after the if statement is the same as before the if
+ * statement.
+ */
+ public void checkIfStatementAssignmentsAfter() {
+
+ }
+
+ /*
+ * The assignments before all the non-final clauses of an if statement are the same as the assignments
+ * before the if statement. If the statement has a final clause, then the assignments before that clause are
+ * also the same as the assignments before the if statement.
+ */
+ public void checkIfStatementAssignmentsBefore() {
+
+ }
+
+ /*
+ * The enclosing statement of all the statements in the bodies of all non-final clauses and in the final clause
+ * (if any) of an if statement is the if statement.
+ */
+ public void checkIfStatementEnclosedStatements() {
+
+ }
+
+ /*
+ * An if statement is assured if it has an @assured annotation.
+ */
+ public void checkIfStatementIsAssuredDerivation() {
+
+ }
+
+ /*
+ * An if statement is determined if it has an @determined annotation.
+ */
+ public void checkIfStatementIsDeterminedDerivation() {
+
+ }
+
+
+ // Helper Operations
+ /*
+ * In addition to an @isolated annotation, an if statement may have @assured and @determined
+ * annotations. They may not have arguments.
+ */
+ public boolean annotationAllowed (Annotation annotation) {
+ return false ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/InLineStatement.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/InLineStatement.java
new file mode 100644
index 00000000000..69318c8c8e4
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/InLineStatement.java
@@ -0,0 +1,19 @@
+package org.eclipse.papyrus.alf.syntax.statements;
+
+public class InLineStatement extends Statement {
+
+ // Synthesized Properties
+ public String code ;
+ public String language ;
+
+ // Constraints
+
+ /*
+ * The assignments after an in-line statement are the same as the assignments before the statement.
+ */
+ public void checkInLineStatementAssignmentsAfter() {
+
+ }
+
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/LocalNameDeclarationStatement.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/LocalNameDeclarationStatement.java
new file mode 100644
index 00000000000..928eaad5f0b
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/LocalNameDeclarationStatement.java
@@ -0,0 +1,70 @@
+package org.eclipse.papyrus.alf.syntax.statements;
+
+import org.eclipse.papyrus.alf.syntax.common.ElementReference;
+import org.eclipse.papyrus.alf.syntax.expressions.Expression;
+import org.eclipse.papyrus.alf.syntax.expressions.QualifiedName;
+
+public class LocalNameDeclarationStatement extends Statement {
+
+ // Synthesized Properties
+ public Expression expression ;
+ public boolean hasMultiplicity = false ;
+ public String name ;
+ public QualifiedName typeName ;
+
+ // Derived Properties
+ public ElementReference type ;
+
+ // Constraints
+ /*
+ * The assignments after a local name declaration statement are the assignments before the statement plus a
+ * new assignment for the local name defined by the statement. The assigned source for the local name is
+ * the local name declaration statement. The local name has the type denoted by the type name if this is not
+ * empty and is untyped otherwise. If the statement has multiplicity, then the multiplicity of the local name
+ * is [0..*], otherwise it is [0..1].
+ */
+ public void checkLocalNameDeclarationStatementAssignmentsAfter() {
+
+ }
+
+ /*
+ * The assignments before the expression of a local name declaration statement are the same as the
+ * assignments before the statement.
+ */
+ public void checkLocalNameDeclarationStatementAssignmentsBefore() {
+
+ }
+
+ /*
+ * If a local name declaration statement does not have multiplicity, then the multiplicity of upper bound of
+ * the assigned expression must not be greater than 1.
+ */
+ public void checkLocalNameDeclarationStatementExpressionMultiplicity() {
+
+ }
+
+ /*
+ * The local name in a local name declaration statement must be unassigned before the statement and
+ * before the expression in the statement. It must remain unassigned after the expression.
+ */
+ public void checkLocalNameDeclarationStatementLocalName() {
+
+ }
+
+ /*
+ * If the type name in a local name declaration statement is not empty, then it must resolve to a nontemplate
+ * classifier and the expression must be assignable to that classifier.
+ */
+ public void checkLocalNameDeclarationStatementType() {
+
+ }
+
+ /*
+ * The type of a local name declaration statement with a type name is the single classifier referent of the
+ * type name. Otherwise it is the type of the expression of the statement.
+ */
+ public void checkLocalNameDeclarationStatementTypeDerivation() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/LoopVariableDefinition.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/LoopVariableDefinition.java
new file mode 100644
index 00000000000..a68fa33b710
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/LoopVariableDefinition.java
@@ -0,0 +1,100 @@
+package org.eclipse.papyrus.alf.syntax.statements;
+
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.AssignedSource;
+import org.eclipse.papyrus.alf.syntax.common.ElementReference;
+import org.eclipse.papyrus.alf.syntax.common.SyntaxElement;
+import org.eclipse.papyrus.alf.syntax.expressions.Expression;
+import org.eclipse.papyrus.alf.syntax.expressions.QualifiedName;
+
+public class LoopVariableDefinition extends SyntaxElement{
+
+ // Synthesized Properties
+ public Expression expression1 ;
+ public Expression expression2 ;
+ public boolean typeIsInferred = true ;
+ public QualifiedName typeName ;
+ public String variable ;
+
+ // Derived Properties
+ public List<AssignedSource> assignmentAfter ;
+ public List<AssignedSource> assignmentBefore ;
+ public boolean isCollectionConversion ;
+ public boolean isFirst ;
+ public ElementReference type ;
+
+ // Constraints
+
+ /*
+ * The assignments after a loop variable definition include the assignments after the expression (or
+ * expressions) of the definition plus a new assigned source for the loop variable itself. The assigned
+ * source for the loop variable is the loop variable definition. The multiplicity upper bound for the variable
+ * is 1. The multiplicity lower bound is 1 if the loop variable definition is the first in a for statement and 0
+ * otherwise. If collection conversion is not required, then the variable has the inferred or declared type
+ * from the definition. If collection conversion is required, then the variable has the argument type of the
+ * collection class.
+ */
+ public void checkLoopVariableDefinitionAssignmentAfterDerivation() {
+
+ }
+
+ /*
+ * The assignments before the expressions of a loop variable definition are the assignments before the loop
+ * variable definition.
+ */
+ public void checkLoopVariableDefinitionAssignmentsBefore() {
+
+ }
+
+ /*
+ * If the type of a loop variable definition is not inferred, then the first expression of the definition must
+ * have a type that conforms to the declared type.
+ */
+ public void checkLoopVariableDefinitionDeclaredType() {
+
+ }
+
+ /*
+ * If a loop variable definition has two expressions, then both expressions must have type Integer and a
+ * multiplicity upper bound of 1, and no name may be newly assigned or reassigned in more than one of
+ * the expressions.
+ */
+ public void checkLoopVariableDefinitionRangeExpressions() {
+
+ }
+
+ /*
+ * If the type of a loop variable is not inferred, then the variable has the type denoted by the type name, if it
+ * is not empty, and is untyped otherwise. If the type is inferred, them the variable has the same as the type
+ * of the expression in its definition.
+ */
+ public void checkLoopVariableDefinitionTypeDerivation() {
+
+ }
+
+ /*
+ * If a loop variable definition has a type name, then this name must resolve to a non-template classifier.
+ */
+ public void checkLoopVariableDefinitionTypeName() {
+
+ }
+
+ /*
+ * The variable name given in a loop variable definition must be unassigned after the expression or
+ * expressions in the definition.
+ */
+ public void checkLoopVariableDefinitionVariable() {
+
+ }
+
+ /*
+ * Collection conversion is required for a loop variable definition if the type for the definition is the
+ * instantiation of a collection class and the multiplicity upper bound of the first expression is no greater
+ * than 1.
+ */
+ public void checkLoopVariableIsCollectionConversionDerivation() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/NonFinalClause.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/NonFinalClause.java
new file mode 100644
index 00000000000..dce8a9c2ee9
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/NonFinalClause.java
@@ -0,0 +1,58 @@
+package org.eclipse.papyrus.alf.syntax.statements;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.AssignedSource;
+import org.eclipse.papyrus.alf.syntax.common.SyntaxElement;
+import org.eclipse.papyrus.alf.syntax.expressions.Expression;
+
+public class NonFinalClause extends SyntaxElement {
+
+ // Synthesized Properties
+ public Block body ;
+ public Expression condition ;
+
+ // Constraints
+
+ /*
+ * The assignments before the body of a non-final clause are the assignments after the condition.
+ */
+ public void checkNonFinalClauseAssignmentsBeforeBody() {
+
+ }
+
+ /*
+ * If a name is unassigned before the condition expression of a non-final clause, then it must be unassigned
+ * after that expression (i.e., new local names may not be defined in the condition).
+ */
+ public void checkNonFinalClauseConditionLocalNames() {
+
+ }
+
+ /*
+ * The condition of a non-final clause must have type Boolean and a multiplicity upper bound no greater
+ * than 1.
+ */
+ public void checkNonFinalClauseConditionType() {
+
+ }
+
+
+ // Helper Operations
+
+ /*
+ * The assignments after a non-final clause are the assignments after the block of the clause.
+ */
+ public List<AssignedSource> assignmentsAfter() {
+ return new ArrayList<AssignedSource>() ;
+ }
+
+ /*
+ * The assignments before a non-final clause are the assignments before the condition of the clause.
+ */
+ public List<AssignedSource> assignmentsBefore() {
+ return new ArrayList<AssignedSource>() ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/QualifiedNameList.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/QualifiedNameList.java
new file mode 100644
index 00000000000..8d8426009cb
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/QualifiedNameList.java
@@ -0,0 +1,13 @@
+package org.eclipse.papyrus.alf.syntax.statements;
+
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.SyntaxElement;
+import org.eclipse.papyrus.alf.syntax.expressions.QualifiedName;
+
+public class QualifiedNameList extends SyntaxElement {
+
+ // Synthesized Properties
+ public List<QualifiedName> name ;
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/ReturnStatement.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/ReturnStatement.java
new file mode 100644
index 00000000000..479ab9b12cc
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/ReturnStatement.java
@@ -0,0 +1,41 @@
+package org.eclipse.papyrus.alf.syntax.statements;
+
+import org.eclipse.papyrus.alf.syntax.common.ElementReference;
+import org.eclipse.papyrus.alf.syntax.expressions.Expression;
+
+public class ReturnStatement extends Statement {
+
+ // Synthesized Properties
+ public Expression expression ;
+
+ // Derived Properties
+ public ElementReference behavior ;
+
+ // Constraints
+
+ /*
+ * The assignments after a return statement are the same as the assignments after the expression of the
+ * return statement.
+ */
+ public void checkReturnStatementAssignmentsAfter() {
+
+ }
+
+ /*
+ * The assignments before the expression of a return statement are the same as the assignments before the
+ * statement.
+ */
+ public void checkReturnStatementAssignmentsBefore() {
+
+ }
+
+ /*
+ * The behavior containing the return statement must have a return parameter. The expression of the return
+ * statement must be assignable to that return parameter.
+ */
+ public void checkReturnStatementContext() {
+
+ }
+
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/Statement.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/Statement.java
new file mode 100644
index 00000000000..3ef3309ec85
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/Statement.java
@@ -0,0 +1,55 @@
+package org.eclipse.papyrus.alf.syntax.statements;
+
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.AssignedSource;
+import org.eclipse.papyrus.alf.syntax.common.DocumentedElement;
+
+public abstract class Statement extends DocumentedElement{
+
+ // Synthesized Properties
+ public List<Annotation> annotation ;
+
+ // Derived Properties
+ public List<AssignedSource> assignmentAfter ;
+ public List<AssignedSource> assignmentBefore ;
+ public Statement enclosingStatement ;
+ public boolean isIsolated ;
+
+ // Constraints
+
+ /*
+ * All the annotations of a statement must be allowed, as given by the annotationAllowed operation for the
+ * statement.
+ */
+ public void checkStatementAnnotationsAllowed() {
+
+ }
+
+ /*
+ * A statement is isolated if it has an @isolated annotation.
+ */
+ public void checkStatementIsIsolatedDerivation() {
+
+ }
+
+ /*
+ * No name may be assigned more than once before or after a statement.
+ */
+ public void checkStatementUniqueAssignments() {
+
+ }
+
+
+ //Helper Operations
+
+ /*
+ * Returns true if the given annotation is allowed for this kind of statement. By default, only an @isolated
+ * annotation is allowed, with no arguments. This operation is redefined only in subclasses of Statement for
+ * kinds of statements that allow different annotations than this default.
+ */
+ public boolean annotationAllowed(Annotation annotation) {
+ return false ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/SwitchClause.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/SwitchClause.java
new file mode 100644
index 00000000000..29a4e0dd451
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/SwitchClause.java
@@ -0,0 +1,52 @@
+package org.eclipse.papyrus.alf.syntax.statements;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.AssignedSource;
+import org.eclipse.papyrus.alf.syntax.common.SyntaxElement;
+import org.eclipse.papyrus.alf.syntax.expressions.Expression;
+
+public class SwitchClause extends SyntaxElement {
+
+ // Synthesized Properties
+ public Block block ;
+ public List<Expression> _case ;
+
+ // Constraints
+
+ /*
+ * The assignments before any case expression of a switch clause are the same as the assignments before
+ * the clause. The assignments before the block of a switch clause are the assignments after all case
+ * expressions.
+ */
+ public void checkSwitchClauseAssignmentsBefore() {
+
+ }
+
+ /*
+ * If a name is unassigned before a switch clause, then it must be unassigned after all case expressions of
+ * the clause (i.e., new local names may not be defined in case expressions).
+ */
+ public void checkSwitchClauseCaseLocalNames() {
+
+ }
+
+
+ // Helper Operations
+
+ /*
+ * The assignments after a switch clause are the assignments after the block of the switch clause.
+ */
+ public List<AssignedSource> assignmentsAfter() {
+ return new ArrayList<AssignedSource>() ;
+ }
+
+ /*
+ * The assignments before a switch clause are the assignments before any case expression of the clause.
+ */
+ public List<AssignedSource> assignmentsBefore() {
+ return new ArrayList<AssignedSource>() ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/SwitchStatement.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/SwitchStatement.java
new file mode 100644
index 00000000000..f0c465e99f8
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/SwitchStatement.java
@@ -0,0 +1,92 @@
+package org.eclipse.papyrus.alf.syntax.statements;
+
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.expressions.Expression;
+
+public class SwitchStatement extends Statement {
+
+ // Synthesized Properties
+ public Block defaultClause ;
+ public Expression expression ;
+ public List<SwitchClause> nonDefaultClause ;
+
+ // Derived Properties
+ public boolean isAssured ;
+ public boolean isDetermined ;
+
+ // Constraints
+
+ /*
+ * If a switch statement does not have a final default clause, then any name that is unassigned before the
+ * switch statement is unassigned after the switch statement. If a switch statement does have a final default
+ * clause, then any name that is unassigned before the switch statement and is assigned after any one clause
+ * of the switch statement must also be assigned after every other clause. The type of such names after the
+ * switch statement is the effective common ancestor of the types of the name in each clause with a
+ * multiplicity lower bound that is the minimum of the lower bound for the name in each clause and a
+ * multiplicity upper bound that is the maximum for the name in each clause.
+ */
+ public void checkSwitchStatementAssignments() {
+
+ }
+
+ /*
+ * If a name has an assigned source after any clause of a switch statement that is different than before that
+ * clause (including newly defined names), the assigned source after the switch statement is the switch
+ * statement. Otherwise, the assigned source of a name after the switch statement is the same as before the
+ * switch statement.
+ */
+ public void checkSwitchStatementAssignmentsAfter() {
+
+ }
+
+ /*
+ * The assignments before all clauses of a switch statement are the same as the assignments before the
+ * switch statement.
+ */
+ public void checkSwitchStatementAssignmentsBefore() {
+
+ }
+
+ /*
+ * The same local name may not be assigned in more than one case expression in a switch statement.
+ */
+ public void checkSwitchStatementCaseAssignments() {
+
+ }
+
+
+ public void checkSwitchStatementEnclosedStatements() {
+
+ }
+
+ public void checkSwitchStatementExpression() {
+
+ }
+
+ /*
+ * An switch statement is assured if it has an @assured annotation.
+ */
+ public void checkSwitchStatementIsAssuredDerivation() {
+
+ }
+
+ /*
+ * An switch statement is determined if it has an @determined annotation.
+ */
+ public void checkSwitchStatementIsDeterminedDerivation() {
+
+ }
+
+
+ // Helper Operations
+
+ /*
+ * In addition to an @isolated annotation, a switch statement may have @assured and @determined
+ * annotations. They may not have arguments.
+ */
+ public boolean annotationAllowed(Annotation annotation) {
+ return false ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/WhileStatement.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/WhileStatement.java
new file mode 100644
index 00000000000..f89aec0bc56
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/statements/WhileStatement.java
@@ -0,0 +1,48 @@
+package org.eclipse.papyrus.alf.syntax.statements;
+
+import org.eclipse.papyrus.alf.syntax.expressions.Expression;
+
+public class WhileStatement extends Statement {
+
+ // Synthesized Properties
+ public Block body ;
+ public Expression condition ;
+
+ // Constraints
+
+ /*
+ * If a name is assigned before the block, but the assigned source for the name after the block is different
+ * than before the block, then the assigned source of the name after the while statement is the while
+ * statement. Otherwise it is the same as before the block. If a name is unassigned before the block of a
+ * while statement, then it is unassigned after the while statement, even if it is assigned after the block.
+ */
+ public void checkWhileStatementAssignmentsAfter() {
+
+ }
+
+ /*
+ * The assignments before the condition expression of a while statement are the same as the assignments
+ * before the while statement. The assignments before the block of the while statement are the same as the
+ * assignments after the condition expression.
+ */
+ public void checkWhileStatementAssignmentsBefore() {
+
+ }
+
+ /*
+ * The condition expression of a while statement must have type Boolean and a multiplicity upper bound of
+ * 1.
+ */
+ public void checkWhileStatementCondition() {
+
+ }
+
+ /*
+ * The enclosing statement for all statements in the body of a while statement are the while statement.
+ */
+ public void checkWhileStatementEnclosedStatements() {
+
+ }
+
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ActiveClassDefinition.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ActiveClassDefinition.java
new file mode 100644
index 00000000000..fd4b695e40d
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ActiveClassDefinition.java
@@ -0,0 +1,18 @@
+package org.eclipse.papyrus.alf.syntax.units;
+
+public class ActiveClassDefinition extends ClassDefinition {
+
+ // Synthesized Properties
+ public ActivityDefinition classifierBehavior ;
+
+ // Helper Operations
+
+ /*
+ * Returns true if the given unit definition matches this active class definition considered as a class
+ * definition and the subunit is for an active class definition.
+ */
+ public boolean matchForStub(UnitDefinition unit) {
+ return false ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ActivityDefinition.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ActivityDefinition.java
new file mode 100644
index 00000000000..e40522bc2e0
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ActivityDefinition.java
@@ -0,0 +1,47 @@
+package org.eclipse.papyrus.alf.syntax.units;
+
+import org.eclipse.papyrus.alf.syntax.statements.Block;
+
+public class ActivityDefinition extends ClassifierDefinition {
+
+ // Synthesized Properties
+ public Block body ;
+
+ // Constraints
+
+ /*
+ * If an activity definition is primitive, then it must have a body that is empty.
+ */
+ public void checkActivityDefinitionPrimitive() {
+
+ }
+
+ /*
+ * An activity definition may not have a specialization list.
+ */
+ public void checkActivityDefinitionSpecialization() {
+
+ }
+
+ // Helper Operations
+
+ /*
+ * In addition to the annotations allowed for classifiers in general, an activity definition allows @primitive
+ * annotations and any stereotype whose metaclass is consistent with Activity.
+ */
+ public boolean annotationAllowed(StereotypeAnnotation annotation) {
+ return super.annotationAllowed(annotation) && false ;
+ }
+
+ /*
+ * Returns true if the given unit definition matches this activity definition considered as a classifier
+ * definition and the subunit is for an activity definition. In addition, the subunit definition must have
+ * formal parameters that match each of the formal parameters of the stub definition, in order. Two formal
+ * parameters match if they have the same direction, name, multiplicity bounds, ordering, uniqueness and
+ * type reference.
+ */
+ public boolean matchForStub(UnitDefinition unit) {
+ return false ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/AssociationDefinition.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/AssociationDefinition.java
new file mode 100644
index 00000000000..0acab8500c0
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/AssociationDefinition.java
@@ -0,0 +1,41 @@
+package org.eclipse.papyrus.alf.syntax.units;
+
+public class AssociationDefinition extends ClassifierDefinition {
+
+ // Constraints
+
+ /*
+ * The specialization referents of an association definition must all be associations.
+ */
+ public void checkAssociationDefinitionSpecializationReferent() {
+
+ }
+
+
+ // Helper Operations
+
+ /*
+ * In addition to the annotations allowed for classifiers in general, an association definition allows an
+ * annotation for any stereotype whose metaclass is consistent with Association.
+ */
+ public boolean annotationAllowed(StereotypeAnnotation annotation) {
+ return super.annotationAllowed(annotation) && false ;
+ }
+
+ /*
+ * Return true if the given member is either an AssociationDefinition or an imported member whose
+ * referent is an AssociationDefinition or an Association.
+ */
+ public boolean isSameKindAs(Member member) {
+ return false ;
+ }
+
+ /*
+ * Returns true if the given unit definition matches this association definition considered as a classifier
+ * definition and the subunit is for an association definition.
+ */
+ public boolean matchForStub(UnitDefinition unit) {
+ return false ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ClassDefinition.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ClassDefinition.java
new file mode 100644
index 00000000000..ad04db319fe
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ClassDefinition.java
@@ -0,0 +1,42 @@
+package org.eclipse.papyrus.alf.syntax.units;
+
+public class ClassDefinition extends ClassifierDefinition {
+
+ // Constraints
+
+ /*
+ * The specialization referents of a class definition must all be classes. A class definition may not have any
+ * referents that are active classes unless this is an active class definition.
+ */
+ public void checkClassDefinitionSpecializationReferent() {
+
+ }
+
+
+ // Helper Operations
+
+ /*
+ * In addition to the annotations allowed for classifiers in general, a class definition allows an annotation
+ * for any stereotype whose metaclass is consistent with Class.
+ */
+ public boolean annotationAllowed(StereotypeAnnotation annotation) {
+ return super.annotationAllowed(annotation) && false ;
+ }
+
+ /*
+ * Return true if the given member is either a ClassDefinition or an imported member whose referent is a
+ * ClassDefinition or a Class.
+ */
+ public boolean isSameKindAs(Member member) {
+ return false ;
+ }
+
+ /*
+ * Returns true if the given unit definition matches this class definition considered as a classifier definition
+ * and the subunit is for a class definition.
+ */
+ public boolean matchForStub(UnitDefinition unit) {
+ return false ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ClassifierDefinition.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ClassifierDefinition.java
new file mode 100644
index 00000000000..5e15a172615
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ClassifierDefinition.java
@@ -0,0 +1,60 @@
+package org.eclipse.papyrus.alf.syntax.units;
+
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.ElementReference;
+import org.eclipse.papyrus.alf.syntax.expressions.QualifiedName;
+
+public class ClassifierDefinition extends NamespaceDefinition {
+
+ // Synthesized Properties
+ public boolean isAbstract = false ;
+ public QualifiedName specialization ;
+
+ // Derived Properties
+ public List<ElementReference> specializationReferent ;
+
+ // Constraints
+
+ /*
+ * The members of a classifier definition include non-private members inherited from the classifiers it
+ * specializes. The visibility of inherited members is as specified in the UML Superstructure, Subclause
+ * 7.3.8.
+ */
+ public void checkClassifierDefinitionInheritedMembers() {
+
+ }
+
+ /*
+ * Each name listed in the specialization list for a classifier definition must have a single classifier referent.
+ * None of these referents may be templates.
+ */
+ public void checkClassifierDefinitionSpecialization() {
+
+ }
+
+ /*
+ * The specialization referents of a classifier definition are the classifiers denoted by the names in the
+ * specialization list for the classifier definition.
+ */
+ public void checkClassifierDefinitionSpecializationReferentDerivation() {
+
+ }
+
+
+ // Helper Operations
+
+ /*
+ * The namespace definition associated with the given unit definition must be a classifier definition. The
+ * subunit classifier definition may be abstract if and only if the subunit classifier definition is abstract. The
+ * subunit classifier definition must have the same specialization referents as the stub classifier definition.
+ * (Note that it is the referents that must match, not the exact names or the ordering of those names in the
+ * specialization list.) The subunit classifier definition must also have a matching classifier template
+ * parameter for each classifier template parameter of the stub classifier definition. Two template
+ * parameters match if they have same names and the same specialization referents.
+ */
+ public boolean matchForStub(UnitDefinition unit) {
+ return false ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ClassifierTemplateParameter.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ClassifierTemplateParameter.java
new file mode 100644
index 00000000000..b1f6e954d77
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ClassifierTemplateParameter.java
@@ -0,0 +1,29 @@
+package org.eclipse.papyrus.alf.syntax.units;
+
+public class ClassifierTemplateParameter extends ClassifierDefinition {
+
+ // Helper Operations
+
+ /*
+ * Annotations are not allowed on classifier template parameters.
+ */
+ public boolean annotationAllowed(StereotypeAnnotation annotation) {
+ return false ;
+ }
+
+ /*
+ * Return true if the given member is a classifier template parameter.
+ */
+ public boolean isSameKindAs(Member member) {
+ return false ;
+ }
+
+ /*
+ * Returns false. (Classifier template parameters cannot be stubs.)
+ */
+ public boolean matchForStub(UnitDefinition unit) {
+ return false ;
+ }
+
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/DataTypeDefinition.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/DataTypeDefinition.java
new file mode 100644
index 00000000000..019b67f9b68
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/DataTypeDefinition.java
@@ -0,0 +1,48 @@
+package org.eclipse.papyrus.alf.syntax.units;
+
+public class DataTypeDefinition extends ClassifierDefinition {
+
+ // Constraints
+
+ /*
+ * If a data type is primitive, then it may not have any owned members.
+ */
+ public void checkDataTypeDefinitionPrimitive() {
+
+ }
+
+ /*
+ * The specialization referents of a data type definition must all be data types.
+ */
+ public void checkDataTypeDefinitionSpecializationReferent() {
+
+ }
+
+ // Helper Operations
+
+ /*
+ * In addition to the annotations allowed for classifiers in general, a data type definition allows @primitive
+ * annotations plus any stereotype whose metaclass is consistent with DataType.
+ */
+ public boolean annotationAllowed(StereotypeAnnotation annotation) {
+ return super.annotationAllowed(annotation) && false ;
+ }
+
+ /*
+ * Return true if the given member is either a DataTypeDefinition or an imported member whose referent
+ * is a DataTypeDefinition or a DataType.
+ */
+ public boolean isSameKindAs(Member member) {
+ return false ;
+ }
+
+ /*
+ * Returns true if the given unit definition matches this data type definition considered as a classifier
+ * definition and the subunit is for a data type definition.
+ */
+ public boolean matchForStub(UnitDefinition unit) {
+ return false ;
+ }
+
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ElementImportReference.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ElementImportReference.java
new file mode 100644
index 00000000000..f9070b941d7
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ElementImportReference.java
@@ -0,0 +1,8 @@
+package org.eclipse.papyrus.alf.syntax.units;
+
+public class ElementImportReference extends ImportReference {
+
+ // Synthesized Properties
+ public String alias ;
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/EnumerationDefinition.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/EnumerationDefinition.java
new file mode 100644
index 00000000000..fbb9a509ac4
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/EnumerationDefinition.java
@@ -0,0 +1,42 @@
+package org.eclipse.papyrus.alf.syntax.units;
+
+public class EnumerationDefinition extends ClassifierDefinition {
+
+ // Constraints
+
+ /*
+ * The specialization referents of a class definition must all be classes. A class definition may not have any
+ * referents that are active classes unless this is an active class definition.
+ */
+ public void checkClassDefinitionSpecializationReferent() {
+
+ }
+
+ // Helper Operations
+
+ /*
+ * In addition to the annotations allowed for classifiers in general, an enumeration definition allows an
+ * annotation for any stereotype whose metaclass is consistent with Enumeration.
+ */
+ public boolean annotationAllowed(StereotypeAnnotation annotation) {
+ return super.annotationAllowed(annotation) && false ;
+ }
+
+ /*
+ * Return true if the given member is either an EnumerationDefinition or an imported member whose
+ * referent is an EnumerationDefinition or an Enumeration.
+ */
+ public boolean isSameKindAs(Member member) {
+ return false ;
+ }
+
+ /*
+ * Returns true if the given unit definition matches this enumeration definition considered as a classifier
+ * definition and the subunit is for an enumeration definition.
+ */
+ public boolean matchForStub(UnitDefinition unit) {
+ return false ;
+ }
+
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/EnumerationLiteralName.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/EnumerationLiteralName.java
new file mode 100644
index 00000000000..ad08cdc367a
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/EnumerationLiteralName.java
@@ -0,0 +1,15 @@
+package org.eclipse.papyrus.alf.syntax.units;
+
+public class EnumerationLiteralName {
+
+ // Helper Operations
+
+ /*
+ * Returns false. (Enumeration literal name cannot have annotations.)
+ */
+ public boolean annotationAllowed(StereotypeAnnotation annotation) {
+ return false ;
+ }
+
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/FormalParameter.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/FormalParameter.java
new file mode 100644
index 00000000000..c982a0d9e8e
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/FormalParameter.java
@@ -0,0 +1,24 @@
+package org.eclipse.papyrus.alf.syntax.units;
+
+public class FormalParameter extends TypedElementDefinition {
+
+ // Synthesized Properties
+ public String direction ;
+
+ // Helper Operations
+
+ /*
+ * Returns true if the annotation is for a stereotype that has a metaclass consistent with Parameter.
+ */
+ public boolean annotationAllowed(StereotypeAnnotation annotation) {
+ return false ;
+ }
+
+ /*
+ * Return true if the given member is a FormalParameter.
+ */
+ public boolean isSameKindAs(Member member) {
+ return false ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ImportReference.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ImportReference.java
new file mode 100644
index 00000000000..c1a0b5284ed
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ImportReference.java
@@ -0,0 +1,33 @@
+package org.eclipse.papyrus.alf.syntax.units;
+
+import org.eclipse.papyrus.alf.syntax.common.ElementReference;
+import org.eclipse.papyrus.alf.syntax.common.SyntaxElement;
+import org.eclipse.papyrus.alf.syntax.expressions.QualifiedName;
+
+public class ImportReference extends SyntaxElement {
+
+ public QualifiedName referentName ;
+ public UnitDefinition unit ;
+ public String visibility ;
+
+ //Derived Properties
+ public ElementReference referent ;
+
+ // Constraints
+
+ /*
+ * The referent name of an import reference must resolve to a single element with public or empty
+ * visibility.
+ */
+ public void checkImportReferenceReferent() {
+
+ }
+
+ /*
+ * The referent of an import reference is the element denoted by the referent name.
+ */
+ public void checkImportReferenceReferentDerivation() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ImportedMember.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ImportedMember.java
new file mode 100644
index 00000000000..7bc24fbcce5
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ImportedMember.java
@@ -0,0 +1,49 @@
+package org.eclipse.papyrus.alf.syntax.units;
+
+import org.eclipse.papyrus.alf.syntax.common.ElementReference;
+
+public class ImportedMember extends Member {
+
+ // Synthesized Properties
+ public ElementReference referent ;
+
+ // Constraints
+
+ /*
+ * An imported element is a feature if its referent is a feature.
+ */
+ public void checkImportedElementFeatureDerivation() {
+
+ }
+
+ /*
+ * An imported element is not a stub.
+ */
+ public void checkImportedElementNotStub() {
+
+ }
+
+
+ // Helper Operations
+
+ /*
+ * Returns false. (Imported members do not have annotations.)
+ */
+ public boolean annotationAllowed(StereotypeAnnotation annotation) {
+ return false ;
+ }
+
+ /*
+ * If the given member is not an imported member, then return the result of checking whether the given
+ * member is distinguishable from this member. Else, if the element of the referent for this member is an
+ * Alf member, then return the result of checking whether that element is distinguishable from the given
+ * member. Else, if the element of the referent for the given member is an Alf member, then return the
+ * result of checking whether that element is distinguishable from this member. Else, the referents for both
+ * this and the given member are UML elements, so return the result of checking their distinguishability
+ * according to the rules of the UML superstructure.
+ */
+ public boolean isSameKindAs(Member member) {
+ return false ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/Member.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/Member.java
new file mode 100644
index 00000000000..9fb7a18d8b1
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/Member.java
@@ -0,0 +1,121 @@
+package org.eclipse.papyrus.alf.syntax.units;
+
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.DocumentedElement;
+
+public class Member extends DocumentedElement {
+
+ // Synthesized Properties
+ public List<StereotypeAnnotation> annotation ;
+ public boolean isStub = false ;
+ public String name ;
+ public NamespaceDefinition namespace ;
+ public String visibility ;
+
+ // Derived Properties
+ public boolean isExternal ;
+ public boolean isFeature = false ;
+ public boolean isPrimitive ;
+ public UnitDefinition subunit ;
+
+ // Constraints
+
+ /*
+ * All stereotype annotations for a member must be allowed, as determined using the stereotypeAllowed
+ * operation.
+ */
+ public void checkMemberAnnotations() {
+
+ }
+
+ /*
+ * If a member is external then it must be a stub.
+ */
+ public void checkMemberExternal() {
+
+ }
+
+ /*
+ * A member is external if it has an @external derivation.
+ */
+ public void checkMemberIsExternalDerivation() {
+
+ }
+
+ /*
+ * A member is primitive if it has a @primitive annotation.
+ */
+ public void checkMemberIsPrimitiveDerivation() {
+
+ }
+
+ /*
+ * If a member is primitive, then it may not be a stub and it may not have any owned members that are
+ * template parameters.
+ */
+ public void checkMemberPrimitive() {
+
+ }
+
+ /*
+ * If a member is a stub and is not external, then there must be a single subunit with the same qualified
+ * name as the stub that matches the stub, as determined by the matchForStub operation.
+ */
+ public void checkMemberStub() {
+
+ }
+
+ /*
+ * If a member is a stub, then the it must not have any stereotype annotations that are the same as its
+ * subunit. Two stereotype annotations are the same if they are for the same stereotype.
+ */
+ public void checkMemberStubStereotypes() {
+
+ }
+
+ /*
+ * If the member is a stub and is not external, then its corresponding subunit is a unit definition with the
+ * same fully qualified name as the stub.
+ */
+ public void checkMemberSubunitDerivation() {
+
+ }
+
+
+ // Helper Operations
+
+ /*
+ * Returns true of the given stereotype annotation is allowed for this kind of element.
+ */
+ public boolean annotationAllowed(StereotypeAnnotation annotation) {
+ return false ;
+ }
+
+ /*
+ * Returns true if this member is distinguishable from the given member. Two members are distinguishable
+ * if their names are different or the they are of different kinds (as determined by the isSameKindAs
+ * operation). However, in any case that the UML Superstructure considers two names to be
+ * distinguishable if they are different, an Alf implementation may instead impose the stronger requirement
+ * that the names not be conflicting.
+ */
+ public boolean isDistinguishableFrom(Member member) {
+ return false ;
+ }
+
+ /*
+ * Returns true if this member is of the same kind as the given member.
+ */
+ public boolean isSameKindAs(Member member) {
+ return false ;
+ }
+
+ /*
+ * Returns true of the given unit definition is a legal match for this member as a stub. By default, always
+ * returns false.
+ */
+ public boolean matchForStub(UnitDefinition unit) {
+ return false ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/NamespaceDefinition.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/NamespaceDefinition.java
new file mode 100644
index 00000000000..fe0d57172b9
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/NamespaceDefinition.java
@@ -0,0 +1,46 @@
+package org.eclipse.papyrus.alf.syntax.units;
+
+import java.util.List;
+
+public class NamespaceDefinition extends Member {
+
+ // Synthesized Properties
+ public List<Member> ownedMember ;
+ public UnitDefinition unit ;
+
+ // Derived Properties
+ public List<Member> member ;
+
+ // Constraints
+
+ /*
+ * The members of a namespace definition include references to all owned members. Also, if the
+ * namespace definition has a unit with imports, then the members include imported members with
+ * referents to all imported elements. The imported elements and their visibility are determined as given in
+ * the UML Superstructure. The name of an imported member is the name of the imported element or its
+ * alias, if one has been given for it. Elements that would be indistinguishable from each other or from an
+ * owned member (as determined by the Member::isDistinguishableFrom operation) are not imported.
+ */
+ public void checkNamespaceDefinitionMemberDerivation() {
+
+ }
+
+ /*
+ * The members of a namespace must be distinguishable as determined by the
+ * Member::isDistinguishableFrom operation.
+ */
+ public void checkNamespaceDefinitionMemberDistinguishaibility() {
+
+ }
+
+
+ // Helper Operations
+
+ /*
+ * Returns true if the annotation is @external.
+ */
+ public boolean annotationAllowed(StereotypeAnnotation annotation) {
+ return false ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/OperationDefinition.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/OperationDefinition.java
new file mode 100644
index 00000000000..54410d82719
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/OperationDefinition.java
@@ -0,0 +1,133 @@
+package org.eclipse.papyrus.alf.syntax.units;
+
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.ElementReference;
+import org.eclipse.papyrus.alf.syntax.statements.Block;
+import org.eclipse.papyrus.alf.syntax.statements.QualifiedNameList;
+
+public class OperationDefinition extends NamespaceDefinition{
+
+ // Synthesized Properties
+ public Block body ;
+ public boolean isAbstract = false ;
+ public QualifiedNameList redefinition ;
+
+ // Derived Properties
+ public boolean isConstructor ;
+ public boolean isDestructor ;
+ public List<ElementReference> redefinedOperations ;
+
+ // Constraints
+
+ /*
+ * If an operation definition is a constructor, any redefined operation for it must also be a constructor. The
+ * body of a constructor may contain an alternative constructor invocation for another constructor in the
+ * same class or super constructor invocations for constructors in immediate superclasses.
+ */
+ public void checkOperationDefinitionConstructor() {
+
+ }
+
+ /*
+ * An operation definition cannot be both a constructor and a destructor.
+ */
+ public void checkOperationDefinitionConstructorDestructor() {
+
+ }
+
+ /*
+ * If an operation definition is a destructor, any redefined operation for it must also be a destructor.
+ */
+ public void checkOperationDefinitionDestructor() {
+
+ }
+
+ /*
+ * An operation definition is a constructor if it has a @Create annotation.
+ */
+ public void checkOperationDefinitionIsConstructorDefinition() {
+
+ }
+
+ /*
+ * An operation definition is a destructor if it has a @Destroy annotation.
+ */
+ public void checkOperationDefinitionIsDestructorDefinition() {
+
+ }
+
+ /*
+ * An operation definition is a feature.
+ */
+ public void checkOperationDefinitionIsFeatureDerivation() {
+
+ }
+
+ /*
+ * The namespace for an operation definition must be a class definition. If the operation definition is
+ * abstract, then the class definition must be abstract.
+ */
+ public void checkOperationDefinitionNamespace() {
+
+ }
+
+ /*
+ * The redefined operations of an operation definition must have formal parameters that match each of the
+ * formal parameters of this operation definition, in order. Two formal parameters match if they have the
+ * same direction, name, multiplicity bounds, ordering, uniqueness and type reference.
+ */
+ public void checkOperationDefinitionRedefinedOperations() {
+
+ }
+
+ /*
+ * If an operation definition has a redefinition list, its redefined operations are the referent operations of the
+ * names in the redefinition list for the operation definition. Otherwise, the redefined operations are any
+ * operations that would otherwise be indistinguishable from the operation being defined in this operation
+ * definition.
+ */
+ public void checkOperationDefinitionRedefinedOperationsDerivation() {
+
+ }
+
+ /*
+ * Each name in the redefinition list of an operation definition must have a signal referent that is an
+ * operation. This operation must be a non-private operation that is a member of a specialization referent of
+ * the class definition of the operation definition.
+ */
+ public void checkOperationDefinitionRedefinition() {
+
+ }
+
+
+ // Helper Operations
+
+ /*
+ * Returns true if the annotation is for a stereotype that has a metaclass consistent with Operation.
+ */
+ public boolean annotationAllowed(StereotypeAnnotation annotation) {
+ return false ;
+ }
+
+ /*
+ * Return true if the given member is either an OperationDefinition or an imported member whose referent
+ * is an OperationDefinition or an Operation, and the formal parameters of this operation definition match,
+ * in order, the parameters of the other operation definition or operation. In this context, matching means
+ * the same name and type (per UML Superstructure, Subclause 7.3.5).
+ */
+ public boolean isSameKindAs(Member member) {
+ return false ;
+ }
+
+ /*
+ * The namespace definition associated with the given unit definition must be an activity definition with no
+ * template parameters. In addition, the subunit definition must have formal parameters that match each of
+ * the formal parameters of the stub definition, in order. Two formal parameters match if they have the
+ * same direction, name, multiplicity bounds, ordering, uniqueness and type reference.
+ */
+ public boolean matchForStub(UnitDefinition unit) {
+ return false ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/PackageDefinition.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/PackageDefinition.java
new file mode 100644
index 00000000000..8ad47c8eb0a
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/PackageDefinition.java
@@ -0,0 +1,49 @@
+package org.eclipse.papyrus.alf.syntax.units;
+
+import java.util.List;
+
+import org.eclipse.uml2.uml.Profile;
+
+public class PackageDefinition extends NamespaceDefinition {
+
+ // Derived Properties
+ public List<Profile> appliedProfile ;
+
+ // Constraints
+
+ /*
+ * The applied profiles of a package definition are the profiles listed in any @apply annotations on the
+ * package.
+ */
+ public void checkPackageDefinitionAppliedProfileDerivation() {
+
+ }
+
+
+ // Helper Operations
+
+ /*
+ * In addition to the annotations allowed on any namespace definition, a package definition allows @apply
+ * annotations plus any stereotype whose metaclass is consistent with Package.
+ */
+ public boolean annotationAllowed(StereotypeAnnotation annotation) {
+ return false ;
+ }
+
+ /*
+ * Return true if the given member is either a PackageDefinition or an imported member whose referent is
+ * a PackageDefinition or a Package.
+ */
+ public boolean isSameKindAs(Member member) {
+ return false ;
+ }
+
+ /*
+ * Returns true of the namespace definition associated with the given unit definition is a package
+ * definition.
+ */
+ public boolean matchForStub(UnitDefinition unit) {
+ return false ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/PackageImportReference.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/PackageImportReference.java
new file mode 100644
index 00000000000..f92cdfc0e63
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/PackageImportReference.java
@@ -0,0 +1,14 @@
+package org.eclipse.papyrus.alf.syntax.units;
+
+public class PackageImportReference extends ImportReference {
+
+ // Constraints
+
+ /*
+ * The referent of a package import must be a package.
+ */
+ public void checkPackageImportReferenceReferent() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/PropertyDefinition.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/PropertyDefinition.java
new file mode 100644
index 00000000000..375106a0286
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/PropertyDefinition.java
@@ -0,0 +1,67 @@
+package org.eclipse.papyrus.alf.syntax.units;
+
+import org.eclipse.papyrus.alf.syntax.expressions.Expression;
+
+public class PropertyDefinition extends TypedElementDefinition {
+
+ // Synthesized Properties
+ public Expression initializer ;
+ public boolean isComposite = false ;
+
+ // Derived Properties
+ public boolean isBitStringConversion ;
+ public boolean isCollectionConversion ;
+
+ // Constraints
+
+ /*
+ * If a property definition has an initializer, then the initializer expression must be assignable to the
+ * property definition.
+ */
+ public void checkPropertyDefinitionInitializer() {
+
+ }
+
+ /*
+ * A property definition requires BitString conversion if its type is BitString and the type of its initializer is
+ * Integer or a collection class whose argument type is Integer.
+ */
+ public void checkPropertyDefinitionIsBitStringConversion() {
+
+ }
+
+ /*
+ * A property definition requires collection conversion if its initializer has a collection class as its type and
+ * the property definition does not.
+ */
+ public void checkPropertyDefinitionIsCollectionConversionDerivation() {
+
+ }
+
+ /*
+ * A property definition is a feature.
+ */
+ public void checkPropertyDefinitionIsFeatureDerivation() {
+
+ }
+
+
+ // Helper Operations
+
+ /*
+ * Returns true if the annotation is for a stereotype that has a metaclass consistent with Property.
+ */
+ public boolean annotationAllowed(StereotypeAnnotation annotation) {
+ return false ;
+ }
+
+ /*
+ * Return true if the given member is either a PropertyDefinition or an imported member whose referent is
+ * a PropertyDefinition or a Property.
+ */
+ public boolean isSameKindAs(Member member) {
+ return false ;
+ }
+
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ReceptionDefinition.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ReceptionDefinition.java
new file mode 100644
index 00000000000..3b08f836e89
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/ReceptionDefinition.java
@@ -0,0 +1,56 @@
+package org.eclipse.papyrus.alf.syntax.units;
+
+import org.eclipse.papyrus.alf.syntax.common.ElementReference;
+import org.eclipse.papyrus.alf.syntax.expressions.QualifiedName;
+
+public class ReceptionDefinition extends Member {
+
+ // Synthesized Properties
+ public QualifiedName signalName ;
+
+ // Derived Properties
+ public ElementReference signal ;
+
+ // Constraints
+
+ /*
+ * A reception definition is a feature.
+ */
+ public void checkReceptionDefinitionIsFeatureDerivation() {
+
+ }
+
+ /*
+ * The signal for a reception definition is the signal referent of the signal name for the reception definition.
+ */
+ public void checkReceptionDefinitionSignalDerivation() {
+
+ }
+
+ /*
+ * The signal name for a reception definition must have a single referent that is a signal. This referent must
+ * not e a template.
+ */
+ public void checkReceptionDefinitionSignalName() {
+
+ }
+
+
+ // Helper Operations
+
+ /*
+ * Returns true if the annotation is for a stereotype that has a metaclass consistent with Reception.
+ */
+ public boolean annotationAllowed(StereotypeAnnotation annotation) {
+ return false ;
+ }
+
+ /*
+ * Return true if the given member is either a ReceptionDefinition, a SignalReceptionDefinition or an
+ * imported member whose referent is a ReceptionDefinition, a SignalReceptionDefinition or a Reception.
+ */
+ public boolean isSameKindAs(Member member) {
+ return false ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/SignalDefinition.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/SignalDefinition.java
new file mode 100644
index 00000000000..ce708a4137e
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/SignalDefinition.java
@@ -0,0 +1,41 @@
+package org.eclipse.papyrus.alf.syntax.units;
+
+public class SignalDefinition extends ClassifierDefinition {
+
+ // Constraints
+
+ /*
+ * The specialization referents of a signal definition must all be signals.
+ */
+ public void checkSignalDefinitionSpecializationReferent() {
+
+ }
+
+ // Helper Operations
+
+ /*
+ * In addition to the annotations allowed for classifiers in general, a signal definition allows an annotation
+ * for any stereotype whose metaclass is consistent with Signal.
+ */
+ public boolean annotationAllowed(StereotypeAnnotation annotation) {
+ return false ;
+ }
+
+ /*
+ * Return true if the given member is either a SignalDefinition or an imported member whose referent is a
+ * SignalDefinition or a Reception (where signal reception definitions are considered to be kinds of signal
+ * definitions).
+ */
+ public boolean isSameKindAs(Member member) {
+ return false ;
+ }
+
+ /*
+ * Returns true if the given unit definition matches this signal definition considered as a classifier
+ * definition and the subunit is for a signal definition.
+ */
+ public boolean matchForStub(UnitDefinition unit) {
+ return false ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/SignalReceptionDefinition.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/SignalReceptionDefinition.java
new file mode 100644
index 00000000000..1a1a8751111
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/SignalReceptionDefinition.java
@@ -0,0 +1,14 @@
+package org.eclipse.papyrus.alf.syntax.units;
+
+public class SignalReceptionDefinition extends SignalDefinition {
+
+ // Constraints
+
+ /*
+ * A signal reception definition is a feature.
+ */
+ public void checkSignalReceptionDefinitionIsFeatureDerivation() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/StereotypeAnnotation.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/StereotypeAnnotation.java
new file mode 100644
index 00000000000..5150764af4d
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/StereotypeAnnotation.java
@@ -0,0 +1,80 @@
+package org.eclipse.papyrus.alf.syntax.units;
+
+import org.eclipse.papyrus.alf.syntax.common.SyntaxElement;
+import org.eclipse.papyrus.alf.syntax.expressions.QualifiedName;
+import org.eclipse.papyrus.alf.syntax.statements.QualifiedNameList;
+import org.eclipse.uml2.uml.Stereotype;
+
+public class StereotypeAnnotation extends SyntaxElement {
+
+ // Synthesized Properties
+ public QualifiedNameList names ;
+ public QualifiedName stereotypeName ;
+ public TaggedValueList taggedValues ;
+
+ // Derived Properties
+ public Stereotype stereotype ;
+
+ // Constraints
+
+ /*
+ * If the stereotype name of a stereotype annotation is "apply", then it must have a name list and all of the
+ * names in the list must resolve to profiles.
+ */
+ public void checkStereotypeAnnotationApply() {
+
+ }
+
+ /*
+ * If the stereotype name of a stereotype annotation is "external", then it may optionally have a single
+ * tagged value with the name "file" and no operator.
+ */
+ public void checkStereotypeAnnotationExternal() {
+
+ }
+
+ /*
+ * If a stereotype annotation has a stereotype and a list of names, then all the names in the list must resolve
+ * to visible model elements and the stereotype must have a single attribute with a (metaclass) type and
+ * multiplicity that are consistent with the types and number of the elements denoted by the given names.
+ */
+ public void checkStereotypeAnnotationNames() {
+
+ }
+
+ /*
+ * If the stereotype name of a stereotype annotation is "primitive", then it may not have tagged values or
+ * names.
+ */
+ public void checkStereotypeAnnotationPrimitive() {
+
+ }
+
+ /*
+ * Unless the stereotype name is "apply", "primitive" or "external" then the stereotype for a stereotype
+ * annotation is the stereotype denoted by the stereotype name.
+ */
+ public void checkStereotypeAnnotationStereotypeDerivation() {
+
+ }
+
+ /*
+ * The stereotype name of a stereotype annotation must either be one of "apply", "primitive" or "external",
+ * or it must denote a single stereotype from a profile applied to an enclosing package. The stereotype
+ * name does not need to be qualified if there is only one applied profile with a stereotype of that name or
+ * if the there is a standard UML profile with the name.
+ */
+ public void checkStereotypeAnnotationStereotypeName() {
+
+ }
+
+ /*
+ * If a stereotype annotation has a stereotype and tagged values, then the each tagged value must have the
+ * name of an attribute of the stereotype and a value that is legally interpretable for the type of that
+ * attribute.
+ */
+ public void checkStereotypeAnnotationTaggedValues() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/TaggedValue.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/TaggedValue.java
new file mode 100644
index 00000000000..d47a941f2ef
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/TaggedValue.java
@@ -0,0 +1,12 @@
+package org.eclipse.papyrus.alf.syntax.units;
+
+import org.eclipse.papyrus.alf.syntax.common.SyntaxElement;
+
+public class TaggedValue extends SyntaxElement {
+
+ // Synthesized Properties
+ public String name ;
+ public String operator ;
+ public String value ;
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/TaggedValueList.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/TaggedValueList.java
new file mode 100644
index 00000000000..de246ae84bc
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/TaggedValueList.java
@@ -0,0 +1,12 @@
+package org.eclipse.papyrus.alf.syntax.units;
+
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.SyntaxElement;
+
+public class TaggedValueList extends SyntaxElement {
+
+ // Synthesized Properties
+ public List<TaggedValue> taggedValue ;
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/TypedElementDefinition.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/TypedElementDefinition.java
new file mode 100644
index 00000000000..6a85d0eaa75
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/TypedElementDefinition.java
@@ -0,0 +1,54 @@
+package org.eclipse.papyrus.alf.syntax.units;
+
+import org.eclipse.papyrus.alf.syntax.common.ElementReference;
+import org.eclipse.papyrus.alf.syntax.expressions.QualifiedName;
+
+public class TypedElementDefinition extends Member {
+
+ // Synthesized Properties
+ public boolean isNonunique = false ;
+ public boolean isOrdered = false ;
+ public String lowerBound ;
+ public QualifiedName typeName ;
+ public String upperBound = "1" ;
+
+ // Derived Properties
+ public int lower ;
+ public ElementReference type ;
+ public int upper ;
+
+ // Constraints
+
+ /*
+ * If the lower bound string image of a typed element definition is not empty, then the integer lower bound
+ * is the integer value of the lower bound string. Otherwise the lower bound is equal to the upper bound,
+ * unless the upper bound is unbounded, in which case the lower bound is 0.
+ */
+ public void checkTypedElementDefinitionLowerDerivation() {
+
+ }
+
+ /*
+ * The type of a typed element definition is the single classifier referent of the type name.
+ */
+ public void checkTypedElementDefinitionTypeDerivation() {
+
+ }
+
+ /*
+ * The type name of a typed element definition must have a single classifier referent. This referent may not
+ * be a template.
+ */
+ public void checkTypedElementDefinitionTypeName() {
+
+ }
+
+ /*
+ * The unlimited natural upper bound value is the unlimited natural value of the uper bound string (with
+ * "*" representing the unbounded value).
+ */
+ public void checkTypedElementDefinitionUpperDerivation() {
+
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/UnitDefinition.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/UnitDefinition.java
new file mode 100644
index 00000000000..0f2be6f59d2
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/syntax/units/UnitDefinition.java
@@ -0,0 +1,66 @@
+package org.eclipse.papyrus.alf.syntax.units;
+
+import java.util.List;
+
+import org.eclipse.papyrus.alf.syntax.common.DocumentedElement;
+import org.eclipse.papyrus.alf.syntax.common.ElementReference;
+import org.eclipse.papyrus.alf.syntax.expressions.QualifiedName;
+import org.eclipse.uml2.uml.Profile;
+
+public class UnitDefinition extends DocumentedElement {
+
+ // Synthesized properties
+ public List<ImportReference> _import ;
+ public NamespaceDefinition definition ;
+ public QualifiedName namespaceName ;
+
+ // Derived Properties
+ public List<Profile> appliedProfile ;
+ public boolean isModelLibrary ;
+ public ElementReference namespace ;
+
+ // Constraints
+
+ /*
+ * The profiles applied to a unit definition include any profiles applied to the containing namespace of the
+ * unit definition. If the unit definition is for a package, then the applied profiles for the unit definition also
+ * include the applied profiles for its associated package definition.
+ */
+ public void checkUnitDefinitionAppliedProfileDerivation() {
+
+ }
+
+ /*
+ * Unless the unit definition is a model library, it has private package import references for all the subpackages
+ * of the Alf::Library package.
+ */
+ public void checkUnitDefinitionImplicitImports() {
+
+ }
+
+ /*
+ * A unit definition is for a model library if its associated namespace definition has a stereotype annotation
+ * for the UML standard stereotype ModelLibrary.
+ */
+ public void checkUnitDefinitionIsModelLibraryDerivation() {
+
+ }
+
+ /*
+ * The declared namespace name for a unit definition, if any, must resolve to a UML namespace of an Alf
+ * unit definition. If it is an Alf unit definition, then it must have a stub for this unit definition.
+ */
+ public void checkUnitDefinitionNamespace() {
+
+ }
+
+ /*
+ * If a unit definition has a declared namespace name, then the containing namespace for the unit is the
+ * referent for that name.
+ */
+ public void checkUnitDefinitionNamespaceDerivation() {
+
+ }
+
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/AlfJavaValidator.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/AlfJavaValidator.java
new file mode 100644
index 00000000000..d87f9692a93
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/AlfJavaValidator.java
@@ -0,0 +1,1441 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.alf.validation;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.operations.OperationHistoryFactory;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.papyrus.alf.alf.AcceptBlock;
+import org.eclipse.papyrus.alf.alf.AcceptStatement;
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.AssignmentOperator;
+import org.eclipse.papyrus.alf.alf.ClassificationClause;
+import org.eclipse.papyrus.alf.alf.ClassificationFromClause;
+import org.eclipse.papyrus.alf.alf.ClassificationToClause;
+import org.eclipse.papyrus.alf.alf.ClassifyStatement;
+import org.eclipse.papyrus.alf.alf.ConcurrentClauses;
+import org.eclipse.papyrus.alf.alf.DoStatement;
+import org.eclipse.papyrus.alf.alf.DocumentedStatement;
+import org.eclipse.papyrus.alf.alf.ForStatement;
+import org.eclipse.papyrus.alf.alf.IfStatement;
+import org.eclipse.papyrus.alf.alf.InstanceCreationInvocationStatement;
+import org.eclipse.papyrus.alf.alf.InvocationOrAssignementOrDeclarationStatement;
+import org.eclipse.papyrus.alf.alf.LocalNameDeclarationStatement;
+import org.eclipse.papyrus.alf.alf.LoopVariableDefinition;
+import org.eclipse.papyrus.alf.alf.NameExpression;
+import org.eclipse.papyrus.alf.alf.NonEmptyStatementSequence;
+import org.eclipse.papyrus.alf.alf.NonFinalClause;
+import org.eclipse.papyrus.alf.alf.PropertyCallExpression;
+import org.eclipse.papyrus.alf.alf.QualifiedNameList;
+import org.eclipse.papyrus.alf.alf.QualifiedNameWithBinding;
+import org.eclipse.papyrus.alf.alf.ReturnStatement;
+import org.eclipse.papyrus.alf.alf.StatementSequence;
+import org.eclipse.papyrus.alf.alf.SuffixExpression;
+import org.eclipse.papyrus.alf.alf.SuperInvocationStatement;
+import org.eclipse.papyrus.alf.alf.ThisInvocationStatement;
+import org.eclipse.papyrus.alf.alf.TupleElement;
+import org.eclipse.papyrus.alf.alf.UnqualifiedName;
+import org.eclipse.papyrus.alf.alf.VariableDeclarationCompletion;
+import org.eclipse.papyrus.alf.alf.WhileStatement;
+import org.eclipse.papyrus.alf.scoping.AlfPartialScope;
+import org.eclipse.papyrus.alf.scoping.AlfScopeProvider;
+import org.eclipse.papyrus.alf.validation.typing.AssignmentPolicy;
+import org.eclipse.papyrus.alf.validation.typing.ErrorTypeFacade;
+import org.eclipse.papyrus.alf.validation.typing.MultiplicityFacade;
+import org.eclipse.papyrus.alf.validation.typing.MultiplicityFacadeFactory;
+import org.eclipse.papyrus.alf.validation.typing.SignatureFacade;
+import org.eclipse.papyrus.alf.validation.typing.TypeExpression;
+import org.eclipse.papyrus.alf.validation.typing.TypeExpressionFactory;
+import org.eclipse.papyrus.alf.validation.typing.TypeFacade;
+import org.eclipse.papyrus.alf.validation.typing.TypeFacadeFactory;
+import org.eclipse.papyrus.alf.validation.typing.TypeUtils;
+import org.eclipse.papyrus.alf.validation.typing.VoidFacade;
+import org.eclipse.papyrus.core.utils.EditorUtils;
+import org.eclipse.papyrus.extensionpoints.uml2.library.RegisteredLibrary;
+import org.eclipse.papyrus.extensionpoints.uml2.utils.Util;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Comment;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Model;
+import org.eclipse.uml2.uml.Namespace;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageImport;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.ParameterDirectionKind;
+import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.resource.UMLResource;
+import org.eclipse.uml2.uml.resource.UMLResource.Factory;
+import org.eclipse.uml2.uml.util.UMLUtil.UML2EcoreConverter;
+import org.eclipse.xtext.validation.Check;
+import org.eclipse.xtext.validation.EValidatorRegistrar;
+
+
+public class AlfJavaValidator extends AbstractAlfJavaValidator {
+
+ private static Element contextElement ;
+ private static Classifier contextClassifier ;
+ private static Namespace model ;
+
+ private static Package alfStandardLibrary ; // TODO: include the library as part of the plug-in
+ public static PredefinedBehaviorsAndTypesUtils predefinedBehaviorsAndTypes ;
+
+ public static Package getAlfStandardLibrary() {
+ return alfStandardLibrary;
+ }
+
+ public static boolean validate() {
+ return true ;
+ }
+
+ public static Namespace getModel() {
+ return model;
+ }
+
+ public static void setModel(Namespace model) {
+ AlfJavaValidator.model = model;
+ }
+
+ public static void setContextElement(Element _contextElement) {
+ contextElement = _contextElement ;
+ }
+
+ public static Element getContextElement() {
+ return contextElement ;
+ }
+
+ public static Classifier getContextClassifier() {
+ return contextClassifier ;
+ }
+
+ public static void setContextClassifier(Classifier contextClassifier) {
+ AlfJavaValidator.contextClassifier = contextClassifier ;
+ alfStandardLibrary = null ;
+ //if (alfStandardLibrary == null) {
+ for (PackageImport pImport : contextClassifier.getModel().getPackageImports()) {
+ Package p = pImport.getImportedPackage() ;
+ if (p.getQualifiedName().equals("Alf")) {
+ //alfStandardLibrary = (Package)p.getOwnedMembers().get(0) ;
+ alfStandardLibrary = (Package)p ;
+ }
+ }
+ //}
+ if (alfStandardLibrary != null) {
+ predefinedBehaviorsAndTypes = new PredefinedBehaviorsAndTypesUtils() ;
+ predefinedBehaviorsAndTypes.init(alfStandardLibrary) ;
+ }
+ else {
+
+ String question = "The context model " +
+ contextClassifier.getModel().getName() +
+ " does not import the standard Alf library. This import is required for static validation of Alf expressions and statements. \n\n Do you want to generate this import?" ;
+ boolean doGenerateImport = MessageDialog.openQuestion(
+ new Shell(),
+ "Alf editor",
+ question);
+ if (doGenerateImport) {
+ RegisteredLibrary[] libraries = RegisteredLibrary.getRegisteredLibraries() ;
+ RegisteredLibrary alfLibrary = null ;
+ for (RegisteredLibrary l : libraries) {
+ if (l.getName().equals("AlfLibrary"))
+ alfLibrary = l ;
+ }
+ if (alfLibrary != null) {
+ // Creates and executes the update command
+ UpdateImportCommand updateCommand = new UpdateImportCommand(contextClassifier.getModel(), alfLibrary);
+ try {
+ OperationHistoryFactory.getOperationHistory().execute(updateCommand, new NullProgressMonitor(), null);
+ setContextClassifier(contextClassifier) ;
+ } catch (ExecutionException e) {
+ org.eclipse.papyrus.properties.runtime.Activator.log.error(e);
+ }
+ }
+ else {
+ MessageDialog.openError(
+ new Shell(),
+ "Alf editor",
+ "Could not find standard Alf library") ;
+ }
+ }
+ }
+ }
+
+ /**
+ * @author CEA LIST
+ *
+ * A command for updating the context UML model
+ */
+ protected static class UpdateImportCommand extends AbstractTransactionalCommand {
+
+ private Model model;
+ private RegisteredLibrary library ;
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand#doExecuteWithResult(org.eclipse.core.runtime.IProgressMonitor
+ * , org.eclipse.core.runtime.IAdaptable)
+ */
+ @Override
+ protected CommandResult doExecuteWithResult(IProgressMonitor arg0, IAdaptable arg1) throws ExecutionException {
+ URI libraryUri = library.uri;
+ ResourceSet resourceSet = Util.getResourceSet(contextClassifier) ;
+ Resource libraryResource = resourceSet.getResource(libraryUri, true) ;
+ Package libraryObject = (Package)libraryResource.getContents().get(0) ;
+ model.createPackageImport(libraryObject) ;
+ return CommandResult.newOKCommandResult(model);
+ }
+
+ public UpdateImportCommand(Model model, RegisteredLibrary library) {
+ super(EditorUtils.getTransactionalEditingDomain(), "Model Update", getWorkspaceFiles(model));
+ this.model = model ;
+ this.library = library ;
+ //this.operation = operation;
+ }
+ }
+
+ @Override
+ public void register(EValidatorRegistrar registrar) {
+ // alf validator is not registered for a specific language
+ super.register(registrar) ;
+ }
+
+ /**
+ * @param tupleElement
+ *
+ * Checks the following rule:
+ * 1. the expression associated with the tuple must not encapsulate any error
+ */
+ @Check
+ public void checkTupleElement(TupleElement tupleElement) {
+ TypeExpression exp = new TypeUtils().getTypeOfExpression(tupleElement.getArgument()) ;
+ if (exp.getTypeFacade() instanceof ErrorTypeFacade) {
+ ErrorTypeFacade error = (ErrorTypeFacade)exp.getTypeFacade() ;
+ error(error.getLabel(), error.getErrorSource(), error.getStructuralFeature(), INSIGNIFICANT_INDEX) ;
+ }
+ }
+
+ /**
+ * @param statement LocalNameDeclarationStatement
+ *
+ * Checks the following rules:
+ * 1. the local variable name must be available
+ * 2. the type must be resolved
+ * 3. the init expression must be type/multiplicity compatible with the variable type
+ */
+ @Check
+ public void checkLocalNameDeclarationStatement(LocalNameDeclarationStatement statement) {
+ // 1. checks that the local variable name is available
+ if (statement.getVarName() != null) {
+ AlfPartialScope variablesScope = AlfScopeProvider.scopingTool.getVisibleVariablesOrParametersOrProperties(statement) ;
+ List<EObject> resolved = variablesScope.resolveByName(statement.getVarName()) ;
+ if (! resolved.isEmpty()) {// name is already used
+ // needs to determine if the scoping level where it is used is conflicting (i.e., it is in the first scoping level)
+ if (variablesScope.getScopingLevel(resolved.get(0)) == 0 && resolved.get(0) != statement) {
+ // There is a name conflict
+ error("Local name " + statement.getVarName() + " is not available" , AlfPackage.eINSTANCE.getLocalNameDeclarationStatement_VarName()) ;
+ }
+ }
+ }
+
+ // 2. checks that type can be resolved, and that potentially required template bindings are specified
+ TypeFacade variableType = null ;
+ if (statement.getType() != null) {
+ variableType = TypeFacadeFactory.eInstance.createVoidFacade(statement.getType()) ;
+ if (variableType instanceof ErrorTypeFacade) { // Type could not be resolved
+ ErrorTypeFacade error = (ErrorTypeFacade)variableType ;
+ error(error.getLabel(), error.getErrorSource(), error.getStructuralFeature(), INSIGNIFICANT_INDEX) ;
+ variableType = null ;
+ }
+ else if (variableType.isATemplate()){
+ if (statement.getType().getBinding() == null) {
+ String errorMessage = variableType.getLabel() + " is a template. All its parameters shall be bound." ;
+ error(errorMessage, statement, AlfPackage.eINSTANCE.getLocalNameDeclarationStatement_Type(), INSIGNIFICANT_INDEX) ;
+ }
+ }
+ }
+
+ // 3. checks the init expression
+ if (statement.getInit() != null) {
+ TypeExpression typeOfInit = new TypeUtils().getTypeOfSequenceElement(statement.getInit()) ;
+ // first checks that init expression is valid
+ if (typeOfInit.getTypeFacade() instanceof ErrorTypeFacade) {
+ ErrorTypeFacade error = (ErrorTypeFacade)typeOfInit.getTypeFacade() ;
+ error(error.getLabel(), error.getErrorSource(), error.getStructuralFeature(), INSIGNIFICANT_INDEX) ;
+ }
+ else {
+ // Type expression is valid
+ // In the case where type has been validated at step 2., checks if the type of init expression is compatible with variable type
+ if (variableType != null) {
+ int lowerBound = statement.isMultiplicityIndicator() ? 0 : 1 ;
+ int upperBound = statement.isMultiplicityIndicator() ? -1 : 1 ;
+ boolean isUnique = statement.isMultiplicityIndicator() ? false : true ;
+ boolean isOrdered = statement.isMultiplicityIndicator() ? true : false ;
+ TypeExpression expectedType = TypeExpressionFactory.eInstance.createTypeExpression(variableType, lowerBound, upperBound, isUnique, isOrdered) ;
+ if (expectedType.isCompatibleWithMe(typeOfInit) == 0) {
+ error("Found an expression of type " + typeOfInit.getLabel() + ". Expecting an expression of type " + expectedType.getLabel(), AlfPackage.eINSTANCE.getLocalNameDeclarationStatement_Init()) ;
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * @param statement IfStatement
+ *
+ * Checks the following rule:
+ * 1. The condition associated with each clause must be a boolean expression
+ */
+ @Check
+ public void checkIfStatement(IfStatement statement) {
+ for (ConcurrentClauses concurrentClause : statement.getSequentialClausses().getConccurentClauses()) {
+ for (NonFinalClause nonFinalClause : concurrentClause.getNonFinalClause()) {
+ TypeExpression typeOfCondition = new TypeUtils().getTypeOfExpression(nonFinalClause.getCondition()) ;
+ if (typeOfCondition.getTypeFacade() instanceof ErrorTypeFacade) {
+ ErrorTypeFacade error = (ErrorTypeFacade)typeOfCondition.getTypeFacade() ;
+ error(error.getLabel(), error.getErrorSource(), error.getStructuralFeature(), INSIGNIFICANT_INDEX) ;
+ }
+ else {
+ if (TypeExpressionFactory.eInstance.createTypeExpression(TypeUtils._boolean).isCompatibleWithMe(typeOfCondition) == 0) {
+ String errorMessage = "Expecting an expression of type Boolean. Found an expression of type " + typeOfCondition.getLabel() ;
+ error(errorMessage, nonFinalClause, AlfPackage.eINSTANCE.getNonFinalClause_Condition(), INSIGNIFICANT_INDEX) ;
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * @param statement WhileStatement
+ *
+ * Checks the following rule:
+ * 1. The condition associated with the while must be a boolean expression
+ */
+ @Check
+ public void checkWhileStatement(WhileStatement statement) {
+ TypeExpression typeOfCondition = new TypeUtils().getTypeOfExpression(statement.getCondition()) ;
+ if (typeOfCondition.getTypeFacade() instanceof ErrorTypeFacade) {
+ ErrorTypeFacade error = (ErrorTypeFacade)typeOfCondition.getTypeFacade() ;
+ error(error.getLabel(), error.getErrorSource(), error.getStructuralFeature(), INSIGNIFICANT_INDEX) ;
+ }
+ else {
+ if (TypeExpressionFactory.eInstance.createTypeExpression(TypeUtils._boolean).isCompatibleWithMe(typeOfCondition) == 0) {
+ String errorMessage = "Expecting an expression of type Boolean. Found an expression of type " + typeOfCondition.getLabel() ;
+ error(errorMessage, AlfPackage.eINSTANCE.getWhileStatement_Condition()) ;
+ }
+ }
+ }
+
+ /**
+ * @param statement DoStatement
+ *
+ * Checks the following rule:
+ * 1. The condition associated with the DoStatement must be a boolean expression
+ */
+ @Check
+ public void checkDoStatement(DoStatement statement) {
+ TypeExpression typeOfCondition = new TypeUtils().getTypeOfExpression(statement.getCondition()) ;
+ if (typeOfCondition.getTypeFacade() instanceof ErrorTypeFacade) {
+ ErrorTypeFacade error = (ErrorTypeFacade)typeOfCondition.getTypeFacade() ;
+ error(error.getLabel(), error.getErrorSource(), error.getStructuralFeature(), INSIGNIFICANT_INDEX) ;
+ }
+ else {
+ if (TypeExpressionFactory.eInstance.createTypeExpression(TypeUtils._boolean).isCompatibleWithMe(typeOfCondition) == 0) {
+ String errorMessage = "Expecting an expression of type Boolean. Found an expression of type " + typeOfCondition.getLabel() ;
+ error(errorMessage, AlfPackage.eINSTANCE.getDoStatement_Condition()) ;
+ }
+ }
+ }
+
+ /**
+ * @param statement ForStatement
+ *
+ * Checks the following rule:
+ * 1. Loop variable names must not be available (i.e., not used in the scope of the statement)
+ * 2. Loop variable names must not duplicate (i.e., two loop variables for this statement must not have the same name)
+ * 3. if the loop variable definition uses the syntax option with keyword "in", following rules must be checked:
+ * 3.a. if only expression1 is specified, the upper bound of expression 1 must be greater than 1
+ * 3.b. if both expression1 and expression2 are specified, they must be type compatible and represent number values (TODO: check other constraints in the spec)
+ * 4. if the loop variable definition uses the syntax option with keyword ":", following rules must be checked:
+ * 4.a. type must be resolved
+ * 4.b. the domain value "expression" must be type-compatible with the variable and must be a collection
+ */
+ @Check
+ public void checkForStatement(ForStatement statement) {
+ // 1. Loop variable names must not be available (i.e., not used in the scope of the statement)
+ AlfPartialScope variablesScope = AlfScopeProvider.scopingTool.getVisibleVariablesOrParametersOrProperties(statement) ;
+ Map<String, Integer> declaredVariables = new HashMap<String, Integer>() ;
+ for (LoopVariableDefinition loopVariable : statement.getControl().getLoopVariableDefinition()) {
+ Integer variableDefinitionCounter = declaredVariables.get(loopVariable.getName()) ;
+ if (variableDefinitionCounter == null) {
+ declaredVariables.put(loopVariable.getName(), new Integer(1)) ;
+ }
+ else {
+ declaredVariables.put(loopVariable.getName(), variableDefinitionCounter.intValue() + 1) ;
+ }
+ List<EObject> visibleVariables = variablesScope.resolveByName(loopVariable.getName()) ;
+ if (! visibleVariables.isEmpty()) { // potentially conflicting name
+ if (variablesScope.getScopingLevel(visibleVariables.get(0)) == 0) {
+ // There is actually a conflict
+ error("Local name " + loopVariable.getName() + " is not available" ,
+ loopVariable,
+ AlfPackage.eINSTANCE.getLocalNameDeclarationStatement_VarName(),
+ statement.getControl().getLoopVariableDefinition().indexOf(loopVariable)) ;
+ }
+ }
+ }
+
+ // 2. Loop variable names must not duplicate (i.e., two loop variables for this statement must not have the same name)
+ boolean duplicationFound = false ;
+ for (Integer i : declaredVariables.values()) {
+ if (i.intValue() > 1)
+ duplicationFound = true ;
+ }
+ if (duplicationFound) {
+ error("Duplicate loop variable definitions" , AlfPackage.eINSTANCE.getForStatement_Control()) ;
+ }
+
+ for (LoopVariableDefinition loopVariable : statement.getControl().getLoopVariableDefinition()) {
+ // 3. if the loop variable definition uses the syntax option with keyword "in", following rules must be checked:
+ // 3.a. if only expression1 is specified, the upper bound of expression 1 must be greater than 1
+ if (loopVariable.getExpression1() != null && loopVariable.getExpression2() == null) {
+ TypeExpression typeOfExpression1 = new TypeUtils().getTypeOfExpression(loopVariable.getExpression1()) ;
+ if (typeOfExpression1.getTypeFacade() instanceof ErrorTypeFacade) {
+ ErrorTypeFacade error = (ErrorTypeFacade)typeOfExpression1.getTypeFacade() ;
+ error(error.getLabel(), error.getErrorSource(), error.getStructuralFeature(), INSIGNIFICANT_INDEX) ;
+ }
+ else {
+ int upperBound = typeOfExpression1.getMultiplicity().getUpperBound() ;
+ if (! (upperBound > 1 || upperBound == -1)) {
+ String errorMessage = "Invalid upper bound multiplicity (" + upperBound + "). A collection is expected." ;
+ error(errorMessage, loopVariable, AlfPackage.eINSTANCE.getLoopVariableDefinition_Expression1(), INSIGNIFICANT_INDEX) ;
+ }
+ }
+ }
+ // 3.b. if both expression1 and expression2 are specified, they must be type compatible and represent number values (TODO: check other constraints in the spec)
+ else if (loopVariable.getExpression1() != null && loopVariable.getExpression2() != null) {
+ TypeExpression typeOfExpression1 = new TypeUtils().getTypeOfExpression(loopVariable.getExpression1()) ;
+ boolean errorInExpressions = false ;
+ if (typeOfExpression1.getTypeFacade() instanceof ErrorTypeFacade) {
+ ErrorTypeFacade error = (ErrorTypeFacade)typeOfExpression1.getTypeFacade() ;
+ error(error.getLabel(), error.getErrorSource(), error.getStructuralFeature(), INSIGNIFICANT_INDEX) ;
+ errorInExpressions = true ;
+ }
+ TypeExpression typeOfExpression2 = new TypeUtils().getTypeOfExpression(loopVariable.getExpression2()) ;
+ if (typeOfExpression2.getTypeFacade() instanceof ErrorTypeFacade) {
+ ErrorTypeFacade error = (ErrorTypeFacade)typeOfExpression2.getTypeFacade() ;
+ error(error.getLabel(), error.getErrorSource(), error.getStructuralFeature(), INSIGNIFICANT_INDEX) ;
+ errorInExpressions = true ;
+ }
+ if (! errorInExpressions) { // both Expression must be type compatible and resolve to a scalar number value
+ TypeFacade typeFacadeOfExpression1 = typeOfExpression1.getTypeFacade() ;
+ int upperBoundExpression1 = typeOfExpression1.getMultiplicityFacade().getUpperBound() ;
+ String errorMessageForExpression1 = "" ;
+ if (!isANumberType(typeFacadeOfExpression1)) {
+ if (upperBoundExpression1 > 1 || upperBoundExpression1 == -1)
+ errorMessageForExpression1 += "A scalar number value is expected" ;
+ else
+ errorMessageForExpression1 += "A number value is expected" ;
+ }
+ else {
+ if (upperBoundExpression1 > 1 || upperBoundExpression1 == -1)
+ errorMessageForExpression1 += "A scalar value is expected" ;
+ }
+ if (!(errorMessageForExpression1.length() == 0)) {
+ error(errorMessageForExpression1, loopVariable, AlfPackage.eINSTANCE.getLoopVariableDefinition_Expression1(), INSIGNIFICANT_INDEX) ;
+ }
+ TypeFacade typeFacadeOfExpression2 = typeOfExpression2.getTypeFacade() ;
+ int upperBoundExpression2 = typeOfExpression2.getMultiplicityFacade().getUpperBound() ;
+ String errorMessageForExpression2 = "" ;
+ if (!isANumberType(typeFacadeOfExpression2)) {
+ if (upperBoundExpression2 > 1 || upperBoundExpression2 == -1)
+ errorMessageForExpression2 += "A scalar number value is expected" ;
+ else
+ errorMessageForExpression2 += "A number value is expected" ;
+ }
+ else {
+ if (upperBoundExpression2 > 1 || upperBoundExpression2 == -1)
+ errorMessageForExpression2 += "A scalar value is expected" ;
+ }
+ if (!(errorMessageForExpression2.length() == 0)) {
+ error(errorMessageForExpression2, loopVariable, AlfPackage.eINSTANCE.getLoopVariableDefinition_Expression2(), INSIGNIFICANT_INDEX) ;
+ }
+ }
+ }
+ //4. if the loop variable definition uses the syntax option with keyword ":", following rules must be checked:
+ else if (loopVariable.getType() != null) {
+ // 4.a. type must be resolved
+ TypeFacade typeOfVariable = TypeFacadeFactory.eInstance.createVoidFacade(loopVariable.getType()) ;
+ if (typeOfVariable instanceof ErrorTypeFacade) {
+ ErrorTypeFacade error = (ErrorTypeFacade)typeOfVariable ;
+ error(error.getLabel(), error.getErrorSource(), error.getStructuralFeature(), INSIGNIFICANT_INDEX) ;
+ }
+ else { // 4.b. the domain value "expression" must be type-compatible with the variable and must be a collection
+ TypeExpression typeOfDomain = new TypeUtils().getTypeOfExpression(loopVariable.getExpression()) ;
+ if (typeOfDomain.getTypeFacade() instanceof ErrorTypeFacade) {
+ ErrorTypeFacade error = (ErrorTypeFacade)typeOfDomain.getTypeFacade() ;
+ error (error.getLabel(), error.getErrorSource(), error.getStructuralFeature(), INSIGNIFICANT_INDEX) ;
+ }
+ else {
+ int upperBound = typeOfDomain.getMultiplicity().getUpperBound() ;
+ if (! (upperBound > 1 || upperBound == -1)) {
+ String errorMessage = "Invalid upper bound multiplicity (" + upperBound + "). A collection is expected." ;
+ error(errorMessage, loopVariable, AlfPackage.eINSTANCE.getLoopVariableDefinition_Expression(), INSIGNIFICANT_INDEX) ;
+ }
+ if (typeOfVariable.isCompatibleWithMe(typeOfDomain.getTypeFacade()) == 0) {
+ String errorMessage = "Cannot convert from " + typeOfDomain.getTypeFacade().getLabel() + " to " + typeOfVariable.getLabel() ;
+ error(errorMessage, loopVariable, AlfPackage.eINSTANCE.getLoopVariableDefinition_Type(), INSIGNIFICANT_INDEX) ;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * @param statement
+ *
+ * Checks the following rule:
+ * 1. That a return value is actually expected from the context of the ALF specification
+ * 2. If a return value is expected, the returned value must be type/multiplicity compatible
+ * 3. There must be no statement in the containing statement sequence after the return statement.
+ */
+ @Check
+ public void checkReturnStatement(ReturnStatement statement) {
+ // 1. Checks that a return value is actually expected from the context of the ALF specification
+ boolean returnStatementExpected = AlfScopeProvider.scopingTool.isAReturnStatementExpected(statement) ;
+ if (returnStatementExpected == false) {
+ String errorMessage = "No return statement expected" ;
+ error (errorMessage, AlfPackage.eINSTANCE.getReturnStatement_Expression()) ;
+ }
+ else {
+ // 2. If a return value is expected, the returned value must be type/multiplicity compatible
+ TypeExpression expectedReturnType = AlfScopeProvider.scopingTool.getExpectedReturnType(statement) ;
+ TypeExpression actualReturnType = new TypeUtils().getTypeOfExpression(statement.getExpression()) ;
+ if (actualReturnType.getTypeFacade() instanceof ErrorTypeFacade) {
+ ErrorTypeFacade error = (ErrorTypeFacade)actualReturnType.getTypeFacade() ;
+ error(error.getLabel(), error.getErrorSource(), error.getStructuralFeature(), INSIGNIFICANT_INDEX) ;
+ }
+ else {
+ if (expectedReturnType.isCompatibleWithMe(actualReturnType) == 0) {
+ String errorMessage = "An expression of type " + expectedReturnType.getLabel() + " is expected. Found an expression of type " + actualReturnType.getLabel() ;
+ error (errorMessage, AlfPackage.eINSTANCE.getReturnStatement_Expression()) ;
+ }
+ }
+ }
+ // 3. There must be no statement (in the containing statement sequence) after the return statement.
+ EObject cddStatementSequence = statement.eContainer() ;
+ DocumentedStatement contextDocumentedStatement = null ;
+ while (cddStatementSequence != null &&
+ ! ((cddStatementSequence instanceof StatementSequence) || (cddStatementSequence instanceof NonEmptyStatementSequence))) {
+ if (contextDocumentedStatement == null && cddStatementSequence instanceof DocumentedStatement)
+ contextDocumentedStatement = (DocumentedStatement)cddStatementSequence ;
+ cddStatementSequence = cddStatementSequence.eContainer() ;
+ }
+ if (cddStatementSequence != null && contextDocumentedStatement != null) {
+ int statementIndex = 0 ;
+ int numberOfStatements = 0 ;
+ if (cddStatementSequence instanceof StatementSequence) {
+ statementIndex = ((StatementSequence)cddStatementSequence).getStatements().indexOf(contextDocumentedStatement) ;
+ numberOfStatements = ((StatementSequence)cddStatementSequence).getStatements().size() ;
+ }
+ else {
+ statementIndex = ((NonEmptyStatementSequence)cddStatementSequence).getStatement().indexOf(contextDocumentedStatement) ;
+ numberOfStatements = ((NonEmptyStatementSequence)cddStatementSequence).getStatement().size() ;
+ }
+ String errorMessage = "The statement cannot be reached" ;
+ for (int i = statementIndex + 1 ; i < numberOfStatements ; i++) {
+ DocumentedStatement current = null ;
+ if (cddStatementSequence instanceof StatementSequence)
+ current = ((StatementSequence)cddStatementSequence).getStatements().get(i) ;
+ else
+ current = ((NonEmptyStatementSequence)cddStatementSequence).getStatement().get(i) ;
+ error(errorMessage, current, AlfPackage.eINSTANCE.getDocumentedStatement_Statement(), INSIGNIFICANT_INDEX) ;
+ }
+ }
+ }
+
+
+ /**
+ * @param statement
+ *
+ * Checks the following rules:
+ * 1. Checks that the context classifier is active
+ * 2. Each AcceptClause.name (if specified) must be available.
+ * 3. There must be a Reception for each Signal identified in each AcceptClause.qualifiedNameList
+ * 4. Each Signal must be used only once
+ */
+ @Check
+ public void checkAcceptStatement(AcceptStatement statement) {
+ //1. Checks that the context classifier is active
+ if (! (contextClassifier instanceof Class) || !((Class)contextClassifier).isActive()) {
+ error("The context classifier must be an active class", AlfPackage.eINSTANCE.getAcceptStatement_Clause()) ;
+ }
+
+ //2. Each AcceptClause.name (if specified) must be available.
+ AlfPartialScope vppScope = AlfScopeProvider.scopingTool.getVisibleVariablesOrParametersOrProperties(statement) ;
+ if (statement.getClause().getName() != null ) {
+ List<EObject> visibleElements = vppScope.resolveByName(statement.getClause().getName()) ;
+ if (! visibleElements.isEmpty() && vppScope.getScopingLevel(visibleElements.get(0)) == 0) {
+ String errorMessage = "Local name " + statement.getClause().getName() + " is not available" ;
+ error(errorMessage, statement.getClause(), AlfPackage.eINSTANCE.getAcceptClause_Name(), INSIGNIFICANT_INDEX) ;
+ }
+ }
+ if (statement.getCompoundAccept() != null) {
+ for (AcceptBlock block : statement.getCompoundAccept().getAcceptBlock()) {
+ if (block.getClause() != null && block.getClause().getName() != null) {
+ List<EObject> visibleElements = vppScope.resolveByName(block.getClause().getName()) ;
+ if (! visibleElements.isEmpty() && vppScope.getScopingLevel(visibleElements.get(0)) == 0) {
+ String errorMessage = "Local name " + block.getClause().getName() + " is not available" ;
+ error(errorMessage, block.getClause(), AlfPackage.eINSTANCE.getAcceptClause_Name(), INSIGNIFICANT_INDEX) ;
+ }
+ }
+ }
+ }
+
+ //3. There must be a Reception for each Signal identified in each AcceptClause.qualifiedNameList
+ AlfPartialScope signalReceptionScope = AlfScopeProvider.scopingTool.getVisibleSignalReceptions(statement) ;
+ List<TypeFacade> signalReceptionTypeFacade = new ArrayList<TypeFacade>() ;
+ for (List<EObject> l : signalReceptionScope.getScopeDetails()) {
+ for (EObject m : l) {
+ signalReceptionTypeFacade.add(TypeFacadeFactory.eInstance.createTypeFacade(m)) ;
+ }
+ }
+ Map<Classifier, List<QualifiedNameWithBinding>> allReferencedSignals= new HashMap<Classifier, List<QualifiedNameWithBinding>>() ;
+ if (statement.getClause().getQualifiedNameList() != null) {
+ QualifiedNameList list = statement.getClause().getQualifiedNameList() ;
+ int index = 0 ;
+ for (QualifiedNameWithBinding qualifiedName : list.getQualifiedName()) {
+ TypeFacade type = TypeFacadeFactory.eInstance.createVoidFacade(qualifiedName) ;
+ if (type instanceof ErrorTypeFacade) {
+ ErrorTypeFacade error = (ErrorTypeFacade)type ;
+ error(error.getLabel(), error.getErrorSource(), error.getStructuralFeature(), INSIGNIFICANT_INDEX) ;
+ }
+ else {
+ Classifier actualReferencedClassifier = type.extractActualType() ;
+ List<QualifiedNameWithBinding> existingReferences = allReferencedSignals.get(actualReferencedClassifier) ;
+ if (existingReferences == null) {
+ existingReferences = new ArrayList<QualifiedNameWithBinding>() ;
+
+ }
+ existingReferences.add(qualifiedName) ;
+ allReferencedSignals.put(actualReferencedClassifier, existingReferences) ;
+ boolean found = false ;
+ Iterator<TypeFacade> i = signalReceptionTypeFacade.iterator() ;
+ while (i.hasNext() && !found) {
+ TypeFacade current = i.next() ;
+ if (current.isCompatibleWithMe(type)!=0)
+ found = true ;
+ }
+ if (!found) {
+ String errorMessage = "The context classifier does not define any reception for " + type.getLabel() ;
+ error(errorMessage, list, AlfPackage.eINSTANCE.getQualifiedNameList_QualifiedName(), index) ;
+ }
+ }
+ index ++ ;
+ }
+ }
+
+ //4. Each Signal must be used only once
+ for (Classifier key : allReferencedSignals.keySet()) {
+ List<QualifiedNameWithBinding> referencesToKey = allReferencedSignals.get(key) ;
+ if (referencesToKey.size()>1) {
+ for (QualifiedNameWithBinding qualifiedName : referencesToKey) {
+ String errorMessage = "No signal may be named in more than one accept clause" ;
+ QualifiedNameList containingList = (QualifiedNameList)qualifiedName.eContainer() ;
+ int index = containingList.getQualifiedName().indexOf(qualifiedName) ;
+ error(errorMessage, containingList, AlfPackage.eINSTANCE.getQualifiedNameList_QualifiedName(), index - 1 ) ;
+ }
+ }
+ }
+ }
+
+
+ /**
+ * @param statement
+ *
+ * Checks the following rules:
+ * 1. The static type of the target expression must be a Class
+ * and it must evaluate to a single object
+ * 2. All qualified names in from or to lists must resolve to classes
+ * 3. All the classes in the from and to lists must be subclasses of the static type of the target expression
+ * 4. None of them may have a common superclass of the static type of the target expression (i.e., disjoint subclasses)
+ *
+ */
+ @Check
+ public void checkClassifyStatement(ClassifyStatement statement) {
+ // 1. The static type of the target expression must be a Class...
+ Classifier actualStaticType = null ;
+ TypeExpression staticType = new TypeUtils().getTypeOfExpression(statement.getExpression()) ;
+ boolean errorFound = false ;
+ if (staticType.getTypeFacade() instanceof ErrorTypeFacade) {
+ ErrorTypeFacade error = (ErrorTypeFacade)staticType.getTypeFacade() ;
+ error(error.getLabel(), error.getErrorSource(), error.getStructuralFeature(), INSIGNIFICANT_INDEX) ;
+ errorFound = true ;
+ }
+ else {
+ actualStaticType = staticType.getTypeFacade().extractActualType() ;
+ }
+ if (actualStaticType == null || !(actualStaticType instanceof Class)) {
+ String errorMessage = "The type of the target expression must be a class" ;
+ error(errorMessage, AlfPackage.eINSTANCE.getClassifyStatement_Expression()) ;
+ errorFound = true ;
+ }
+ else {
+ //... and it must evaluate to a single object
+ int upperBound = staticType.getMultiplicityFacade().getUpperBound() ;
+ if (upperBound > 1 || upperBound == -1) {
+ String errorMessage = "The target expression must evaluate to a single object" ;
+ error(errorMessage, AlfPackage.eINSTANCE.getClassifyStatement_Expression()) ;
+ errorFound = true ;
+ }
+ }
+
+ // 2. All qualified names in from or to lists must resolve to classes
+ ClassificationClause classificationClause = statement.getClause() ;
+ List<Class> fromClasses = new ArrayList<Class>() ;
+ List<Class> toClasses = new ArrayList<Class>() ;
+ if (classificationClause == null)
+ return ;
+ boolean isAReclassifyFromAll = false ;
+ if (classificationClause.getClassifyFromClause() == null &&
+ classificationClause.getClassifyToClause() == null &&
+ classificationClause.getReclassyAllClause() == null)
+ return ;
+ if (classificationClause.getReclassyAllClause() != null)
+ // nothing to do with the from list
+ isAReclassifyFromAll = true ;
+ if (classificationClause.getClassifyFromClause() != null) {
+ ClassificationFromClause fromClause = classificationClause.getClassifyFromClause() ;
+ for (QualifiedNameWithBinding name : fromClause.getQualifiedNameList().getQualifiedName()) {
+ TypeFacade type = TypeFacadeFactory.eInstance.createVoidFacade(name) ;
+ if (type instanceof ErrorTypeFacade) {
+ ErrorTypeFacade error = (ErrorTypeFacade)type ;
+ error(error.getLabel(), error.getErrorSource(), error.getStructuralFeature(), INSIGNIFICANT_INDEX) ;
+ errorFound = true ;
+ }
+ else {
+ Classifier actualType = type.extractActualType(type) ;
+ if (actualType == null || !(actualType instanceof Class)) {
+ String errorMessage = "All types in the 'from' list must be Classes" ;
+ int index = fromClause.getQualifiedNameList().getQualifiedName().indexOf(name) ;
+ error(errorMessage,
+ fromClause.getQualifiedNameList(),
+ AlfPackage.eINSTANCE.getQualifiedNameList_QualifiedName(),
+ index) ;
+ }
+ else {
+ fromClasses.add((Class)actualType) ;
+ }
+ }
+ }
+ }
+ if (classificationClause.getClassifyToClause() != null) {
+ ClassificationToClause toClause = classificationClause.getClassifyToClause() ;
+ for (QualifiedNameWithBinding name : toClause.getQualifiedNameList().getQualifiedName()) {
+ TypeFacade type = TypeFacadeFactory.eInstance.createVoidFacade(name) ;
+ if (type instanceof ErrorTypeFacade) {
+ ErrorTypeFacade error = (ErrorTypeFacade)type ;
+ error(error.getLabel(), error.getErrorSource(), error.getStructuralFeature(), INSIGNIFICANT_INDEX) ;
+ errorFound = true ;
+ }
+ else {
+ Classifier actualType = type.extractActualType(type) ;
+ if (actualType == null || !(actualType instanceof Class)) {
+ String errorMessage = "All types in the 'from' list must be Classes" ;
+ int index = toClause.getQualifiedNameList().getQualifiedName().indexOf(name) ;
+ error(errorMessage,
+ toClause.getQualifiedNameList(),
+ AlfPackage.eINSTANCE.getQualifiedNameList_QualifiedName(),
+ index) ;
+ }
+ else {
+ toClasses.add((Class)actualType) ;
+ }
+ }
+ }
+ }
+
+
+ // 3. All the classes in the from and to lists must be subclasses of the static type of the target expression
+ if (errorFound)
+ return ; // not necessary to check the remaining
+ List<Classifier> fromGenerals = new ArrayList<Classifier>() ;
+ List<Classifier> toGenerals = new ArrayList<Classifier>() ;
+ if (actualStaticType != null && !errorFound) {
+ String errorMessage = "All classes in the 'from' list must be subclasses of the target expression type" ;
+ int index = 0 ;
+ for (Class c : fromClasses) {
+ if (! c.allParents().contains(actualStaticType)) {
+ error(errorMessage,
+ classificationClause.getClassifyFromClause(),
+ AlfPackage.eINSTANCE.getClassificationFromClause_QualifiedNameList(),
+ index) ;
+ errorFound = true ;
+ }
+ fromGenerals.addAll(c.allParents()) ;
+ index++ ;
+ }
+ errorMessage = "All classes in the 'to' list must be subclasses of the target expression type" ;
+ index = 0 ;
+ for (Class c : toClasses) {
+ if (! c.allParents().contains(actualStaticType)) {
+ error(errorMessage,
+ classificationClause.getClassifyToClause(),
+ AlfPackage.eINSTANCE.getClassificationToClause_QualifiedNameList(),
+ index) ;
+ errorFound = true ;
+ }
+ index++ ;
+ toGenerals.addAll(c.allParents()) ;
+ }
+ }
+
+ // 4. None of them may have a common superclass of the static type of the target expression (i.e., disjoint subclasses)
+ if (errorFound)
+ return ; // not necessary to go further
+ fromGenerals.retainAll(toGenerals) ;
+ for (Classifier c : fromGenerals) {
+ if (c.allParents().contains(actualStaticType)) {
+ String errorMessage = "Superclasses of classes in 'to' and 'from' lists must be disjoint subclasses of the target expression type" ;
+ error(errorMessage, AlfPackage.eINSTANCE.getClassifyStatement_Clause()) ;
+ return ;
+ }
+ }
+
+ }
+
+ /**
+ * @param statement
+ * Checks the following rules:
+ * 1. The statement must respect construction rules of:
+ * 1.a Invocation, or
+ * 1.b Variable declaration, or
+ * 1.c Assignment expression
+ * 2. According to the construction rule, delegate to the appropriate check method
+ */
+ @Check
+ public void checkInvocationOrAssignmentOrDeclarationStatement(InvocationOrAssignementOrDeclarationStatement statement) {
+ //1. The statement must respect construction rules of:
+ // 1.b Variable declaration
+ if (statement.getVariableDeclarationCompletion() != null) {
+ checkVariableDeclarationStatement(statement) ;
+ }
+ // 1.c Assignment expression
+ else if (statement.getAssignmentCompletion() != null) {
+ checkAssignmentExpression(statement) ;
+ }
+ // 1.a Invocation or prefix or suffix
+ else {
+ checkInvocationOrPrefixOrSuffixStatement(statement) ;
+ }
+ }
+
+ /**
+ * @param statement
+ * Checks the following rules:
+ * 1. typePart_OR_assignedPart_OR_invocationPart must have an invocation completion, or a postfixOp, or a prefixOp
+ * 2. if it is an invocation:
+ * 2.a The name must resolve to a Behavior or an Operation
+ * 2.b Arguments must be type compatibles with the parameters of referenced behavior or operation
+ * 3. if it is a prefixOp:
+ * 3.a the name must resolve to an assignable property, parameter or local variable
+ * 3.b the operator must be available for the type of the nameExpression
+ * 4. if it is a postfixOp:
+ * 4.a the name must resolve to an assignable property, parameter or local variable
+ * 4.b the operator must be available for the type of the nameExpression
+ */
+ private void checkInvocationOrPrefixOrSuffixStatement(InvocationOrAssignementOrDeclarationStatement statement) {
+ // 1. typePart_OR_assignedPart_OR_invocationPart must have an invocation completion, or a postfixOp, or a prefixOp
+ boolean isAnInvocation = statement.getTypePart_OR_assignedPart_OR_invocationPart().getInvocationCompletion() != null ;
+ boolean isAPrefixExpression = statement.getTypePart_OR_assignedPart_OR_invocationPart().getPrefixOp() != null ;
+ boolean isAPostfixExpression = statement.getTypePart_OR_assignedPart_OR_invocationPart().getPostfixOp() != null ;
+ boolean hasASuffix = statement.getTypePart_OR_assignedPart_OR_invocationPart().getSuffix() != null ;
+ int resolvedKindOfExpression = 0 ;
+ resolvedKindOfExpression += isAnInvocation ? 1 : 0 ;
+ resolvedKindOfExpression += isAPrefixExpression ? 1 : 0 ;
+ resolvedKindOfExpression += isAPostfixExpression ? 1 : 0 ;
+ resolvedKindOfExpression += hasASuffix ? 1 : 0 ;
+ if ((resolvedKindOfExpression > 1 && !hasASuffix) || resolvedKindOfExpression==0) {
+ String errorMessage = "An invocation expression, OR a prefix expression, OR a postfix expression is expected." ;
+ error(errorMessage, AlfPackage.eINSTANCE.getInvocationOrAssignementOrDeclarationStatement_TypePart_OR_assignedPart_OR_invocationPart()) ;
+ return ;
+ }
+
+ //2. if it is an invocation:
+ if (isAnInvocation || hasASuffix) {
+ // 2.a The name must resolve to a Variable, a Parameter, a Property, a Behavior or an Operation (TODO: can also be an association)
+ NameExpression varOrParamOrPropOrOpOrBehav = statement.getTypePart_OR_assignedPart_OR_invocationPart() ;
+ TypeExpression typeOfPrefix = new TypeUtils().getTypeOfNameExpression(varOrParamOrPropOrOpOrBehav) ;
+ if (typeOfPrefix.getTypeFacade() != null && typeOfPrefix.getTypeFacade() instanceof ErrorTypeFacade) {
+ ErrorTypeFacade error = (ErrorTypeFacade)typeOfPrefix.getTypeFacade() ;
+ error(error.getLabel(), error.getErrorSource(), error.getStructuralFeature(), INSIGNIFICANT_INDEX) ;
+ return ;
+ }
+ if (hasASuffix) {
+ // The last suffix must be an invocation
+ SuffixExpression suffix = statement.getTypePart_OR_assignedPart_OR_invocationPart().getSuffix() ;
+ SuffixExpression lastSuffix = suffix ;
+ boolean suffixHasASuffix = false ;
+ do {
+ suffixHasASuffix = false ;
+ for (Iterator<EObject> content = suffix.eContents().iterator() ; content.hasNext() && !suffixHasASuffix ; ) {
+ EObject cddSuffix = content.next() ;
+ if (cddSuffix instanceof SuffixExpression) {
+ lastSuffix = (SuffixExpression)cddSuffix ;
+ suffixHasASuffix = true ;
+ }
+ }
+ if (suffixHasASuffix)
+ suffix = lastSuffix ;
+ } while (suffixHasASuffix) ;
+ if (lastSuffix instanceof PropertyCallExpression) {
+ error("An invocation is expected",
+ AlfPackage.eINSTANCE.getInvocationOrAssignementOrDeclarationStatement_TypePart_OR_assignedPart_OR_invocationPart()) ;
+ return ;
+ }
+ }
+ //}
+ }
+
+ // 3. if it is a prefixOp: or // 4. if it is a postfixOp:
+ else if (isAPrefixExpression || isAPostfixExpression) {
+ TypeExpression typeOfAssignedElement = new TypeUtils().getTypeOfNameExpression(statement.getTypePart_OR_assignedPart_OR_invocationPart()) ;
+ if (typeOfAssignedElement.getTypeFacade() instanceof ErrorTypeFacade) {
+ ErrorTypeFacade error = (ErrorTypeFacade)typeOfAssignedElement.getTypeFacade() ;
+ error(error.getLabel(), error.getErrorSource(), error.getStructuralFeature(), INSIGNIFICANT_INDEX) ;
+ return ;
+ }
+ //1. The assigned part must be assignable, i.e.:
+ if (statement.getTypePart_OR_assignedPart_OR_invocationPart().getPath() != null ||
+ (statement.getTypePart_OR_assignedPart_OR_invocationPart().getInvocationCompletion() != null
+ && statement.getTypePart_OR_assignedPart_OR_invocationPart().getSuffix() == null) ||
+ (statement.getTypePart_OR_assignedPart_OR_invocationPart().getSequenceConstructionCompletion() != null) ||
+ (statement.getTypePart_OR_assignedPart_OR_invocationPart().getId()==null) ||
+ (statement.getTypePart_OR_assignedPart_OR_invocationPart().getId().length() == 0)) {
+ error("The assigned part must resolve to an assignable property, parameter or local variable",
+ AlfPackage.eINSTANCE.getInvocationOrAssignementOrDeclarationStatement_TypePart_OR_assignedPart_OR_invocationPart()) ;
+ return ;
+ }
+ //1.a It must resolve to a property, or
+ //1.b It must resolve to a local variable, or
+ //1.c It must resolve to an out or inout parameter
+ if (statement.getTypePart_OR_assignedPart_OR_invocationPart().getSuffix() == null) {
+ AlfPartialScope varParamPropScope = AlfScopeProvider.scopingTool.getVisibleVariablesOrParametersOrProperties(statement) ;
+ EObject resolved = varParamPropScope.resolveByName(statement.getTypePart_OR_assignedPart_OR_invocationPart().getId()).get(0) ;
+ String potentialAssignmentError = AssignmentPolicy.eInstance.isAssignable(resolved) ;
+ if (!(potentialAssignmentError.length() == 0)) {
+ error(potentialAssignmentError, AlfPackage.eINSTANCE.getInvocationOrAssignementOrDeclarationStatement_TypePart_OR_assignedPart_OR_invocationPart()) ;
+ return ;
+ }
+ }
+ else {// a suffix is specified
+ // The last suffix must be a property call expression
+ SuffixExpression suffix = statement.getTypePart_OR_assignedPart_OR_invocationPart().getSuffix() ;
+ SuffixExpression lastSuffix = suffix ;
+ boolean suffixHasASuffix = false ;
+ do {
+ suffixHasASuffix = false ;
+ for (Iterator<EObject> content = suffix.eContents().iterator() ; content.hasNext() && !suffixHasASuffix ; ) {
+ EObject cddSuffix = content.next() ;
+ if (cddSuffix instanceof SuffixExpression) {
+ lastSuffix = (SuffixExpression)cddSuffix ;
+ suffixHasASuffix = true ;
+ }
+ }
+ if (suffixHasASuffix)
+ suffix = lastSuffix ;
+ } while (suffixHasASuffix) ;
+ if (! (lastSuffix instanceof PropertyCallExpression)) {
+ error("The assigned part must resolve to an assignable property, parameter or local variable",
+ AlfPackage.eINSTANCE.getInvocationOrAssignementOrDeclarationStatement_TypePart_OR_assignedPart_OR_invocationPart()) ;
+ return ;
+ }
+ }
+
+ TypeExpression integerExpression = TypeExpressionFactory.eInstance.createTypeExpression(TypeUtils._integer) ;
+ TypeExpression naturalExpression = TypeExpressionFactory.eInstance.createTypeExpression(TypeUtils._natural) ;
+ TypeExpression unlimitedExpression = TypeExpressionFactory.eInstance.createTypeExpression(TypeUtils._unlimited) ;
+ String operator = isAPrefixExpression ? statement.getTypePart_OR_assignedPart_OR_invocationPart().getPrefixOp() : statement.getTypePart_OR_assignedPart_OR_invocationPart().getPostfixOp() ;
+ EStructuralFeature feature = isAPrefixExpression ? AlfPackage.eINSTANCE.getNameExpression_PrefixOp() : AlfPackage.eINSTANCE.getNameExpression_PostfixOp() ;
+ if (! (integerExpression.isCompatibleWithMe(typeOfAssignedElement)!= 0 ||
+ naturalExpression.isCompatibleWithMe(typeOfAssignedElement)!= 0 ||
+ unlimitedExpression.isCompatibleWithMe(typeOfAssignedElement)!= 0)) {
+ error("Operator " + operator + " does not apply to " + typeOfAssignedElement.getLabel() ,
+ statement.getTypePart_OR_assignedPart_OR_invocationPart(),
+ feature,
+ INSIGNIFICANT_INDEX) ;
+ }
+ }
+ }
+
+
+ /**
+ * @param statement
+ *
+ * Checks the following rule:
+ * 1. typePart_OR_assignedPart_OR_invocationPart must resolve to a type
+ * 2. the variable name must be available
+ * 3. initValue must respect the following sub-rules:
+ * 3.a the type of the expression must be compatible with the type of the variable
+ * 3.b the assignment operator must be '='
+ */
+ private void checkVariableDeclarationStatement(InvocationOrAssignementOrDeclarationStatement statement) {
+ // 1. typePart_OR_assignedPart_OR_invocationPart must resolve to a type
+ VoidFacade actualVariableType = null ;
+ TypeFacade cddVariableType = TypeFacadeFactory.eInstance.createVoidFacade(statement.getTypePart_OR_assignedPart_OR_invocationPart()) ;
+ if (cddVariableType instanceof ErrorTypeFacade) {
+ ErrorTypeFacade error = (ErrorTypeFacade)cddVariableType ;
+ error(error.getLabel(), error.getErrorSource(), error.getStructuralFeature(), INSIGNIFICANT_INDEX) ;
+ }
+ else {
+ actualVariableType = (VoidFacade)cddVariableType ;
+ }
+ VariableDeclarationCompletion declaration = statement.getVariableDeclarationCompletion() ;
+ TypeExpression variableTypeExpression = null ;
+ if (actualVariableType != null) {
+ if (declaration.isMultiplicityIndicator())
+ variableTypeExpression = TypeExpressionFactory.eInstance.createTypeExpression(actualVariableType, 0, -1, false, true) ;
+ else
+ variableTypeExpression = TypeExpressionFactory.eInstance.createTypeExpression(actualVariableType, 1, 1, true, false) ;
+ }
+
+ // 2. the variable name must be available
+ AlfPartialScope vppScope = AlfScopeProvider.scopingTool.getVisibleVariablesOrParametersOrProperties(statement) ;
+ if (declaration.getVariableName() != null ) {
+ List<EObject> visibleElements = vppScope.resolveByName(declaration.getVariableName()) ;
+ if (! visibleElements.isEmpty() && vppScope.getScopingLevel(visibleElements.get(0)) == 0) {
+ String errorMessage = "Local name " + declaration.getVariableName() + " is not available" ;
+ error(errorMessage, declaration, AlfPackage.eINSTANCE.getVariableDeclarationCompletion_VariableName(), INSIGNIFICANT_INDEX) ;
+ }
+ }
+
+ //3. initValue must respect the following sub-rules:
+ if (declaration.getInitValue() != null && declaration.getInitValue().getRightHandSide() != null) {
+ TypeExpression typeOfInit = new TypeUtils().getTypeOfSequenceElement(declaration.getInitValue().getRightHandSide()) ;
+ if (typeOfInit == null) {
+ String errorMessage = "Init value is missing" ;
+ error(errorMessage, AlfPackage.eINSTANCE.getInvocationOrAssignementOrDeclarationStatement_VariableDeclarationCompletion()) ;
+ return ;
+ }
+ if (typeOfInit.getTypeFacade() instanceof ErrorTypeFacade) {
+ ErrorTypeFacade error = (ErrorTypeFacade)typeOfInit.getTypeFacade() ;
+ error(error.getLabel(), error.getErrorSource(), error.getStructuralFeature(), INSIGNIFICANT_INDEX) ;
+ return ;
+ }
+ if (variableTypeExpression != null) {
+ // 3.a the type of the expression must be compatible with the type of the variable
+ if (variableTypeExpression.isCompatibleWithMe(typeOfInit) == 0) {
+ String errorMessage = "Expecting an expression of type " + variableTypeExpression.getLabel() +
+ ". Found an expression of type " + typeOfInit.getLabel() + "." ;
+ error(errorMessage,
+ declaration.getInitValue(),
+ AlfPackage.eINSTANCE.getAssignmentCompletion_RightHandSide(),
+ INSIGNIFICANT_INDEX) ;
+ }
+ // 3.b the assignment operator must be '='
+ else if (declaration.getInitValue().getOp() != AssignmentOperator.ASSIGN) {
+ String errorMessage = "Expecting assignment operator '='" ;
+ error(errorMessage,
+ declaration.getInitValue(),
+ AlfPackage.eINSTANCE.getAssignmentCompletion_Op(),
+ INSIGNIFICANT_INDEX) ;
+ }
+ }
+ }
+ }
+
+
+ /**
+ *
+ * @param statement
+ *
+ * Checks the following rules:
+ * 1. The left part must be assignable, i.e.:
+ * 1.a It must resolve to a property, or
+ * 1.b It must resolve to a local variable, or
+ * 1.c It must resolve to an out or inout parameter
+ * 1.d It resolves to an association end TODO: Not supported yet
+ * 2. If the assignment operator is "=", the right part must be type compatible with the left part
+ * 3. If the assignment operator is not "=" (e.g. +=, -=, etc.), there must be a matching signature for this operator
+ */
+ private void checkAssignmentExpression(InvocationOrAssignementOrDeclarationStatement statement) {
+ boolean errorInExpressions = false ;
+ // first infer type of the left part
+ TypeExpression typeOfLeft = new TypeUtils().getTypeOfNameExpression(statement.getTypePart_OR_assignedPart_OR_invocationPart()) ;
+ if (typeOfLeft.getTypeFacade() == null || typeOfLeft.getTypeFacade() instanceof ErrorTypeFacade) {
+ ErrorTypeFacade error = (ErrorTypeFacade)typeOfLeft.getTypeFacade() ;
+ error(error.getLabel(), error.getErrorSource(), error.getStructuralFeature(), INSIGNIFICANT_INDEX) ;
+ errorInExpressions = true ;
+ }
+ // then infer type of the right part
+ TypeExpression typeOfRight = null ;
+ if (statement.getAssignmentCompletion().getRightHandSide() != null) {
+ typeOfRight = new TypeUtils().getTypeOfSequenceElement(statement.getAssignmentCompletion().getRightHandSide()) ;
+ if (typeOfRight == null || typeOfRight.getTypeFacade() instanceof ErrorTypeFacade) {
+ ErrorTypeFacade error = (ErrorTypeFacade)typeOfRight.getTypeFacade() ;
+ error(error.getLabel(), error.getErrorSource(), error.getStructuralFeature(), INSIGNIFICANT_INDEX) ;
+ errorInExpressions = true ;
+ }
+ }
+ if (errorInExpressions) // not necessary to validate further
+ return ;
+
+ //1. The left part must be assignable, i.e.:
+ if (statement.getTypePart_OR_assignedPart_OR_invocationPart().getPath() != null ||
+ (statement.getTypePart_OR_assignedPart_OR_invocationPart().getInvocationCompletion() != null
+ && statement.getTypePart_OR_assignedPart_OR_invocationPart().getSuffix() == null) ||
+ (statement.getTypePart_OR_assignedPart_OR_invocationPart().getPrefixOp()!=null) ||
+ (statement.getTypePart_OR_assignedPart_OR_invocationPart().getPostfixOp()!=null) ||
+ (statement.getTypePart_OR_assignedPart_OR_invocationPart().getSequenceConstructionCompletion() != null)) {
+ if (statement.getTypePart_OR_assignedPart_OR_invocationPart().getSequenceConstructionCompletion() != null) {
+ if (statement.getTypePart_OR_assignedPart_OR_invocationPart().getSequenceConstructionCompletion().getAccessCompletion() != null)
+ return ;
+ }
+ error("The left part of the assignment must resolve to an assignable property, parameter or local variable",
+ AlfPackage.eINSTANCE.getInvocationOrAssignementOrDeclarationStatement_TypePart_OR_assignedPart_OR_invocationPart()) ;
+ // NOTE: this an approximation. Cf. => rule 1.d It resolves to an association end TODO: Not supported yet
+ return ;
+ }
+ //1.a It must resolve to a property, or
+ //1.b It must resolve to a local variable, or
+ //1.c It must resolve to an out or inout parameter
+ if (statement.getTypePart_OR_assignedPart_OR_invocationPart().getSuffix() == null) {
+ AlfPartialScope varParamPropScope = AlfScopeProvider.scopingTool.getVisibleVariablesOrParametersOrProperties(statement) ;
+ EObject resolved = varParamPropScope.resolveByName(statement.getTypePart_OR_assignedPart_OR_invocationPart().getId()).get(0) ;
+ String potentialAssignmentError = AssignmentPolicy.eInstance.isAssignable(resolved) ;
+ if (!(potentialAssignmentError.length() == 0)) {
+ error(potentialAssignmentError, AlfPackage.eINSTANCE.getInvocationOrAssignementOrDeclarationStatement_TypePart_OR_assignedPart_OR_invocationPart()) ;
+ }
+ }
+ else {// a suffix is specified
+ // The last suffix must be a property call expression
+ SuffixExpression suffix = statement.getTypePart_OR_assignedPart_OR_invocationPart().getSuffix() ;
+ SuffixExpression lastSuffix = suffix ;
+ boolean suffixHasASuffix = false ;
+ do {
+ suffixHasASuffix = false ;
+ for (Iterator<EObject> content = suffix.eContents().iterator() ; content.hasNext() && !suffixHasASuffix ; ) {
+ EObject cddSuffix = content.next() ;
+ if (cddSuffix instanceof SuffixExpression) {
+ lastSuffix = (SuffixExpression)cddSuffix ;
+ suffixHasASuffix = true ;
+ }
+ }
+ if (suffixHasASuffix)
+ suffix = lastSuffix ;
+ } while (suffixHasASuffix) ;
+ if (! (lastSuffix instanceof PropertyCallExpression)) {
+ error("The left part of the assignment must resolve to an assignable property, parameter or local variable",
+ AlfPackage.eINSTANCE.getInvocationOrAssignementOrDeclarationStatement_TypePart_OR_assignedPart_OR_invocationPart()) ;
+ return ;
+ }
+ }
+
+ // 2. If the assignment operator is "=", the right part must be type compatible with the left part
+ if (statement.getAssignmentCompletion().getOp() == AssignmentOperator.ASSIGN) {
+ if (typeOfRight.getTypeFacade() == TypeUtils._undefined) {
+ String errorMessage = "Right part is untyped" ;
+ error(errorMessage, AlfPackage.eINSTANCE.getInvocationOrAssignementOrDeclarationStatement_AssignmentCompletion()) ;
+ }
+ else if (typeOfLeft.isCompatibleWithMe(typeOfRight) == 0) {
+ String errorMessage = "Cannot assign " + typeOfRight.getLabel() + " to " + typeOfLeft.getLabel() ;
+ error(errorMessage, AlfPackage.eINSTANCE.getInvocationOrAssignementOrDeclarationStatement_AssignmentCompletion()) ;
+ }
+ }
+ else { // 3. If the assignment operator is not "=" (e.g. +=, -=, etc.), there must be a matching signature for this operator
+ String assignmentOp = assignmentOpToString(statement.getAssignmentCompletion().getOp()) ;
+ List<SignatureFacade> candidates = AlfJavaValidator.predefinedBehaviorsAndTypes.getSignatures(assignmentOp) ;
+ List<TypeExpression> arguments = new ArrayList<TypeExpression>() ;
+ arguments.add(typeOfLeft) ;
+ arguments.add(typeOfRight) ;
+ List<SignatureFacade> matchingSignatures = SignatureFacade.findNearestSignature(arguments, candidates) ;
+ if (matchingSignatures.isEmpty()) {
+ String errorMessage = "Operator " + assignmentOp + " does not apply to arguments (" ;
+ boolean first = true ;
+ for (TypeExpression argType : arguments) {
+ if (!first)
+ errorMessage += ", " ;
+ else
+ first = false ;
+ errorMessage += argType.getLabel() ;
+ }
+ errorMessage += ")" ;
+ error(errorMessage, AlfPackage.eINSTANCE.getInvocationOrAssignementOrDeclarationStatement_AssignmentCompletion()) ;
+ }
+ }
+ }
+
+ /**
+ * @param statement
+ *
+ * Checks the following rule:
+ * 1. The associated SuperInvocationExpression must be valid
+ */
+ @Check
+ public void checkSuperInvocationStatement(SuperInvocationStatement statement) {
+ TypeExpression typeOfSuperInvocationExp = new TypeUtils().getTypeOfSuperInvocationExpression(statement.get_super()) ;
+ if (typeOfSuperInvocationExp.getTypeFacade() instanceof ErrorTypeFacade) {
+ ErrorTypeFacade error = (ErrorTypeFacade)typeOfSuperInvocationExp.getTypeFacade() ;
+ error(error.getLabel(), error.getErrorSource(), error.getStructuralFeature(), INSIGNIFICANT_INDEX) ;
+ return ;
+ }
+ }
+
+ /**
+ * @param statement
+ *
+ * Checks the following rules:
+ * 1. The associated ThisExpression must be valid
+ * 2. If an assignment is specified:
+ * 2.a The left part must resolve to a property call expression
+ * 2.b If the assignment operator is "=", the right part must be type compatible with the left part
+ * 2.c If the assignment operator is not "=" (e.g. +=, -=, etc.), there must be a matching signature for this operator
+ * 3. If no assignment is specified, the suffix must resolve to an invocation
+ */
+ @Check
+ public void checkThisInvocationStatement(ThisInvocationStatement statement) {
+ // 1. The associated ThisExpression must be valid
+ TypeExpression typeOfThisExpression = new TypeUtils().getTypeOfThisExpression(statement.get_this()) ;
+ if (typeOfThisExpression.getTypeFacade() instanceof ErrorTypeFacade) {
+ ErrorTypeFacade error = (ErrorTypeFacade)typeOfThisExpression.getTypeFacade() ;
+ error(error.getLabel(), error.getErrorSource(), error.getStructuralFeature(), INSIGNIFICANT_INDEX) ;
+ // return ;
+ }
+
+ // 2. If an assignment is specified
+ if (statement.getAssignmentCompletion() != null ) {
+ // 2.a The left part must resolve to a property call expression
+ if (statement.get_this().getSuffix() == null) {
+ error("A Property call expression is missing",
+ AlfPackage.eINSTANCE.getThisInvocationStatement__this()) ;
+ //return ;
+ }
+ else {
+ // The last suffix must be an invocation
+ SuffixExpression suffix = statement.get_this().getSuffix() ;
+ SuffixExpression lastSuffix = suffix ;
+ boolean suffixHasASuffix = false ;
+ do {
+ suffixHasASuffix = false ;
+ for (Iterator<EObject> content = suffix.eContents().iterator() ; content.hasNext() && !suffixHasASuffix ; ) {
+ EObject cddSuffix = content.next() ;
+ if (cddSuffix instanceof SuffixExpression) {
+ lastSuffix = (SuffixExpression)cddSuffix ;
+ suffixHasASuffix = true ;
+ }
+ }
+ if (suffixHasASuffix)
+ suffix = lastSuffix ;
+ } while (suffixHasASuffix) ;
+ if (!(lastSuffix instanceof PropertyCallExpression)) {
+ error("The expression should resolve to a Property",
+ AlfPackage.eINSTANCE.getThisInvocationStatement__this()) ;
+ //return ;
+ }
+ }
+
+ TypeExpression typeOfAssignment = null ;
+
+ if (statement.getAssignmentCompletion().getRightHandSide() == null)
+ return ;
+ else {
+ typeOfAssignment = new TypeUtils().getTypeOfSequenceElement(statement.getAssignmentCompletion().getRightHandSide()) ;
+ if (typeOfAssignment.getTypeFacade() instanceof ErrorTypeFacade) {
+ ErrorTypeFacade error = (ErrorTypeFacade)typeOfAssignment.getTypeFacade() ;
+ error(error.getLabel(), error.getErrorSource(), error.getStructuralFeature(), INSIGNIFICANT_INDEX) ;
+ return ;
+ }
+ if (typeOfThisExpression.getTypeFacade() instanceof ErrorTypeFacade)
+ return ;
+ }
+
+ // 2.b If the assignment operator is "=", the right part must be type compatible with the left part
+ if (statement.getAssignmentCompletion().getOp() == AssignmentOperator.ASSIGN) {
+ if (typeOfAssignment.getTypeFacade() == TypeUtils._undefined) {
+ String errorMessage = "Right part is untyped" ;
+ error(errorMessage, AlfPackage.eINSTANCE.getInvocationOrAssignementOrDeclarationStatement_AssignmentCompletion()) ;
+ }
+ else if (typeOfThisExpression.isCompatibleWithMe(typeOfAssignment) == 0) {
+ String errorMessage = "Cannot assign " + typeOfAssignment.getLabel() + " to " + typeOfThisExpression.getLabel() ;
+ error(errorMessage, AlfPackage.eINSTANCE.getThisInvocationStatement_AssignmentCompletion()) ;
+ }
+ }
+ else { // 2.c If the assignment operator is not "=" (e.g. +=, -=, etc.), there must be a matching signature for this operator
+ String assignmentOp = assignmentOpToString(statement.getAssignmentCompletion().getOp()) ;
+ List<SignatureFacade> candidates = AlfJavaValidator.predefinedBehaviorsAndTypes.getSignatures(assignmentOp) ;
+ List<TypeExpression> arguments = new ArrayList<TypeExpression>() ;
+ arguments.add(typeOfThisExpression) ;
+ arguments.add(typeOfAssignment) ;
+ List<SignatureFacade> matchingSignatures = SignatureFacade.findNearestSignature(arguments, candidates) ;
+ if (matchingSignatures.isEmpty()) {
+ String errorMessage = "Operator " + assignmentOp + " does not apply to arguments (" ;
+ boolean first = true ;
+ for (TypeExpression argType : arguments) {
+ if (!first)
+ errorMessage += ", " ;
+ else
+ first = false ;
+ errorMessage += argType.getLabel() ;
+ }
+ errorMessage += ")" ;
+ error(errorMessage, AlfPackage.eINSTANCE.getThisInvocationStatement_AssignmentCompletion()) ;
+ }
+ }
+ }
+ else { // 3. If no assignment is specified, the suffix must resolve to an invocation
+ if (statement.get_this().getSuffix() == null) {
+ error("An invocation expression is expected",
+ AlfPackage.eINSTANCE.getThisInvocationStatement__this()) ;
+ return ;
+ }
+ else {
+ // The last suffix must be an invocation
+ SuffixExpression suffix = statement.get_this().getSuffix() ;
+ SuffixExpression lastSuffix = suffix ;
+ boolean suffixHasASuffix = false ;
+ do {
+ suffixHasASuffix = false ;
+ for (Iterator<EObject> content = suffix.eContents().iterator() ; content.hasNext() && !suffixHasASuffix ; ) {
+ EObject cddSuffix = content.next() ;
+ if (cddSuffix instanceof SuffixExpression) {
+ lastSuffix = (SuffixExpression)cddSuffix ;
+ suffixHasASuffix = true ;
+ }
+ }
+ if (suffixHasASuffix)
+ suffix = lastSuffix ;
+ } while (suffixHasASuffix) ;
+ if (lastSuffix instanceof PropertyCallExpression) {
+ error("An assignment is expected",
+ AlfPackage.eINSTANCE.getThisInvocationStatement__this()) ;
+ return ;
+ }
+ }
+ }
+ }
+
+ /**
+ * @param statement
+ *
+ * Checks the following rule:
+ * 1. The InstanceCreationExpression must be valid
+ * 2. If a suffix is specified, it must resolve to an invocation
+ */
+ @Check
+ public void checkInstanceCreationInvocationStatement(InstanceCreationInvocationStatement statement) {
+ // 1. The InstanceCreationExpression must be valid
+ TypeExpression typeOfInstanceCreationExpression = new TypeUtils().getTypeOfInstanceCreationExpression(statement.get_new()) ;
+ if (typeOfInstanceCreationExpression.getTypeFacade() instanceof ErrorTypeFacade) {
+ ErrorTypeFacade error = (ErrorTypeFacade)typeOfInstanceCreationExpression.getTypeFacade() ;
+ error(error.getLabel(), error.getErrorSource(), error.getStructuralFeature(), INSIGNIFICANT_INDEX) ;
+ return ;
+ }
+
+ // 2. If a suffix is specified, it must resolve to an invocation
+ // The last suffix must be an invocation
+ SuffixExpression suffix = statement.get_new().getSuffix() ;
+ SuffixExpression lastSuffix = suffix ;
+ boolean suffixHasASuffix = false ;
+ do {
+ suffixHasASuffix = false ;
+ for (Iterator<EObject> content = suffix.eContents().iterator() ; content.hasNext() && !suffixHasASuffix ; ) {
+ EObject cddSuffix = content.next() ;
+ if (cddSuffix instanceof SuffixExpression) {
+ lastSuffix = (SuffixExpression)cddSuffix ;
+ suffixHasASuffix = true ;
+ }
+ }
+ if (suffixHasASuffix)
+ suffix = lastSuffix ;
+ } while (suffixHasASuffix) ;
+ if (lastSuffix instanceof PropertyCallExpression) {
+ error("An invocation is expected",
+ AlfPackage.eINSTANCE.getInstanceCreationInvocationStatement__new()) ;
+ return ;
+ }
+ }
+
+ private String assignmentOpToString(AssignmentOperator operator) {
+ switch (operator) {
+ case ANDASSIGN:
+ return "&" ;
+ case DIVASSIGN:
+ return "/" ;
+ case LSHIFTASSIGN:
+ return "<<" ;
+ case MINUSASSIGN:
+ return "-" ;
+ case MODASSIGN:
+ return "%" ;
+ case MULTASSIGN:
+ return "*" ;
+ case ORASSIGN:
+ return "|" ;
+ case PLUSASSIGN:
+ return "+" ;
+ case RSHIFTASSIGN:
+ return ">>" ;
+ case URSHIFTASSIGN:
+ return ">>>" ;
+ case XORASSIGN:
+ return "^" ;
+ case ASSIGN:
+ return "=" ;
+ }
+ return "" ; // not reachable
+ }
+
+ private boolean isANumberType(TypeFacade typeFacade) {
+ return TypeUtils._integer.isCompatibleWithMe(typeFacade) == 3 ||
+ TypeUtils._natural.isCompatibleWithMe(typeFacade) == 3 ||
+ TypeUtils._unlimited.isCompatibleWithMe(typeFacade) == 3 ;
+ }
+
+ @Check
+ public void checkTemplateBindingInNameExpression(UnqualifiedName expression) {
+ if (expression.getTemplateBinding() != null) {
+ String errorMessage = "Template bindings are not supported in name expressions." ; // TODO
+ warning(errorMessage, AlfPackage.eINSTANCE.getUnqualifiedName_TemplateBinding()) ;
+ }
+ }
+
+ @Check
+ public void checkTemplateBindingInQualifiedNameWithBinding(QualifiedNameWithBinding expression) {
+ //if (expression.getBinding() != null) {
+ // String errorMessage = "Template bindings are not supported in this version of the Alf editor." ; // TODO
+ // warning(errorMessage, AlfPackage.eINSTANCE.getQualifiedNameWithBinding_Binding()) ;
+ //}
+ }
+} \ No newline at end of file
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/NamingUtils.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/NamingUtils.java
new file mode 100644
index 00000000000..f273545ce48
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/NamingUtils.java
@@ -0,0 +1,43 @@
+package org.eclipse.papyrus.alf.validation;
+
+public class NamingUtils {
+
+
+ /**
+ * Checks if a string represents a valid Java-name:
+ * - it starts with a letter or "_"
+ * - other characters are either letters, figures or "_"
+ *
+ * @param name
+ * @return true if the name is Java-compliant, false otherwise
+ */
+ public static boolean isJavaCompliant(String name) {
+ if (name.length() == 0)
+ return false ;
+ int firstChar = 0 ;
+ char[] dst = new char[name.length()] ;
+ name.getChars(0, name.length(), dst, firstChar) ;
+ if (dst[0] >= 'a' && dst[0] <= 'z')
+ ;
+ else if (dst [0] >= 'A' && dst[0] <= 'Z')
+ ;
+ else if (dst [0] == '_')
+ ;
+ else
+ return false ;
+ for (int i = 1 ; i<dst.length ; i++) {
+ if (dst[i] >= 'a' && dst[i] <= 'z')
+ ;
+ else if (dst [i] >= 'A' && dst[i] <= 'Z')
+ ;
+ else if (dst [i] >= '0' && dst[i] <= '9')
+ ;
+ else if (dst [i] == '_')
+ ;
+ else
+ return false ;
+ }
+ return true ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/PredefinedBehaviorsAndTypesUtils.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/PredefinedBehaviorsAndTypesUtils.java
new file mode 100644
index 00000000000..33482dd32d9
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/PredefinedBehaviorsAndTypesUtils.java
@@ -0,0 +1,158 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.alf.validation;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.papyrus.alf.validation.typing.SignatureFacade;
+import org.eclipse.papyrus.alf.validation.typing.SignatureFacadeFactory;
+import org.eclipse.papyrus.alf.validation.typing.TypeExpressionFactory;
+import org.eclipse.papyrus.alf.validation.typing.TypeFacade;
+import org.eclipse.papyrus.alf.validation.typing.TypeFacadeFactory;
+import org.eclipse.papyrus.alf.validation.typing.TypeUtils;
+import org.eclipse.uml2.uml.Behavior;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.ElementImport;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageImport;
+
+public class PredefinedBehaviorsAndTypesUtils {
+
+ private Map<String, List<SignatureFacade>> behaviorMap = new HashMap<String, List<SignatureFacade>>();
+ private Map<String, TypeFacade> typeMap = new HashMap<String, TypeFacade>() ;
+ private List<Behavior> behaviorInsertedAsElementImport = new ArrayList<Behavior>() ;
+ private List<Classifier> classifierInsertedAsElementImport = new ArrayList<Classifier>();
+ //private List<Behavior> predefinedCollectionFunctions = new ArrayList<Behavior>() ;
+ //private Map<String, SignatureFacade> predefinedCollectionFunctionsMap = new HashMap<String, SignatureFacade>() ;
+
+ public void init(org.eclipse.uml2.uml.Package library) {
+ behaviorMap = new HashMap<String, List<SignatureFacade>>();
+ typeMap = new HashMap<String, TypeFacade>() ;
+ behaviorInsertedAsElementImport = new ArrayList<Behavior>() ;
+ classifierInsertedAsElementImport = new ArrayList<Classifier>() ;
+ TypeUtils.predefinedCollectionFunctions = new HashMap<String, SignatureFacade>() ;
+ localInit(library) ;
+ // initializes predefined type facades from TypeUtils
+ TypeUtils._bitString = typeMap.get("BitString") ;
+ TypeUtils._boolean = typeMap.get("Boolean") ;
+ TypeUtils._integer = typeMap.get("Integer") ;
+ TypeUtils._natural = typeMap.get("Natural") ;
+ TypeUtils._string = typeMap.get("String") ;
+ TypeUtils._undefined = new TypeFacade();
+ TypeUtils._unlimited = typeMap.get("UnlimitedNatural") ;
+ TypeUtils._nullExpression = TypeExpressionFactory.eInstance.createTypeExpression(TypeUtils._undefined) ;
+ TypeUtils._Collection = typeMap.get("Collection") ;
+ TypeUtils._Set = typeMap.get("Set");
+ TypeUtils._Bag = typeMap.get("Bag") ;
+ TypeUtils._Queue = typeMap.get("Queue") ;
+ TypeUtils._OrderedSet = typeMap.get("OrderedSet") ;
+ TypeUtils._List = typeMap.get("List") ;
+ TypeUtils._Deque = typeMap.get("Deque") ;
+ TypeUtils._Map = typeMap.get("Map") ;
+ TypeUtils._Entry = typeMap.get("Entry") ;
+ }
+
+ private void localInit(org.eclipse.uml2.uml.Package library) {
+ if (library.getQualifiedName().equals("Alf::Library::CollectionFunctions")) {
+ this.initCollectionFunctions(library) ;
+ }
+ for (NamedElement n : library.getOwnedMembers()) {
+ if (n instanceof Behavior) {
+ insertSignatureFacade(SignatureFacadeFactory.eInstance.createSignatureFacade(n)) ;
+ }
+ else if (n instanceof Classifier) {
+ insertTypeFacade(TypeFacadeFactory.eInstance.createTypeFacade(n)) ;
+ }
+ else if (n instanceof org.eclipse.uml2.uml.Package) {
+ localInit((org.eclipse.uml2.uml.Package)n) ;
+ }
+ }
+ for (ElementImport eImport : library.getElementImports()) {
+ if (eImport.getImportedElement() instanceof Behavior) {
+ insertSignatureFacade(new SignatureFacade(eImport)) ;
+ behaviorInsertedAsElementImport.add((Behavior)eImport.getImportedElement()) ;
+ }
+ else if (eImport.getImportedElement() instanceof Classifier) {
+ insertTypeFacade(TypeFacadeFactory.eInstance.createTypeFacade(eImport)) ;
+ classifierInsertedAsElementImport.add((Classifier)eImport.getImportedElement()) ;
+ }
+ else if (eImport.getImportedElement() instanceof org.eclipse.uml2.uml.Package) {
+ localInit((org.eclipse.uml2.uml.Package)eImport.getImportedElement()) ;
+ }
+ }
+ for (PackageImport pImport : library.getPackageImports()) {
+ localInit(pImport.getImportedPackage()) ;
+ }
+ TypeUtils._Collection = typeMap.get("Collection") ;
+ TypeUtils._Set = typeMap.get("Set");
+ TypeUtils._Bag = typeMap.get("Bag") ;
+ TypeUtils._Queue = typeMap.get("Queue") ;
+ TypeUtils._OrderedSet = typeMap.get("OrderedSet") ;
+ TypeUtils._List = typeMap.get("List") ;
+ TypeUtils._Deque = typeMap.get("Deque") ;
+ TypeUtils._Map = typeMap.get("Map") ;
+ TypeUtils._Entry = typeMap.get("Entry") ;
+
+ }
+
+ private void initCollectionFunctions(Package library) {
+ for (NamedElement element : library.getOwnedMembers()) {
+ if (element instanceof Behavior) {
+ SignatureFacade s = SignatureFacadeFactory.eInstance.createSignatureFacade(element) ;
+ TypeUtils.predefinedCollectionFunctions.put(s.getName(), s) ;
+ }
+ }
+ for (ElementImport eImport : library.getElementImports()) {
+ if (eImport.getImportedElement() instanceof Behavior) {
+ SignatureFacade s = SignatureFacadeFactory.eInstance.createSignatureFacade(eImport) ;
+ TypeUtils.predefinedCollectionFunctions.put(eImport.getAlias() == null || eImport.getAlias().isEmpty() ? s.getName() : eImport.getAlias(), s) ;
+ }
+ }
+ }
+
+ public List<SignatureFacade> getSignatures(String name) {
+ return behaviorMap.get(name) ;
+ }
+
+ public TypeFacade getClassifier(String name) {
+ return typeMap.get(name) ;
+ }
+
+ private void insertSignatureFacade(SignatureFacade s) {
+ for (Behavior b : behaviorInsertedAsElementImport) {
+ if (s.equals(b))
+ return ;
+ }
+ List<SignatureFacade> l = behaviorMap.get(s.getName()) ;
+ if (l == null) {
+ l = new ArrayList<SignatureFacade>() ;
+ behaviorMap.put(s.getName(), l) ;
+ }
+ l.add(s) ;
+ }
+
+ private void insertTypeFacade(TypeFacade t) {
+ for (Classifier c : classifierInsertedAsElementImport) {
+ if (t.equals(c))
+ return ;
+ }
+ if (typeMap.get(t.getLabel()) == null)
+ typeMap.put(t.getLabel(), t) ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/AssignmentPolicy.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/AssignmentPolicy.java
new file mode 100644
index 00000000000..0f950835c5a
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/AssignmentPolicy.java
@@ -0,0 +1,54 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.alf.validation.typing;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.alf.alf.AcceptClause;
+import org.eclipse.papyrus.alf.alf.AcceptStatement;
+import org.eclipse.papyrus.alf.alf.InvocationOrAssignementOrDeclarationStatement;
+import org.eclipse.papyrus.alf.alf.LocalNameDeclarationStatement;
+import org.eclipse.papyrus.alf.alf.LoopVariableDefinition;
+import org.eclipse.uml2.uml.Property;
+
+public class AssignmentPolicy {
+
+ public static AssignmentPolicy eInstance = new AssignmentPolicy() ;
+
+ public String isAssignable(EObject namedElement) {
+ String commonSuffix = " cannot be the target of an assignment" ;
+ if (namedElement instanceof Property) {
+ Property property = (Property)namedElement ;
+ if (property.isReadOnly())
+ return "A read-only property" + commonSuffix ;
+ else
+ return "";
+ }
+ else if (namedElement instanceof LocalNameDeclarationStatement) {
+ return "" ;
+ }
+ else if (namedElement instanceof InvocationOrAssignementOrDeclarationStatement) {
+ return "" ;
+ }
+ else if (namedElement instanceof LoopVariableDefinition) {
+ return "A local loop variable" + commonSuffix ;
+ }
+ else if (namedElement instanceof AcceptClause) {
+ return "A local accept variable" + commonSuffix ;
+ }
+ else if (namedElement instanceof AcceptStatement) {
+ return "A local accept variable" + commonSuffix ;
+ }
+ return "Could not determine if the element is assignable";
+ }
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/DefaultConstructorFacade.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/DefaultConstructorFacade.java
new file mode 100644
index 00000000000..965ce551f6d
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/DefaultConstructorFacade.java
@@ -0,0 +1,74 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.alf.validation.typing;
+
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.DataType;
+import org.eclipse.uml2.uml.Property;
+
+public class DefaultConstructorFacade extends SignatureFacade {
+
+ private Class classToBeConstructed ;
+ private DataType datatypeToBeConstructed ;
+
+ public DefaultConstructorFacade(Class c) {
+ super(c) ;
+ this.classToBeConstructed = c ;
+ this.setReturnType(TypeExpressionFactory.eInstance.createTypeExpression(c)) ;
+ }
+
+ public DefaultConstructorFacade(DataType d) {
+ super(d) ;
+ this.datatypeToBeConstructed = d ;
+ for (Property p : d.getAllAttributes()) {
+ TypeExpression typeOfArgument = TypeExpressionFactory.eInstance.createTypeExpression(p) ;
+ parameters.add(TypeExpressionFactory.eInstance.createTypeExpression(p)) ;
+ parametersMap.put(p.getName(), typeOfArgument) ;
+ }
+ this.setReturnType(TypeExpressionFactory.eInstance.createTypeExpression(d)) ;
+ }
+
+ @Override
+ public String getName() {
+ return classToBeConstructed.getName();
+ }
+
+ @Override
+ public boolean hasReturnType() {
+ return true;
+ }
+
+ @Override
+ public String getLabel() {
+ String label = classToBeConstructed != null ? classToBeConstructed.getName() : datatypeToBeConstructed.getName() ;
+ label += "(" ;
+ boolean first = true ;
+ for (TypeExpression t : parameters) {
+ if (first) first = false ; else label += ", " ;
+ label += t.getLabel() ;
+ }
+ label += ") : " + this.getReturnType().getLabel() ;
+ return label ;
+ }
+
+ @Override
+ public boolean isAConstructor() {
+ return true;
+ }
+
+ @Override
+ public boolean isADestructor(){
+ return false ;
+ }
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/DefaultDestructorFacade.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/DefaultDestructorFacade.java
new file mode 100644
index 00000000000..b9be485e640
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/DefaultDestructorFacade.java
@@ -0,0 +1,34 @@
+package org.eclipse.papyrus.alf.validation.typing;
+
+public class DefaultDestructorFacade extends SignatureFacade {
+
+ public DefaultDestructorFacade() {
+ super() ;
+ }
+
+ @Override
+ public String getName() {
+ return "destroy";
+ }
+
+ @Override
+ public boolean hasReturnType() {
+ return true;
+ }
+
+ @Override
+ public String getLabel() {
+ return "destroy()" ;
+ }
+
+ @Override
+ public boolean isAConstructor() {
+ return false;
+ }
+
+ @Override
+ public boolean isADestructor(){
+ return true ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/ErrorTypeFacade.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/ErrorTypeFacade.java
new file mode 100644
index 00000000000..2ae720aea18
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/ErrorTypeFacade.java
@@ -0,0 +1,50 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.alf.validation.typing;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class ErrorTypeFacade extends TypeFacade {
+
+ private String errorMessage = "" ;
+ private EStructuralFeature structuralFeature ;
+ private EObject errorSource ;
+
+ @Override
+ public String getLabel() {
+ return errorMessage ;
+ }
+
+ public void setMessage(String message) {
+ errorMessage = "" + message ;
+ }
+
+ public EStructuralFeature getStructuralFeature() {
+ return structuralFeature;
+ }
+
+ public void setStructuralFeature(EStructuralFeature structuralFeature) {
+ this.structuralFeature = structuralFeature ;
+ }
+
+ public EObject getErrorSource() {
+ return errorSource;
+ }
+
+ public void setErrorSource(EObject errorSource) {
+ this.errorSource = errorSource ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/MultiplicityFacade.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/MultiplicityFacade.java
new file mode 100644
index 00000000000..4ab7b6363c4
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/MultiplicityFacade.java
@@ -0,0 +1,105 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.alf.validation.typing;
+
+public class MultiplicityFacade {
+ private int lowerBound = 0;
+ private int upperBound = 0;
+ private boolean nonUnique = false ;
+ private boolean ordered = false ;
+
+ public String getLabel() {
+ if (lowerBound == upperBound) {
+ if (lowerBound == 1)
+ return "" ;
+ if (lowerBound == -1)
+ return "[*]" ;
+ return "[" + lowerBound + "]" ;
+ }
+ else {
+ if (upperBound == -1) {
+ if (lowerBound == 0) {
+ return "[*]" ;
+ }
+ else {
+ return "[" + lowerBound + "..*]" ;
+ }
+ }
+ else {
+ return "[" + lowerBound + ".." + upperBound + "]";
+ }
+ }
+ }
+
+ public boolean isCompatibleWithMe(MultiplicityFacade multiplicity) {
+ //boolean lowerBoundCompatible = multiplicity.lowerBound >= this.lowerBound ;
+ boolean upperBoundCompatible = true ;
+
+ switch (this.upperBound) {
+ case -1:
+ break;
+
+ default:
+ if (multiplicity.upperBound == -1)
+ upperBoundCompatible = false ;
+// else
+// upperBoundCompatible = multiplicity.upperBound <= this.upperBound ;
+ break;
+ }
+
+ //return lowerBoundCompatible && upperBoundCompatible;
+ return upperBoundCompatible ;
+ }
+
+ public void setLowerBound(int lowerBound) {
+ this.lowerBound = lowerBound ;
+ }
+
+ public void setUpperBound(int lowerBound) {
+ this.upperBound = lowerBound ;
+ }
+
+ public int getLowerBound() {
+ return lowerBound;
+ }
+
+ public int getUpperBound() {
+ return upperBound;
+ }
+
+ public boolean isUnique() {
+ return !nonUnique ;
+ }
+
+ public boolean isOrdered() {
+ return ordered ;
+ }
+
+ public boolean isSequence() {
+ return ordered && nonUnique ;
+ }
+
+ public void setIsUnique(boolean isUnique) {
+ nonUnique = !isUnique ;
+ }
+
+ public void setIsOrdered(boolean isOrdered) {
+ ordered = isOrdered ;
+ }
+
+ public void setIsSequence(boolean isSequence) {
+ ordered = true ;
+ nonUnique = true ;
+ }
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/MultiplicityFacadeFactory.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/MultiplicityFacadeFactory.java
new file mode 100644
index 00000000000..d300085f056
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/MultiplicityFacadeFactory.java
@@ -0,0 +1,65 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.alf.validation.typing;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.alf.alf.LocalNameDeclarationStatement;
+import org.eclipse.papyrus.alf.alf.LoopVariableDefinition;
+import org.eclipse.uml2.uml.MultiplicityElement;
+
+public class MultiplicityFacadeFactory {
+
+ public static MultiplicityFacadeFactory eInstance = new MultiplicityFacadeFactory() ;
+
+ public MultiplicityFacade createMultiplicityFacade(int lowerBound, int upperBound, boolean isUnique, boolean isOrdered) {
+ MultiplicityFacade result = new MultiplicityFacade() ;
+ result.setLowerBound(lowerBound) ;
+ result.setUpperBound(upperBound) ;
+ result.setIsUnique(isUnique) ;
+ result.setIsOrdered(isOrdered) ;
+ return result ;
+ }
+
+ public MultiplicityFacade createMultiplicityFacade(int upperBound) {
+ if (upperBound == -1)
+ return createMultiplicityFacade(0, upperBound, false, true) ;
+ else
+ return createMultiplicityFacade(upperBound, upperBound, true, false) ;
+ }
+
+ public MultiplicityFacade createMultiplicityFacade() {
+ return createMultiplicityFacade(1, 1, true, false) ;
+ }
+
+ public MultiplicityFacade createMultiplicityFacade(EObject multiplicityElement) {
+ // To be overriden
+ if (multiplicityElement instanceof MultiplicityElement) {
+ MultiplicityElement m = (MultiplicityElement)multiplicityElement ;
+ return createMultiplicityFacade(m.getLower(), m.getUpper(), m.isUnique(), m.isOrdered()) ;
+ }
+ else if (multiplicityElement instanceof LocalNameDeclarationStatement) {
+ LocalNameDeclarationStatement statement = (LocalNameDeclarationStatement)multiplicityElement ;
+ int lower = statement.isMultiplicityIndicator() ? 0 : 1 ;
+ int upper = statement.isMultiplicityIndicator() ? -1 : 1 ;
+ boolean isUnique = statement.isMultiplicityIndicator() ? false : true ;
+ boolean isOrdered = statement.isMultiplicityIndicator() ? true : false ;
+ return createMultiplicityFacade(lower, upper, isUnique, isOrdered) ;
+ }
+ else if (multiplicityElement instanceof LoopVariableDefinition) {
+ // Correctly handled by the following return statement
+ }
+ return createMultiplicityFacade() ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/OperationFacade.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/OperationFacade.java
new file mode 100644
index 00000000000..7ad3c700a33
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/OperationFacade.java
@@ -0,0 +1,18 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.alf.validation.typing;
+
+public class OperationFacade {
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/PropertyFacade.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/PropertyFacade.java
new file mode 100644
index 00000000000..bb152c23f22
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/PropertyFacade.java
@@ -0,0 +1,18 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.alf.validation.typing;
+
+public class PropertyFacade {
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/SignatureFacade.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/SignatureFacade.java
new file mode 100644
index 00000000000..02d05be58d6
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/SignatureFacade.java
@@ -0,0 +1,301 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.alf.validation.typing;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Behavior;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.ElementImport;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.ParameterDirectionKind;
+import org.eclipse.uml2.uml.ParameterableElement;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Reception;
+import org.eclipse.uml2.uml.TemplateParameter;
+import org.eclipse.uml2.uml.TemplateableElement;
+
+public class SignatureFacade {
+
+ private String name = "";
+ protected List<TypeExpression> parameters = new ArrayList<TypeExpression>();
+ //
+ protected Map<String, TypeExpression> parametersMap = new HashMap<String, TypeExpression>() ;
+ //
+ //private TypeExpression returnType = TypeExpressionFactory.eInstance.createTypeExpression(TypeUtils._undefined, 0, 0, false, false) ;
+ private TypeExpression returnType = null ;
+ private EObject actualSignatureObject = null ;
+
+ public EObject getActualSignatureObject() {
+ return actualSignatureObject;
+ }
+
+ public SignatureFacade() {
+
+ }
+
+ public SignatureFacade(EObject o) {
+ if (o instanceof Operation) {
+ Operation operation = (Operation)o ;
+ this.actualSignatureObject = operation ;
+ this.name = operation.getName() ;
+ for (Parameter p : operation.getOwnedParameters()) {
+ if (p.getDirection() == ParameterDirectionKind.RETURN_LITERAL)
+ returnType = TypeExpressionFactory.eInstance.createTypeExpression(p) ;
+ else {
+ TypeExpression typeOfP = TypeExpressionFactory.eInstance.createTypeExpression(p) ;
+ parameters.add(typeOfP) ;
+ parametersMap.put(p.getName(), typeOfP) ;
+ }
+ }
+ }
+ else if (o instanceof Behavior) {
+ Behavior behavior = (Behavior) o ;
+ this.actualSignatureObject = behavior ;
+ this.name = behavior.getName() ;
+ for (Parameter p : behavior.getOwnedParameters()) {
+ if (p.getDirection() == ParameterDirectionKind.RETURN_LITERAL)
+ returnType = TypeExpressionFactory.eInstance.createTypeExpression(p) ;
+ else {
+ TypeExpression typeOfP = TypeExpressionFactory.eInstance.createTypeExpression(p) ;
+ parameters.add(typeOfP) ;
+ parametersMap.put(p.getName(), typeOfP) ;
+ }
+ }
+ }
+ else if (o instanceof ElementImport) {
+ ElementImport eImport = (ElementImport)o ;
+ if (eImport.getImportedElement() instanceof Behavior) {
+ Behavior b = (Behavior)eImport.getImportedElement() ;
+ this.actualSignatureObject = b ;
+ if (eImport.getAlias() != null)
+ this.name = eImport.getAlias() ;
+ else
+ this.name = b.getName() ;
+ for (Parameter p : b.getOwnedParameters()) {
+ if (p.getDirection() == ParameterDirectionKind.RETURN_LITERAL)
+ returnType = TypeExpressionFactory.eInstance.createTypeExpression(p) ;
+ else {
+ TypeExpression typeOfP = TypeExpressionFactory.eInstance.createTypeExpression(p) ;
+ parameters.add(typeOfP) ;
+ parametersMap.put(p.getName(), typeOfP) ;
+ }
+ }
+ }
+ }
+ else if (o instanceof Reception) {
+ Reception r = (Reception)o ;
+ this.actualSignatureObject = r ;
+ this.name = r.getName() ;
+ if (r.getSignal() != null) {
+ for (Property p : r.getSignal().getAllAttributes()) {
+ TypeExpression typeOfP = TypeExpressionFactory.eInstance.createTypeExpression(p) ;
+ parameters.add(typeOfP) ;
+ parametersMap.put(p.getName(), typeOfP) ;
+ }
+ }
+ }
+ }
+
+ public String getName() {
+ return name ;
+ }
+
+ public void setName(String name) {
+ this.name = "" + name ;
+ }
+
+ public List<TypeExpression> getParameters() {
+ return parameters ;
+ }
+
+ public boolean hasReturnType() {
+ return returnType != null ;
+ }
+
+ public TypeExpression getReturnType() {
+ return returnType ;
+ }
+
+ public void setReturnType(TypeExpression returnType) {
+ this.returnType = returnType ;
+ }
+
+ public String isCompatibleWithMe(List<TypeExpression> arguments, boolean getErrorMessage) {
+ int compatibilityLevel = this.isCompatibleWithMe(arguments) ;
+ String errorMessage = "" ;
+ if (compatibilityLevel == 0) {
+ errorMessage += this.getLabel() + " does not apply to arguments " ;
+ String argumentsString = "(" ;
+ boolean first = true ;
+ for (TypeExpression type : arguments) {
+ if (!first) argumentsString += ", " ; else first = false ;
+ argumentsString += type.getLabel() ;
+ }
+ argumentsString += ")" ;
+ errorMessage += argumentsString ;
+ }
+ return errorMessage ;
+ }
+
+ public String getLabel() {
+ String label = name + "(" ;
+ boolean first = true ;
+ for (TypeExpression type : parameters) {
+ if (!first) label += ", " ; else first = false ;
+ label += type.getLabel() ;
+ }
+ label += ")" ;
+ return label ;
+ }
+
+ public int isCompatibleWithMe(List<TypeExpression> arguments) {
+ if (arguments.size() != parameters.size())
+ return 0 ;
+ else if (arguments.size() == 0 )
+ return 3 ;
+ int compatibilityLevel = 0 ;
+ boolean first = true ;
+ for (int i = 0 ; i < parameters.size() ; i++) {
+ int currentCompatibilityLevel = parameters.get(i).isCompatibleWithMe(arguments.get(i)) ;
+ if (first && currentCompatibilityLevel < 3)
+ return 0 ; //TODO: temporary solution. this is to give a higher value to the first argument if it perfectly matches. Should probably consider the context... Check the spec...
+ if (currentCompatibilityLevel == 0)
+ return 0 ;
+ else {
+ compatibilityLevel += currentCompatibilityLevel ;
+ }
+ first = false ;
+ }
+ return compatibilityLevel ;
+ }
+
+ public String isCompatibleWithMe(Map<String,TypeExpression> arguments) {
+ if (arguments.keySet().size() == 0 )
+ return "" ;
+ String compatibility = "" ;
+ for (String parameterName : arguments.keySet()) {
+ if (parametersMap.get(parameterName) == null) {
+ compatibility += "Parameter " + parameterName + " is undefined\n";
+ }
+ else {
+ int compatibilityLevel = parametersMap.get(parameterName).isCompatibleWithMe(arguments.get(parameterName)) ;
+ if (compatibilityLevel == 0) {
+ compatibility += "Parameter " + parameterName + " requires an argument of type " + parametersMap.get(parameterName).getLabel() + "\n" ;
+ }
+ }
+ }
+ return compatibility ;
+ }
+
+ public static List<SignatureFacade> findNearestSignature(List<TypeExpression> arguments, List<SignatureFacade> candidates) {
+ List<SignatureFacade> matchingSignatures = new ArrayList<SignatureFacade>() ;
+ int bestScore = 0 ;
+ for (SignatureFacade cddMatchingSignature : candidates) {
+ int currentScore = cddMatchingSignature.isCompatibleWithMe(arguments) ;
+ if (currentScore != 0) {
+ if (currentScore >= bestScore) {
+ if (currentScore > bestScore)
+ matchingSignatures.clear() ;
+ matchingSignatures.add(cddMatchingSignature) ;
+ bestScore = currentScore ;
+ }
+ }
+ }
+ return matchingSignatures ;
+ }
+
+ public static List<SignatureFacade> findNearestConstructorSignature(Map<String, TypeExpression> arguments, List<SignatureFacade> candidates) {
+ List<SignatureFacade> matchingSignatures = new ArrayList<SignatureFacade>() ;
+ for (SignatureFacade cddMatchingSignature : candidates) {
+ String compatibility = cddMatchingSignature.isCompatibleWithMe(arguments) ;
+ if (compatibility.isEmpty()) {
+ matchingSignatures.add(cddMatchingSignature) ;
+ }
+ }
+ return matchingSignatures ;
+ }
+
+ public List<SignatureFacade> isNotDistinguishableFrom(List<SignatureFacade> candidates) {
+ List<SignatureFacade> matchingSignatures = new ArrayList<SignatureFacade>() ;
+ for (SignatureFacade cddMatchingSignature : candidates) {
+ if (this.name.equals(cddMatchingSignature.getName())) {
+ if (this.parameters.size() == cddMatchingSignature.parameters.size()) {
+ boolean parameterThatDoesNotMatchFound = false ;
+ for (int i = 0 ; i < this.parameters.size() && !parameterThatDoesNotMatchFound ; ) {
+ int compatibilityLevel = this.parameters.get(i).isCompatibleWithMe(cddMatchingSignature.getParameters().get(i)) ;
+ if (compatibilityLevel != 3)
+ parameterThatDoesNotMatchFound = true ;
+ i++ ;
+ }
+ if (!parameterThatDoesNotMatchFound) {
+ matchingSignatures.add(cddMatchingSignature) ;
+ }
+ }
+ }
+ }
+ return matchingSignatures ;
+ }
+
+ public boolean equals(Operation o) {
+ return this.actualSignatureObject == o ;
+ }
+
+ public boolean equals(Behavior b) {
+ return this.actualSignatureObject == b ;
+ }
+
+ public boolean isAConstructor() {
+ Element signature = null ;
+ if (actualSignatureObject instanceof Operation || actualSignatureObject instanceof Behavior)
+ signature = (Element)actualSignatureObject ;
+ else if (actualSignatureObject instanceof ElementImport)
+ signature = (Element)((ElementImport)actualSignatureObject).getImportedElement() ;
+ if (signature == null)
+ return false ;
+ return signature.getAppliedStereotype("Standard::Create") != null ;
+ }
+
+ public boolean isADestructor() {
+ Element signature = null ;
+ if (actualSignatureObject instanceof Operation || actualSignatureObject instanceof Behavior)
+ signature = (Element)actualSignatureObject ;
+ else if (actualSignatureObject instanceof ElementImport)
+ signature = (Element)((ElementImport)actualSignatureObject).getImportedElement() ;
+ if (signature == null)
+ return false ;
+ return signature.getAppliedStereotype("Standard::Destroy") != null ;
+ }
+
+ public Map<String, TypeExpression> getParametersMap() {
+ return this.parametersMap ;
+ }
+
+ public boolean isATemplate() {
+ if (this.actualSignatureObject instanceof TemplateableElement) {
+ return ((TemplateableElement)this.actualSignatureObject).isTemplate() ;
+ }
+ return false ;
+ }
+
+ public SignatureFacade bindTemplate(Map<TemplateParameter, ParameterableElement> substitutions) {
+ // Templates are not supported in this version of the editor
+ return this ;
+ }
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/SignatureFacadeFactory.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/SignatureFacadeFactory.java
new file mode 100644
index 00000000000..6f8377b0fe6
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/SignatureFacadeFactory.java
@@ -0,0 +1,286 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.alf.validation.typing;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.alf.alf.InstanceCreationExpression;
+import org.eclipse.papyrus.alf.alf.InstanceCreationTupleElement;
+import org.eclipse.papyrus.alf.alf.QualifiedNameWithBinding;
+import org.eclipse.papyrus.alf.scoping.AlfScopeProvider;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.DataType;
+import org.eclipse.uml2.uml.Enumeration;
+import org.eclipse.uml2.uml.PrimitiveType;
+
+public class SignatureFacadeFactory {
+
+ public static SignatureFacadeFactory eInstance = new SignatureFacadeFactory() ;
+
+ public SignatureFacade createSignatureFacade(EObject o) {
+ return new SignatureFacade(o) ;
+ }
+
+ public SignatureFacade createConstructorFacade(InstanceCreationExpression exp) throws Exception {
+ List<TypeExpression> arguments = new ArrayList<TypeExpression>() ;
+ Map<String, TypeExpression> argumentsMap = new HashMap<String, TypeExpression>() ;
+
+ if (exp.getTuple().getInstanceCreationTupleElement() != null) {
+ for (InstanceCreationTupleElement tupleElement : exp.getTuple().getInstanceCreationTupleElement()) {
+ TypeExpression typeOfArgument = new TypeUtils().getTypeOfExpression(tupleElement.getObject()) ;
+ if (typeOfArgument.getTypeFacade() instanceof ErrorTypeFacade)
+ throw new TypeInferenceException(typeOfArgument) ;
+ arguments.add(typeOfArgument) ;
+ argumentsMap.put(tupleElement.getRole(), typeOfArgument) ;
+ }
+ }
+
+ // first try to determine if the expression directly refers to a Class or a DataType
+ TypeFacade cddClassifier = TypeFacadeFactory.eInstance.createVoidFacade(exp.getConstructor()) ;
+ boolean errorInResolutionOfClassifier = false ;
+ if (cddClassifier instanceof ErrorTypeFacade) {
+ errorInResolutionOfClassifier = true ;
+ }
+ else {
+ Classifier referencedType = cddClassifier.extractActualType() ;
+ if (referencedType instanceof PrimitiveType) {
+ throw new Exception("Constructor invocations do not apply to primitive types") ;
+ }
+ if (referencedType instanceof Enumeration) {
+ throw new Exception("Constructor invocations do not apply to enumerations") ;
+ }
+ if (referencedType.isAbstract()) {
+ throw new Exception("Abstract classifiers cannot be instantiated") ;
+ }
+
+ // The classifier has been resolved. Must determine if arguments match with possible constructors
+ if (referencedType instanceof org.eclipse.uml2.uml.Class) {
+ List<EObject> visibleConstructor = AlfScopeProvider.scopingTool.getVisibleOperationsOrBehaviors(referencedType).resolveByName(referencedType.getName()) ;
+ if (visibleConstructor.size() > 1) {
+ // try to match with arguments
+ // if does not match, raise an exception
+ List<SignatureFacade> visibleConstructorSignatures = new ArrayList<SignatureFacade>() ;
+ for (EObject cddConstructor : visibleConstructor) {
+ SignatureFacade cddConstructorSignature = SignatureFacadeFactory.eInstance.createSignatureFacade(cddConstructor) ;
+ if (cddConstructorSignature.isAConstructor())
+ visibleConstructorSignatures.add(cddConstructorSignature) ;
+ }
+ List<SignatureFacade> matchingSignatures = SignatureFacade.findNearestSignature(arguments, visibleConstructorSignatures) ;
+ if (matchingSignatures.size() > 1) {
+ String errorMessage = referencedType.getName() + "(" ;
+ boolean first = true ;
+ for (TypeExpression arg : arguments) {
+ if (first) first = false ; else errorMessage += ", " ;
+ errorMessage += arg.getLabel() ;
+ }
+ errorMessage += ") resolves to multiple constructors" ;
+ throw new Exception(errorMessage) ;
+ }
+ else if (matchingSignatures.size() == 0) {
+ String errorMessage = "Constructor " + referencedType.getName() + "(" ;
+ boolean first = true ;
+ for (TypeExpression arg : arguments) {
+ if (first) first = false ; else errorMessage += ", " ;
+ errorMessage += arg.getLabel() ;
+ }
+ errorMessage += ") is undefined" ;
+ throw new Exception(errorMessage) ;
+ }
+ else { // exactly one match
+ return matchingSignatures.get(0) ;
+ }
+ }
+ else if (visibleConstructor.size() == 0) {
+ if (arguments.size() > 0) {
+ // Throw an exception
+ String errorMessage = "Constructor " + referencedType.getName() + "(";
+ boolean first = true ;
+ for (TypeExpression t : arguments) {
+ if (first) first = false ; else errorMessage += ", " ;
+ errorMessage += t.getLabel() ;
+ }
+ errorMessage += ") is undefined" ;
+ throw new Exception(errorMessage) ;
+ }
+ return new DefaultConstructorFacade((Class)referencedType) ;
+ }
+ else { // exactly one constructor found
+ // Tries to determine if arguments match
+ SignatureFacade constructor = createSignatureFacade(visibleConstructor.get(0)) ;
+ if (!constructor.isAConstructor()) {
+ // Throw an exception
+ String errorMessage = "Constructor " + referencedType.getName() + "(";
+ boolean first = true ;
+ for (TypeExpression t : arguments) {
+ if (first) first = false ; else errorMessage += ", " ;
+ errorMessage += t.getLabel() ;
+ }
+ errorMessage += ") is undefined" ;
+ throw new Exception(errorMessage) ;
+ }
+ String potentialErrorMessage = constructor.isCompatibleWithMe(argumentsMap) ;
+ if (potentialErrorMessage.length() == 0)
+ return constructor ;
+ else
+ throw new Exception(potentialErrorMessage) ;
+ }
+ }
+ else if (referencedType instanceof DataType){ // This is a data type.
+ //must match arguments with visible properties of the data type
+ SignatureFacade defaultDataTypeConstructor = new DefaultConstructorFacade((DataType)referencedType) ;
+ String errorMessage = defaultDataTypeConstructor.isCompatibleWithMe(argumentsMap) ;
+ if (!(errorMessage.length() == 0))
+ throw new Exception(errorMessage) ;
+ else
+ return defaultDataTypeConstructor ;
+ }
+ }
+
+ if (errorInResolutionOfClassifier) {
+ // We can try again, but considering that:
+ // - the last element in the qualified name as the name of a constructor
+ // - the element before the last element is a class name
+
+ if (exp.getConstructor().getRemaining() == null)
+ throw new Exception("Constructor " + exp.getConstructor().getId() + " is undefined") ;
+
+ QualifiedNameWithBinding remaining = exp.getConstructor() ;
+ QualifiedNameWithBinding cddClassName = exp.getConstructor() ;
+ QualifiedNameWithBinding cddConstructorName = exp.getConstructor() ;
+ EObject previousPackage = null ;
+
+ while (cddConstructorName.getRemaining() != null) {
+ cddClassName = cddConstructorName ;
+ cddConstructorName = cddConstructorName.getRemaining() ;
+ }
+
+ if (remaining != cddClassName) {
+ List<EObject> visiblePackages = AlfScopeProvider.scopingTool.getVisiblePackages(exp).resolveByName(remaining.getId()) ;
+ if (visiblePackages.isEmpty()) {
+ throw new Exception("Could not resolve package " + remaining.getId()) ;
+ }
+ else if (visiblePackages.size() > 1) {
+ throw new Exception(remaining.getId() + " resolves to multiple packages") ;
+ }
+ else {
+ List<EObject> nestedVisiblePackages ;
+ previousPackage = visiblePackages.get(0) ;
+ remaining = remaining.getRemaining() ;
+ while (remaining != cddClassName) {
+ nestedVisiblePackages = AlfScopeProvider.scopingTool.getVisiblePackages(previousPackage).resolveByName(remaining.getId()) ;
+ if (nestedVisiblePackages.isEmpty()) {
+ throw new Exception("Could not resolve package " + remaining.getId()) ;
+ }
+ else if (nestedVisiblePackages.size() > 1) {
+ throw new Exception(remaining.getId() + " resolves to multiple packages") ;
+ }
+ previousPackage = nestedVisiblePackages.get(0) ;
+ remaining = remaining.getRemaining() ;
+ }
+ }
+ }
+
+
+ // At this point, the (potential) path has been validated
+ // cddClassName should resolve to a classifier
+ List<EObject> visibleClassifiers = null ;
+ EObject resolvedClassifier = null ;
+ if (previousPackage != null)
+ visibleClassifiers = AlfScopeProvider.scopingTool.getVisibleClassifiers(previousPackage).resolveByName(cddClassName.getId()) ;
+ else
+ visibleClassifiers = AlfScopeProvider.scopingTool.getVisibleClassifiers(exp).resolveByName(cddClassName.getId()) ;
+ if (visibleClassifiers.isEmpty()) {
+ throw new Exception("Could not resolve classifier " + cddClassName.getId()) ;
+ }
+ else if (visibleClassifiers.size() > 1) {
+ throw new Exception(remaining.getId() + " resolves to multiple classifiers.") ;
+ }
+ else {
+ resolvedClassifier = visibleClassifiers.get(0) ;
+ }
+ List<EObject> visibleConstructor = AlfScopeProvider.scopingTool.getVisibleOperationsOrBehaviors(resolvedClassifier).resolveByName(cddConstructorName.getId()) ;
+ if (visibleConstructor.size() > 1) {
+ // try to match with arguments
+ // if does not match, raise an exception
+ List<SignatureFacade> visibleConstructorSignatures = new ArrayList<SignatureFacade>() ;
+ for (EObject cddConstructor : visibleConstructor) {
+ SignatureFacade cddConstructorSignature = SignatureFacadeFactory.eInstance.createSignatureFacade(cddConstructor) ;
+ if (cddConstructorSignature.isAConstructor())
+ visibleConstructorSignatures.add(cddConstructorSignature) ;
+ }
+ List<SignatureFacade> matchingSignatures = SignatureFacade.findNearestSignature(arguments, visibleConstructorSignatures) ;
+ if (matchingSignatures.size() > 1) {
+ String errorMessage = cddConstructorName.getId() + "(" ;
+ boolean first = true ;
+ for (TypeExpression arg : arguments) {
+ if (first) first = false ; else errorMessage += ", " ;
+ errorMessage += arg.getLabel() ;
+ }
+ errorMessage += ") resolves to multiple constructors" ;
+ throw new Exception(errorMessage) ;
+ }
+ else if (matchingSignatures.size() == 0) {
+ String errorMessage = "Constructor " + cddConstructorName.getId() + "(" ;
+ boolean first = true ;
+ for (TypeExpression arg : arguments) {
+ if (first) first = false ; else errorMessage += ", " ;
+ errorMessage += arg.getLabel() ;
+ }
+ errorMessage += ") is undefined" ;
+ throw new Exception(errorMessage) ;
+ }
+ else { // exactly one match
+ return matchingSignatures.get(0) ;
+ }
+ }
+ else if (visibleConstructor.size() == 0) {
+ String errorMessage = "Constructor " + cddConstructorName.getId() + "(" ;
+ boolean first = true ;
+ for (TypeExpression arg : arguments) {
+ if (first) first = false ; else errorMessage += ", " ;
+ errorMessage += arg.getLabel() ;
+ }
+ errorMessage += ") is undefined" ;
+ throw new Exception(errorMessage) ;
+ }
+ else { // exactly one constructor
+ // Tries to determine if arguments match
+ SignatureFacade constructor = createSignatureFacade(visibleConstructor.get(0)) ;
+ if (!constructor.isAConstructor()) {
+ // Throw an exception
+ String errorMessage = "Constructor " + cddConstructorName.getId() + "(";
+ boolean first = true ;
+ for (TypeExpression t : arguments) {
+ if (first) first = false ; else errorMessage += ", " ;
+ errorMessage += t.getLabel() ;
+ }
+ errorMessage += ") is undefined" ;
+ throw new Exception(errorMessage) ;
+ }
+ String potentialErrorMessage = constructor.isCompatibleWithMe(arguments, true) ;
+ if (potentialErrorMessage.length() == 0)
+ return constructor ;
+ else
+ throw new Exception(potentialErrorMessage) ;
+ }
+ }
+
+ throw new Exception("Not supported case") ;
+ }
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/TypeExpression.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/TypeExpression.java
new file mode 100644
index 00000000000..281fab4fd91
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/TypeExpression.java
@@ -0,0 +1,74 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.alf.validation.typing;
+
+public class TypeExpression {
+
+ private TypeFacade type ;
+ private MultiplicityFacade multiplicity ;
+
+ public String getLabel() {
+ String label = "" ;
+ label += type.getLabel() ;
+ label += multiplicity.getLabel() ;
+ return label ;
+ }
+
+ public TypeFacade getTypeFacade() {
+ return type ;
+ }
+
+ public MultiplicityFacade getMultiplicityFacade() {
+ return multiplicity ;
+ }
+
+ public int isCompatibleWithMe(TypeExpression t) {
+ if (t == TypeUtils._nullExpression)
+ return 3 ;
+ int typeCompatibilityLevel = type.isCompatibleWithMe(t.type) ;
+ if (typeCompatibilityLevel == 0)
+ return 0 ;
+ boolean isCompatible = multiplicity.isCompatibleWithMe(t.multiplicity) ;
+ if (isCompatible)
+ return typeCompatibilityLevel ;
+ else
+ return 0 ;
+ }
+
+ public void setType(TypeFacade type) {
+ this.type = type;
+ }
+
+ public MultiplicityFacade getMultiplicity() {
+ return multiplicity;
+ }
+
+ public void setMultiplicity(MultiplicityFacade multiplicity) {
+ this.multiplicity = multiplicity;
+ }
+
+ public boolean isACollection() {
+ boolean isACollection =
+ this.multiplicity.getUpperBound() == -1 || this.multiplicity.getUpperBound() > 1 ||
+ this.type.isACollection();
+
+ return isACollection ;
+ }
+
+ public boolean isOrdered() {
+ return this.multiplicity.isOrdered() || this.type.isOrdered() ;
+ // To be completed with collection classes
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/TypeExpressionFactory.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/TypeExpressionFactory.java
new file mode 100644
index 00000000000..d004049eab2
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/TypeExpressionFactory.java
@@ -0,0 +1,43 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.alf.validation.typing;
+
+import org.eclipse.emf.ecore.EObject;
+
+public class TypeExpressionFactory {
+
+ public static TypeExpressionFactory eInstance = new TypeExpressionFactory() ;
+
+ public TypeExpression createTypeExpression(EObject typeExpressionSource) {
+ TypeExpression result = new TypeExpression() ;
+ result.setType(TypeFacadeFactory.eInstance.createTypeFacade(typeExpressionSource)) ;
+ result.setMultiplicity(MultiplicityFacadeFactory.eInstance.createMultiplicityFacade(typeExpressionSource)) ;
+ return result ;
+ }
+
+ public TypeExpression createTypeExpression(TypeFacade type) {
+ TypeExpression result = new TypeExpression() ;
+ result.setType(type) ;
+ result.setMultiplicity (MultiplicityFacadeFactory.eInstance.createMultiplicityFacade()) ;
+ return result ;
+ }
+
+ public TypeExpression createTypeExpression(TypeFacade type, int lowerBound, int upperBound, boolean isUnique, boolean isOrdered) {
+ TypeExpression result = new TypeExpression() ;
+ result.setType(type) ;
+ result.setMultiplicity (MultiplicityFacadeFactory.eInstance.createMultiplicityFacade(lowerBound, upperBound, isUnique, isOrdered)) ;
+ return result ;
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/TypeFacade.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/TypeFacade.java
new file mode 100644
index 00000000000..770cb144623
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/TypeFacade.java
@@ -0,0 +1,178 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.alf.validation.typing;
+
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.alf.alf.Expression;
+import org.eclipse.papyrus.alf.alf.SequenceExpansionExpression;
+import org.eclipse.papyrus.alf.alf.SuffixExpression;
+import org.eclipse.papyrus.alf.validation.AlfJavaValidator;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.ElementImport;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.ParameterableElement;
+import org.eclipse.uml2.uml.TemplateParameter;
+import org.eclipse.uml2.uml.TypedElement;
+
+public class TypeFacade {
+
+ protected EObject typeObject ;
+
+ public void setTypeObject(EObject typeObject) {
+ this.typeObject = typeObject ;
+ //TODO this.templateBindingFacade = TemplateBindingFacadeFactory.eInstance.createTemplateBindingFacade(typeObject) ;
+ }
+
+ public String getLabelWithoutBinding() {
+ if (typeObject == null)
+ return "<Undefined>" ;
+ return "" ;
+ }
+
+ public int isCompatibleWithMe(TypeFacade type) {
+ Classifier myType = extractActualType(this) ;
+ if (myType == null) // i.e. any
+ return 3 ;
+ Classifier hisType = extractActualType(type) ;
+ if (hisType == null)
+ return 0 ;
+ if (perfectMatch(myType, hisType))
+ return 3 ;
+ //else if (autoConversionMatch(myType, hisType)) TODO: temporarily commented. Rules need to be clarified
+ // return 2 ;
+ else if (inheritanceMatch(myType, hisType))
+ return 1 ;
+ else
+ return 0 ;
+ }
+
+ private boolean perfectMatch(Classifier myType, Classifier hisType) {
+ boolean myTypeIsPredefined =
+ myType.getName().equals("Integer") ||
+ myType.getName().equals("String") ||
+ myType.getName().equals("Boolean") ||
+ myType.getName().equals("UnlimitedNatural");
+ boolean hisTypeIsPredefined =
+ hisType.getName().equals("Integer") ||
+ hisType.getName().equals("String") ||
+ hisType.getName().equals("Boolean") ||
+ hisType.getName().equals("UnlimitedNatural");
+
+ if (myTypeIsPredefined && hisTypeIsPredefined)
+ return myType.getName().equals(hisType.getName()) ;
+
+ return myType == hisType ;
+ }
+
+ private boolean autoConversionMatch(Classifier myType, Classifier hisType) {
+ String autoConvertionOperatorName = "To" + myType.getName() ;
+ List<SignatureFacade> availableConversionOperator =
+ AlfJavaValidator.predefinedBehaviorsAndTypes.getSignatures(autoConvertionOperatorName) ;
+ if (availableConversionOperator.isEmpty())
+ return false ;
+ else {
+ int numberOfMatchingOperators = 0 ;
+ for (SignatureFacade cddMatchingConvertionOperator : availableConversionOperator) {
+ Classifier parameterType = extractActualType(cddMatchingConvertionOperator.getParameters().get(0).getTypeFacade()) ;
+ Classifier returnType = extractActualType(cddMatchingConvertionOperator.getReturnType().getTypeFacade()) ;
+ if (perfectMatch(parameterType, hisType) && perfectMatch(returnType, myType))
+ numberOfMatchingOperators++ ;
+ }
+ return numberOfMatchingOperators == 1 ;
+ }
+ }
+
+ private boolean inheritanceMatch(Classifier myType, Classifier hisType) {
+ return hisType.getGenerals().contains(myType) ;
+ }
+
+ public static Classifier extractActualType(TypeFacade t) {
+ Classifier actualType = null ;
+ if (t.typeObject instanceof Classifier)
+ actualType = (Classifier)t.typeObject ;
+ else if (t.typeObject instanceof ElementImport){
+ ElementImport eImport = (ElementImport)t.typeObject ;
+ if (eImport.getImportedElement() instanceof Classifier)
+ actualType = (Classifier)eImport.getImportedElement() ;
+ }
+ else if (t.typeObject instanceof TypedElement) {
+ actualType = (Classifier)((TypedElement)t.typeObject).getType() ;
+ }
+ else if (t instanceof VoidFacade) {
+ actualType = extractActualType(((VoidFacade)t).getTypeFacade()) ;
+ }
+ else if (t.typeObject instanceof SequenceExpansionExpression) {
+ // first retrieves the expression nesting this sequence variable
+ EObject cddExpression = t.typeObject.eContainer() ;
+ while (! (cddExpression instanceof Expression))
+ cddExpression = cddExpression.eContainer() ;
+ // infers the type of the nesting expression, ignoring the t.typeObject suffix
+ TypeExpression typeOfPrefix = new TypeUtils((SuffixExpression)t.typeObject).getTypeOfExpression((Expression)cddExpression) ;
+ actualType = extractActualType(typeOfPrefix.getTypeFacade()) ;
+ for (Operation o : actualType.getAllOperations()) {
+ if (o.getName().equals("toSequence")) {
+ actualType = (Classifier) (o.getReturnResult() != null ? o.getReturnResult().getType() : actualType) ;
+ }
+ }
+ }
+ return actualType ;
+ }
+
+ public Classifier extractActualType() {
+ return extractActualType(this) ;
+ }
+
+ public boolean isAbstract() {
+ Classifier myType = extractActualType() ;
+ return myType != null ? myType.isAbstract() : false ;
+ }
+
+ public boolean isATemplate() {
+ Classifier myType = extractActualType() ;
+ return myType != null ? myType.isTemplate() : false ;
+ }
+
+ public boolean equals(Classifier c) {
+ return this.typeObject == c ;
+ }
+
+ public boolean isACollection() {
+ return
+ this.isCompatibleWithMe(TypeUtils._Collection) > 0
+ || this.isCompatibleWithMe(TypeUtils._Set) > 0
+ || this.isCompatibleWithMe(TypeUtils._Bag) > 0
+ || this.isCompatibleWithMe(TypeUtils._Queue) > 0
+ || this.isCompatibleWithMe(TypeUtils._OrderedSet) > 0
+ || this.isCompatibleWithMe(TypeUtils._List) > 0
+ || this.isCompatibleWithMe(TypeUtils._Deque) > 0
+ || this.isCompatibleWithMe(TypeUtils._Map) > 0 ;
+ }
+
+ public boolean isOrdered() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public String getLabel() {
+ return "" ; // TODO: uncomment when template bindings are supported + this.templateBindingFacade.getLabel() ;
+ }
+
+ public void bindTemplate(Map<TemplateParameter, ParameterableElement> substitutions) {
+ // Templates are not supported in this version of the alf editor
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/TypeFacadeFactory.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/TypeFacadeFactory.java
new file mode 100644
index 00000000000..f9f42e2beb8
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/TypeFacadeFactory.java
@@ -0,0 +1,393 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.alf.validation.typing;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.papyrus.alf.alf.AcceptClause;
+import org.eclipse.papyrus.alf.alf.AcceptStatement;
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.ClassificationExpression;
+import org.eclipse.papyrus.alf.alf.Expression;
+import org.eclipse.papyrus.alf.alf.InvocationOrAssignementOrDeclarationStatement;
+import org.eclipse.papyrus.alf.alf.LocalNameDeclarationStatement;
+import org.eclipse.papyrus.alf.alf.LoopVariableDefinition;
+import org.eclipse.papyrus.alf.alf.NameExpression;
+import org.eclipse.papyrus.alf.alf.NamedTemplateBinding;
+import org.eclipse.papyrus.alf.alf.QualifiedNameWithBinding;
+import org.eclipse.papyrus.alf.alf.SequenceExpansionExpression;
+import org.eclipse.papyrus.alf.alf.SuperInvocationExpression;
+import org.eclipse.papyrus.alf.alf.UnqualifiedName;
+import org.eclipse.papyrus.alf.scoping.AlfScopeProvider;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.ElementImport;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.ParameterableElement;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.TemplateParameter;
+import org.eclipse.uml2.uml.TypedElement;
+
+public class TypeFacadeFactory {
+
+ public static TypeFacadeFactory eInstance = new TypeFacadeFactory() ;
+
+ public TypeFacade createTypeFacade(EObject typeObject) {
+ TypeFacade result = new TypeFacade() {
+ @Override
+ public String getLabelWithoutBinding() {
+ try {
+ if (typeObject instanceof Classifier)
+ return ((Classifier)typeObject).getName() ;
+ if (typeObject instanceof ElementImport) {
+ ElementImport eImport = (ElementImport)typeObject ;
+ if (eImport.getAlias()!=null )
+ return eImport.getAlias() ;
+ else
+ return ((Classifier)eImport.getImportedElement()).getName() ;
+ }
+ if (typeObject instanceof Parameter) {
+ return ((Parameter)typeObject).getType().getName() ;
+ }
+ if (typeObject instanceof TypedElement) {
+ return ((TypedElement)typeObject).getType().getName() ;
+ }
+ if (typeObject instanceof SequenceExpansionExpression) {
+ TypeFacade t = TypeFacadeFactory.eInstance.createTypeFacade(typeObject) ;
+ return t.extractActualType().getName() ;
+ }
+ }
+ catch (NullPointerException e) { // occurs when no type can be derived from typeObject (i.e., typeObject.getType() == null)
+ return "any" ;
+ }
+ return super.getLabel() ;
+ }
+
+ @Override
+ public String getLabel() {
+ try {
+ if (typeObject instanceof Classifier)
+ return ((Classifier)typeObject).getName() + super.getLabel() ;
+ if (typeObject instanceof ElementImport) {
+ ElementImport eImport = (ElementImport)typeObject ;
+ if (eImport.getAlias()!=null )
+ return eImport.getAlias() + super.getLabel() ;
+ else
+ return ((Classifier)eImport.getImportedElement()).getName() + super.getLabel() ;
+ }
+ if (typeObject instanceof Parameter) {
+ return ((Parameter)typeObject).getType().getName() + super.getLabel() ;
+ }
+ if (typeObject instanceof TypedElement) {
+ return ((TypedElement)typeObject).getType().getName() + super.getLabel() ;
+ }
+ if (typeObject instanceof SequenceExpansionExpression) {
+ TypeFacade t = TypeFacadeFactory.eInstance.createTypeFacade(typeObject) ;
+ return t.extractActualType().getName() + super.getLabel() ;
+ }
+ if (typeObject == null)
+ return "any" ;
+ }
+ catch (NullPointerException e) { // occurs when no type can be derived from typeObject (i.e., typeObject.getType() == null)
+ return "any" ;
+ }
+ return super.getLabel() ;
+ }
+ };
+ if (typeObject instanceof Classifier)
+ result.setTypeObject(typeObject) ;
+ else if (typeObject instanceof ElementImport)
+ result.setTypeObject(typeObject) ;
+ else if (typeObject instanceof Parameter)
+ result.setTypeObject(typeObject) ;
+ else if (typeObject instanceof LocalNameDeclarationStatement) {
+ LocalNameDeclarationStatement statement = (LocalNameDeclarationStatement)typeObject ;
+ if (statement.getType() != null) {
+ result.setTypeObject(createVoidFacade(statement.getType()).typeObject);
+ }
+ }
+ else if (typeObject instanceof LoopVariableDefinition) {
+ LoopVariableDefinition loopVariable = (LoopVariableDefinition)typeObject ;
+ if (loopVariable.getType() != null) {
+ result.setTypeObject(createVoidFacade(loopVariable.getType()).typeObject) ;
+ }
+ else if (loopVariable.getExpression1() != null) {
+ TypeExpression typeOfExpression1 = new TypeUtils().getTypeOfExpression(loopVariable.getExpression1()) ;
+ if (loopVariable.getExpression2() != null) {
+ TypeExpression typeOfExpression2 = new TypeUtils().getTypeOfExpression(loopVariable.getExpression2()) ;
+ int _1_2_compatibility = typeOfExpression1.isCompatibleWithMe(typeOfExpression2) ;
+ int _2_1_compatibility = typeOfExpression2.isCompatibleWithMe(typeOfExpression1) ;
+ if (_1_2_compatibility == _2_1_compatibility) {
+ if (_1_2_compatibility != 0) {
+ result.setTypeObject(typeOfExpression1.getTypeFacade().typeObject) ;
+ }
+ }
+ else {
+ if (_1_2_compatibility > _2_1_compatibility)
+ result.setTypeObject(typeOfExpression1.getTypeFacade().typeObject) ;
+ else
+ result.setTypeObject(typeOfExpression2.getTypeFacade().typeObject) ;
+ }
+ }
+ else {
+ result.setTypeObject(typeOfExpression1.getTypeFacade().typeObject) ;
+ }
+ }
+ }
+ else if (typeObject instanceof Property) {
+ result.setTypeObject(typeObject) ;
+ }
+ else if (typeObject instanceof SequenceExpansionExpression) {
+ result.setTypeObject(typeObject) ;
+ }
+ else if (typeObject instanceof AcceptStatement) {
+ // first extract the accept clause
+ AcceptClause acceptClause = (AcceptClause)((AcceptStatement)typeObject).getClause() ;
+ if (acceptClause.getQualifiedNameList() != null && !(acceptClause.getQualifiedNameList().getQualifiedName().isEmpty())) {
+ // TODO : getQualifiedName is a collection. Should compute the least common ancestor.
+ TypeFacade f = TypeFacadeFactory.eInstance.createVoidFacade(acceptClause.getQualifiedNameList().getQualifiedName().get(0)) ;
+ result.setTypeObject(f.extractActualType()) ;
+ }
+ else {
+ result.setTypeObject(typeObject) ;
+ }
+ }
+ return result ;
+ }
+
+ public ErrorTypeFacade createErrorTypeFacade(String message, EObject source, EStructuralFeature structuralFeature) {
+ ErrorTypeFacade result = new ErrorTypeFacade() ;
+ result.setMessage(message) ;
+ result.setErrorSource(source) ;
+ result.setStructuralFeature(structuralFeature) ;
+ return result ;
+ }
+
+ public TypeFacade createVoidFacade(Expression exp) {
+ NameExpression actualNameExpression = null ;
+ for (Iterator<EObject> i = exp.eAllContents() ; i.hasNext() && actualNameExpression == null ; ) {
+ EObject o = i.next() ;
+ if (o instanceof NameExpression)
+ actualNameExpression = (NameExpression)o ;
+ }
+ if (actualNameExpression == null)
+ return createErrorTypeFacade("A type expression is expected", exp, AlfPackage.eINSTANCE.getConditionalTestExpression_Exp()) ;
+ else
+ return createVoidFacade(actualNameExpression) ;
+ }
+
+ public TypeFacade createVoidFacade(NameExpression exp) {
+ //if (! (exp.eContainer() instanceof ClassificationExpression ||
+ // exp.eContainer() instanceof SuperInvocationExpression ||
+ // exp.eContainer() instanceof InvocationOrAssignementOrDeclarationStatement)) {
+ // return createErrorTypeFacade("A type expression is expected", exp, AlfPackage.eINSTANCE.getNameExpression_Id()) ;
+ //}
+ EObject previousPackage = null ;
+ if (exp.getPath() != null) {
+ List<UnqualifiedName> path = exp.getPath().getNamespace() ;
+ // first resolves the first element of the path
+ List<EObject> visiblePackages = AlfScopeProvider.scopingTool.getVisiblePackages(exp).resolveByName(path.get(0).getName()) ;
+ if (visiblePackages.isEmpty()) {
+ return createErrorTypeFacade("Could not resolve package " + path.get(0).getName(), path.get(0), AlfPackage.eINSTANCE.getUnqualifiedName_Name()) ;
+ }
+ else if (visiblePackages.size() > 1) {
+ return createErrorTypeFacade(path.get(0).getName() + " resolves to multiple packages", exp.getPath(), AlfPackage.eINSTANCE.getQualifiedNamePath_Namespace()) ;
+ }
+ else {
+ List<EObject> nestedVisiblePackages ;
+ previousPackage = visiblePackages.get(0) ;
+ for (int i = 1 ; i<path.size() ; i++) {
+ nestedVisiblePackages = AlfScopeProvider.scopingTool.getVisiblePackages(previousPackage).resolveByName(path.get(i).getName()) ;
+ if (nestedVisiblePackages.isEmpty()) {
+ return createErrorTypeFacade("Could not resolve package " + path.get(i).getName(), path.get(i), AlfPackage.eINSTANCE.getUnqualifiedName_Name()) ;
+ }
+ else if (nestedVisiblePackages.size() > 1) {
+ return createErrorTypeFacade(path.get(i).getName() + " resolves to multiple packages", exp.getPath(), AlfPackage.eINSTANCE.getQualifiedNamePath_Namespace()) ;
+ }
+ previousPackage = nestedVisiblePackages.get(0) ;
+ }
+ }
+ }
+ // At this point, the path has been validated, can check the final id.
+ EObject container = exp.eContainer() ;
+ if (container instanceof InvocationOrAssignementOrDeclarationStatement) {
+ InvocationOrAssignementOrDeclarationStatement cddDclStatement = (InvocationOrAssignementOrDeclarationStatement)container ;
+ if (cddDclStatement.getVariableDeclarationCompletion() != null) {
+ if (cddDclStatement.getTypePart_OR_assignedPart_OR_invocationPart().getSuffix() != null) {
+ return createErrorTypeFacade("A type expression is expected", cddDclStatement, AlfPackage.eINSTANCE.getInvocationOrAssignementOrDeclarationStatement_TypePart_OR_assignedPart_OR_invocationPart()) ;
+ }
+ if (exp.getInvocationCompletion() != null ||
+ exp.getPostfixOp() != null ||
+ exp.getPrefixOp() != null ||
+ exp.getSequenceConstructionCompletion() != null ) {// TODO: handle sequence constructions
+ return createErrorTypeFacade("A type expression is expected", cddDclStatement, AlfPackage.eINSTANCE.getInvocationOrAssignementOrDeclarationStatement_TypePart_OR_assignedPart_OR_invocationPart()) ;
+ }
+ List<EObject> visibleClassifiers = null ;
+
+ if (previousPackage == null)
+ visibleClassifiers = AlfScopeProvider.scopingTool.getVisibleClassifiers(exp).resolveByName(exp.getId()) ;
+ else
+ visibleClassifiers = AlfScopeProvider.scopingTool.getVisibleClassifiers(previousPackage).resolveByName(exp.getId()) ;
+
+ if (visibleClassifiers.isEmpty()) {
+ return createErrorTypeFacade("Could not resolve classifier " + exp.getId(), exp, AlfPackage.eINSTANCE.getNameExpression_Id()) ;
+ }
+ else if (visibleClassifiers.size() > 1) {
+ return createErrorTypeFacade(exp.getId() + " resolves to multiple classifiers",
+ cddDclStatement, AlfPackage.eINSTANCE.getNameExpression_Id()) ;
+ }
+ return new VoidFacade(createTypeFacade(visibleClassifiers.get(0))) ;
+ }
+ }
+ else if (container instanceof ClassificationExpression) {
+ // TODO
+ }
+ else if (container instanceof SuperInvocationExpression) {
+ // TODO: Not to be handled here => Should not resolve to a type
+ }
+ List<EObject> visibleClassifiers = null ;
+
+ if (previousPackage == null)
+ visibleClassifiers = AlfScopeProvider.scopingTool.getVisibleClassifiers(exp).resolveByName(exp.getId()) ;
+ else
+ visibleClassifiers = AlfScopeProvider.scopingTool.getVisibleClassifiers(previousPackage).resolveByName(exp.getId()) ;
+
+ if (visibleClassifiers.isEmpty()) {
+ return createErrorTypeFacade("Could not resolve classifier " + exp.getId(), exp, AlfPackage.eINSTANCE.getNameExpression_Id()) ;
+ }
+ else if (visibleClassifiers.size() > 1) {
+ return createErrorTypeFacade(exp.getId() + " resolves to multiple classifiers",
+ exp, AlfPackage.eINSTANCE.getNameExpression_Id()) ;
+ }
+ return new VoidFacade(createTypeFacade(visibleClassifiers.get(0))) ;
+ }
+
+
+
+ public TypeFacade createVoidFacade(QualifiedNameWithBinding exp) {
+ QualifiedNameWithBinding remaining = exp ;
+ EObject previousPackage = null ;
+ if (exp.getRemaining()!=null) { // A path is specified
+ List<EObject> visiblePackages = AlfScopeProvider.scopingTool.getVisiblePackages(exp).resolveByName(exp.getId()) ;
+ if (visiblePackages.isEmpty()) {
+ return createErrorTypeFacade("Could not resolve package " + exp.getId(), exp, AlfPackage.eINSTANCE.getQualifiedNameWithBinding_Id()) ;
+ }
+ else if (visiblePackages.size() > 1) {
+ return createErrorTypeFacade(exp.getId() + " resolves to multiple packages", exp, AlfPackage.eINSTANCE.getQualifiedNameWithBinding_Id()) ;
+ }
+ else {
+ List<EObject> nestedVisiblePackages ;
+ previousPackage = visiblePackages.get(0) ;
+ remaining = exp.getRemaining() ;
+ while (remaining.getRemaining() != null) {
+ nestedVisiblePackages = AlfScopeProvider.scopingTool.getVisiblePackages(previousPackage).resolveByName(remaining.getId()) ;
+ if (nestedVisiblePackages.isEmpty()) {
+ return createErrorTypeFacade("Could not resolve package " + remaining.getId(), remaining, AlfPackage.eINSTANCE.getQualifiedNameWithBinding_Id()) ;
+ }
+ else if (nestedVisiblePackages.size() > 1) {
+ return createErrorTypeFacade(remaining.getId() + " resolves to multiple packages", remaining, AlfPackage.eINSTANCE.getQualifiedNameWithBinding_Id()) ;
+ }
+ previousPackage = nestedVisiblePackages.get(0) ;
+ remaining = remaining.getRemaining() ;
+ }
+ }
+ }
+ // At this point, the (potential) path has been validated, can check the final id.
+ // The last remaining.id should resolve to a classifier
+ List<EObject> visibleClassifiers = null ;
+ if (previousPackage != null)
+ visibleClassifiers = AlfScopeProvider.scopingTool.getVisibleClassifiers(previousPackage).resolveByName(remaining.getId()) ;
+ else
+ visibleClassifiers = AlfScopeProvider.scopingTool.getVisibleClassifiers(exp).resolveByName(remaining.getId()) ;
+ if (visibleClassifiers.isEmpty()) {
+ return createErrorTypeFacade("Could not resolve classifier " + remaining.getId(),remaining,
+ AlfPackage.eINSTANCE.getQualifiedNameWithBinding_Id()) ;
+ }
+ else if (visibleClassifiers.size() > 1) {
+ return createErrorTypeFacade(remaining.getId() + " resolves to multiple classifiers.", remaining,
+ AlfPackage.eINSTANCE.getQualifiedNameWithBinding_Id()) ;
+ }
+
+ // Need to check that potential binding is valid
+ Classifier resolvedClassifier = (Classifier)visibleClassifiers.get(0) ;
+ if (!resolvedClassifier.isTemplate()) {
+ if (remaining.getBinding()!= null) {
+ return createErrorTypeFacade(remaining.getId() + " is not a template", remaining,
+ AlfPackage.eINSTANCE.getQualifiedNameWithBinding_Binding()) ;
+ }
+ else {
+ return new VoidFacade(createTypeFacade(visibleClassifiers.get(0))) ;
+ }
+ }
+ else {
+ if (remaining.getBinding()!= null) {
+ // Needs to check that the binding is correct:
+ List<ParameterableElement> orderedListOfParameteredElements = new ArrayList<ParameterableElement>() ;
+ Map<String, ParameterableElement> mapOfParameteredElements = new HashMap<String, ParameterableElement>() ;
+ for (TemplateParameter tp : resolvedClassifier.getOwnedTemplateSignature().getOwnedParameters()) {
+ ParameterableElement p = tp.getParameteredElement() ;
+ if (p != null) {
+ orderedListOfParameteredElements.add(p) ;
+ mapOfParameteredElements.put(((NamedElement)p).getName(), p) ;
+ }
+ }
+ // Builds the substitutions map
+ Map<TemplateParameter, ParameterableElement> substitutionsMap = new HashMap<TemplateParameter, ParameterableElement>() ;
+ for (NamedTemplateBinding ntp : remaining.getBinding().getBindings()) {
+ ParameterableElement formal = mapOfParameteredElements.get(ntp.getFormal()) ;
+ if (formal == null) {
+ return createErrorTypeFacade("Template parameter " + ntp.getFormal() + " is undefined for classifier " + remaining.getId() , ntp,
+ AlfPackage.eINSTANCE.getNamedTemplateBinding_Formal()) ;
+ }
+ TypeFacade actual = createVoidFacade(ntp.getActual()) ;
+ if (actual instanceof ErrorTypeFacade)
+ return actual ;
+ substitutionsMap.put(formal.getTemplateParameter(), actual.extractActualType()) ;
+ }
+ // Checks the number of specified substitution
+ if (remaining.getBinding().getBindings().size() != orderedListOfParameteredElements.size()) {
+ String errorMessage = "" ;
+ if (remaining.getBinding().getBindings().size() > orderedListOfParameteredElements.size())
+ errorMessage = "Too many template bindings specified for " + remaining.getId() ;
+ else {
+ errorMessage = "Template bindings are missing for " + remaining.getId() ;
+ }
+ return createErrorTypeFacade(errorMessage, remaining,
+ AlfPackage.eINSTANCE.getQualifiedNameWithBinding_Binding()) ;
+ }
+ // Now, can create the void facade, and bind it with appropriate substitutions
+ VoidFacade boundResolvedClassifier = new VoidFacade(createTypeFacade(visibleClassifiers.get(0))) ;
+// HashMap<Object, EObject> actualSubsitutionsMap = new HashMap<Object, EObject>() ;
+// for (ParameterableElement p : orderedListOfParameteredElements) {
+// actualSubsitutionsMap.put(TemplateBindingUtils.getParameteredElementName(p),
+// subsitutionsMap.get(p) ) ;
+// }
+ boundResolvedClassifier.bindTemplate(substitutionsMap) ;
+
+ return boundResolvedClassifier;
+ }
+ else {
+ // Binding is not specified. It is up to the caller to perform implicit bindings.
+ return new VoidFacade(createTypeFacade(visibleClassifiers.get(0))) ;
+ }
+ }
+ }
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/TypeInferenceException.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/TypeInferenceException.java
new file mode 100644
index 00000000000..ead36e1263d
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/TypeInferenceException.java
@@ -0,0 +1,41 @@
+package org.eclipse.papyrus.alf.validation.typing;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class TypeInferenceException extends Exception {
+
+ protected String errorMessage = "" ;
+ public String getErrorMessage() {
+ return errorMessage;
+ }
+
+ protected EObject errorSource = null ;
+ public EObject getErrorSource() {
+ return errorSource;
+ }
+
+ protected EStructuralFeature errorFeature = null ;
+ public EStructuralFeature getErrorFeature() {
+ return errorFeature;
+ }
+
+ public TypeInferenceException(TypeExpression typeOfArgument) {
+ // TODO Auto-generated constructor stub
+ if (typeOfArgument != null && typeOfArgument.getTypeFacade() != null) {
+ if (typeOfArgument.getTypeFacade() instanceof ErrorTypeFacade) {
+ ErrorTypeFacade e = (ErrorTypeFacade)typeOfArgument.getTypeFacade() ;
+ this.errorMessage += e.getLabel() ;
+ this.errorSource = e.getErrorSource() ;
+ this.errorFeature = e.getStructuralFeature() ;
+ }
+ }
+ }
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -152485940032266338L;
+
+
+}
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/TypeUtils.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/TypeUtils.java
new file mode 100644
index 00000000000..c63e834dddc
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/TypeUtils.java
@@ -0,0 +1,1799 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.alf.validation.typing;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.papyrus.alf.alf.AdditiveExpression;
+import org.eclipse.papyrus.alf.alf.AlfPackage;
+import org.eclipse.papyrus.alf.alf.AndExpression;
+import org.eclipse.papyrus.alf.alf.BOOLEAN_LITERAL;
+import org.eclipse.papyrus.alf.alf.ClassExtentExpression;
+import org.eclipse.papyrus.alf.alf.ClassificationExpression;
+import org.eclipse.papyrus.alf.alf.CollectOrIterateOperation;
+import org.eclipse.papyrus.alf.alf.ConditionalAndExpression;
+import org.eclipse.papyrus.alf.alf.ConditionalOrExpression;
+import org.eclipse.papyrus.alf.alf.ConditionalTestExpression;
+import org.eclipse.papyrus.alf.alf.EqualityExpression;
+import org.eclipse.papyrus.alf.alf.ExclusiveOrExpression;
+import org.eclipse.papyrus.alf.alf.Expression;
+import org.eclipse.papyrus.alf.alf.ForAllOrExistsOrOneOperation;
+import org.eclipse.papyrus.alf.alf.INTEGER_LITERAL;
+import org.eclipse.papyrus.alf.alf.InclusiveOrExpression;
+import org.eclipse.papyrus.alf.alf.InstanceCreationExpression;
+import org.eclipse.papyrus.alf.alf.IsUniqueOperation;
+import org.eclipse.papyrus.alf.alf.LITERAL;
+import org.eclipse.papyrus.alf.alf.LinkOperationExpression;
+import org.eclipse.papyrus.alf.alf.MultiplicativeExpression;
+import org.eclipse.papyrus.alf.alf.NameExpression;
+import org.eclipse.papyrus.alf.alf.NonLiteralValueSpecification;
+import org.eclipse.papyrus.alf.alf.NullExpression;
+import org.eclipse.papyrus.alf.alf.OperationCallExpression;
+import org.eclipse.papyrus.alf.alf.Tuple;
+//import org.eclipse.papyrus.alf.alf.OperationCallExpressionWithoutDot;
+import org.eclipse.papyrus.alf.alf.ParenthesizedExpression;
+import org.eclipse.papyrus.alf.alf.PrimaryExpression;
+import org.eclipse.papyrus.alf.alf.PropertyCallExpression;
+import org.eclipse.papyrus.alf.alf.RelationalExpression;
+import org.eclipse.papyrus.alf.alf.STRING_LITERAL;
+import org.eclipse.papyrus.alf.alf.SelectOrRejectOperation;
+import org.eclipse.papyrus.alf.alf.SequenceConstructionExpression;
+import org.eclipse.papyrus.alf.alf.SequenceConstructionOrAccessCompletion;
+import org.eclipse.papyrus.alf.alf.SequenceElement;
+import org.eclipse.papyrus.alf.alf.SequenceExpansionExpression;
+import org.eclipse.papyrus.alf.alf.SequenceOperationExpression;
+import org.eclipse.papyrus.alf.alf.SequenceReductionExpression;
+import org.eclipse.papyrus.alf.alf.ShiftExpression;
+import org.eclipse.papyrus.alf.alf.SuffixExpression;
+import org.eclipse.papyrus.alf.alf.SuperInvocationExpression;
+import org.eclipse.papyrus.alf.alf.ThisExpression;
+import org.eclipse.papyrus.alf.alf.TupleElement;
+import org.eclipse.papyrus.alf.alf.UNLIMITED_LITERAL;
+import org.eclipse.papyrus.alf.alf.UnaryExpression;
+import org.eclipse.papyrus.alf.alf.UnqualifiedName;
+import org.eclipse.papyrus.alf.alf.ValueSpecification;
+import org.eclipse.papyrus.alf.scoping.AlfScopeProvider;
+import org.eclipse.papyrus.alf.validation.AlfJavaValidator;
+import org.eclipse.uml2.uml.Behavior;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Enumeration;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.ParameterDirectionKind;
+import org.eclipse.uml2.uml.ParameterableElement;
+import org.eclipse.uml2.uml.PrimitiveType;
+import org.eclipse.uml2.uml.TemplateParameter;
+import org.eclipse.uml2.uml.TemplateableElement;
+
+public class TypeUtils {
+
+ public static TypeFacade _undefined ;
+ public static TypeFacade _integer ;
+ public static TypeFacade _boolean ;
+ public static TypeFacade _unlimited ;
+ public static TypeFacade _natural ;
+ public static TypeFacade _string ;
+ public static TypeFacade _bitString ;
+ public static TypeExpression _nullExpression ;
+ public static TypeFacade _Collection ;
+ public static TypeFacade _Set ;
+ public static TypeFacade _Bag ;
+ public static TypeFacade _Queue ;
+ public static TypeFacade _OrderedSet ;
+ public static TypeFacade _List ;
+ public static TypeFacade _Deque ;
+ public static TypeFacade _Map ;
+ public static TypeFacade _Entry ;
+ public static Map<String, SignatureFacade> predefinedCollectionFunctions ;
+
+
+ private SuffixExpression suffixToBeIgnored = null ;
+
+ public TypeUtils() {
+
+ }
+
+ public TypeUtils(SuffixExpression suffixToBeIgnored) {
+ this.suffixToBeIgnored = suffixToBeIgnored ;
+ }
+
+ public TypeExpression getTypeOfExpression(Expression exp) {
+ return getTypeOfConditionalTestExpression((ConditionalTestExpression)exp) ;
+ }
+
+ public TypeExpression getTypeOfConditionalTestExpression(ConditionalTestExpression exp) {
+ if (exp.getWhenTrue() != null) {
+ TypeExpression typeOfCondition = getTypeOfConditionalOrExpression(exp.getExp()) ;
+ if (typeOfCondition.getTypeFacade() instanceof ErrorTypeFacade) {
+ ErrorTypeFacade error = (ErrorTypeFacade)typeOfCondition.getTypeFacade() ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error);
+ }
+ else {
+ if (TypeExpressionFactory.eInstance.createTypeExpression(TypeUtils._boolean).isCompatibleWithMe(typeOfCondition) != 3) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade("An expression of type Boolean is expected. Found an expression of type " + typeOfCondition.getLabel(), exp, AlfPackage.eINSTANCE.getConditionalTestExpression_Exp()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error);
+ }
+ }
+ TypeExpression typeOfWhenTrue = getTypeOfConditionalTestExpression(exp.getWhenTrue()) ;
+ if (typeOfWhenTrue.getTypeFacade() instanceof ErrorTypeFacade) {
+ ErrorTypeFacade error = (ErrorTypeFacade)typeOfWhenTrue.getTypeFacade() ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error);
+ }
+ if (exp.getWhenFalse() == null) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade("The \'when false\' alternative is missing", exp, AlfPackage.eINSTANCE.getConditionalTestExpression_WhenFalse()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error);
+ }
+ else {
+ TypeExpression typeOfWhenFalse = getTypeOfConditionalTestExpression(exp.getWhenFalse()) ;
+ if (typeOfWhenFalse.getTypeFacade() instanceof ErrorTypeFacade) {
+ ErrorTypeFacade error = (ErrorTypeFacade)typeOfWhenFalse.getTypeFacade() ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error);
+ }
+ else {
+ int falseTrueCompatibility = typeOfWhenFalse.isCompatibleWithMe(typeOfWhenTrue) ;
+ int trueFalseCompatibility = typeOfWhenTrue.isCompatibleWithMe(typeOfWhenFalse) ;
+ if (falseTrueCompatibility == trueFalseCompatibility) {
+ if (falseTrueCompatibility == 0) {// No type compatibility between the two alternatives
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade("The \'when true\' and \'when false\' alternatives must be type compatible", exp, AlfPackage.eINSTANCE.getConditionalTestExpression_WhenTrue()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error);
+ }
+ else
+ return typeOfWhenTrue ;
+ }
+ else if (falseTrueCompatibility > trueFalseCompatibility)
+ return typeOfWhenFalse ;
+ else // falseTrueCompatibility < trueFalseCompatibility
+ return typeOfWhenTrue ;
+ }
+ }
+ }
+ return getTypeOfConditionalOrExpression((ConditionalOrExpression)exp.getExp()) ;
+ }
+
+ public TypeExpression getTypeOfConditionalOrExpression(ConditionalOrExpression exp) {
+ if (exp.getExp().size() > 1) {
+ TypeExpression previous = getTypeOfConditionalAndExpression(exp.getExp().get(0)) ;
+ if (previous.getTypeFacade() instanceof ErrorTypeFacade)
+ return previous ;
+ else if (TypeExpressionFactory.eInstance.createTypeExpression(_boolean).isCompatibleWithMe(previous) == 0) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade("Expecting an expression of type Boolean. Found an expression of type " + previous.getLabel(), exp, AlfPackage.eINSTANCE.getConditionalAndExpression_Exp()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ TypeExpression current = null ;
+ for (int i = 1 ; i<exp.getExp().size() ; i++) {
+ List<TypeExpression> argumentTypes = new ArrayList<TypeExpression>() ;
+ argumentTypes.add(previous) ;
+ current = getTypeOfConditionalAndExpression(exp.getExp().get(i)) ;
+ if (current.getTypeFacade() instanceof ErrorTypeFacade)
+ return current ;
+ else if (TypeExpressionFactory.eInstance.createTypeExpression(_boolean).isCompatibleWithMe(current) == 0) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade("Operator || is undefined for (" + previous.getLabel() + ", " + current.getLabel() + ")", exp, AlfPackage.eINSTANCE.getConditionalAndExpression_Exp()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ previous = current ;
+ }
+ return current ;
+ }
+ return getTypeOfConditionalAndExpression((ConditionalAndExpression)exp.getExp().get(0)) ;
+ }
+
+ public TypeExpression getTypeOfConditionalAndExpression(ConditionalAndExpression exp) {
+ if (exp.getExp().size() > 1) {
+ TypeExpression previous = getTypeOfInclusiveOrExpression(exp.getExp().get(0)) ;
+ if (previous.getTypeFacade() instanceof ErrorTypeFacade)
+ return previous ;
+ else if (TypeExpressionFactory.eInstance.createTypeExpression(_boolean).isCompatibleWithMe(previous) == 0) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade("Expecting an expression of type Boolean. Found an expression of type " + previous.getLabel(), exp, AlfPackage.eINSTANCE.getConditionalAndExpression_Exp()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ TypeExpression current = null ;
+ for (int i = 1 ; i<exp.getExp().size() ; i++) {
+ List<TypeExpression> argumentTypes = new ArrayList<TypeExpression>() ;
+ argumentTypes.add(previous) ;
+ current = getTypeOfInclusiveOrExpression(exp.getExp().get(i)) ;
+ if (current.getTypeFacade() instanceof ErrorTypeFacade)
+ return current ;
+ else if (TypeExpressionFactory.eInstance.createTypeExpression(_boolean).isCompatibleWithMe(current) == 0) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade("Operator && is undefined for (" + previous.getLabel() + ", " + current.getLabel() + ")", exp, AlfPackage.eINSTANCE.getConditionalAndExpression_Exp()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ previous = current ;
+ }
+ return current ;
+ }
+ return getTypeOfInclusiveOrExpression(exp.getExp().get(0)) ;
+ }
+
+ public TypeExpression getTypeOfInclusiveOrExpression(InclusiveOrExpression exp) {
+ if (exp.getExp().size() > 1) {
+ TypeExpression previous = getTypeOfExclusiveOrExpression(exp.getExp().get(0)) ;
+ if (previous.getTypeFacade() instanceof ErrorTypeFacade)
+ return previous ;
+ TypeExpression current = null ;
+ for (int i = 1 ; i<exp.getExp().size() ; i++) {
+ List<TypeExpression> argumentTypes = new ArrayList<TypeExpression>() ;
+ argumentTypes.add(previous) ;
+ current = getTypeOfExclusiveOrExpression(exp.getExp().get(i)) ;
+ if (current.getTypeFacade() instanceof ErrorTypeFacade)
+ return current ;
+ argumentTypes.add(current) ;
+ List<SignatureFacade> availableSignatures = AlfJavaValidator.predefinedBehaviorsAndTypes.getSignatures("|") ;
+ List<SignatureFacade> applicableSignatures = SignatureFacade.findNearestSignature(argumentTypes, availableSignatures) ;
+ if (applicableSignatures.isEmpty() || applicableSignatures.size()>1 ) {
+ String message = "Operator | is undefined for (" + previous.getLabel() + ", " + current.getLabel() + ")";
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(message, exp, AlfPackage.eINSTANCE.getExclusiveOrExpression_Exp()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ else
+ current = applicableSignatures.get(0).getReturnType() ;
+ previous = current ;
+ }
+ return current ;
+ }
+ return getTypeOfExclusiveOrExpression(exp.getExp().get(0)) ;
+ }
+
+ public TypeExpression getTypeOfExclusiveOrExpression(ExclusiveOrExpression exp) {
+ if (exp.getExp().size() > 1) {
+ TypeExpression previous = getTypeOfAndExpression(exp.getExp().get(0)) ;
+ if (previous.getTypeFacade() instanceof ErrorTypeFacade)
+ return previous ;
+ TypeExpression current = null ;
+ for (int i = 1 ; i<exp.getExp().size() ; i++) {
+ List<TypeExpression> argumentTypes = new ArrayList<TypeExpression>() ;
+ argumentTypes.add(previous) ;
+ current = getTypeOfAndExpression(exp.getExp().get(i)) ;
+ if (current.getTypeFacade() instanceof ErrorTypeFacade)
+ return current ;
+ argumentTypes.add(current) ;
+ List<SignatureFacade> availableSignatures = AlfJavaValidator.predefinedBehaviorsAndTypes.getSignatures("^") ;
+ List<SignatureFacade> applicableSignatures = SignatureFacade.findNearestSignature(argumentTypes, availableSignatures) ;
+ if (applicableSignatures.isEmpty() || applicableSignatures.size()>1 ) {
+ String message = "Operator ^ is undefined for (" + previous.getLabel() + ", " + current.getLabel() + ")";
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(message, exp, AlfPackage.eINSTANCE.getExclusiveOrExpression_Exp()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ else
+ current = applicableSignatures.get(0).getReturnType() ;
+ previous = current ;
+ }
+ return current ;
+ }
+ return getTypeOfAndExpression(exp.getExp().get(0)) ;
+ }
+
+ public TypeExpression getTypeOfAndExpression(AndExpression exp) {
+ if (exp.getExp().size() > 1) {
+ TypeExpression previous = getTypeOfEqualityExpression(exp.getExp().get(0)) ;
+ if (previous.getTypeFacade() instanceof ErrorTypeFacade)
+ return previous ;
+ TypeExpression current = null ;
+ for (int i = 1 ; i<exp.getExp().size() ; i++) {
+ List<TypeExpression> argumentTypes = new ArrayList<TypeExpression>() ;
+ argumentTypes.add(previous) ;
+ current = getTypeOfEqualityExpression(exp.getExp().get(i)) ;
+ if (current.getTypeFacade() instanceof ErrorTypeFacade)
+ return current ;
+ argumentTypes.add(current) ;
+ List<SignatureFacade> availableSignatures = AlfJavaValidator.predefinedBehaviorsAndTypes.getSignatures("&") ;
+ List<SignatureFacade> applicableSignatures = SignatureFacade.findNearestSignature(argumentTypes, availableSignatures) ;
+ if (applicableSignatures.isEmpty() || applicableSignatures.size()>1 ) {
+ String message = "Operator & is undefined for (" + previous.getLabel() + ", " + current.getLabel() + ")";
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(message, exp, AlfPackage.eINSTANCE.getAndExpression_Exp()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ else
+ current = applicableSignatures.get(0).getReturnType() ;
+ previous = current ;
+ }
+ return current ;
+ }
+ return getTypeOfEqualityExpression(exp.getExp().get(0)) ;
+ }
+
+ public TypeExpression getTypeOfEqualityExpression(EqualityExpression exp) {
+ if (exp.getExp().size() > 1) {
+ for (ClassificationExpression classificationExp : exp.getExp()) {
+ TypeExpression argType = getTypeOfClassificationExpression(classificationExp) ;
+ if (argType.getTypeFacade() instanceof ErrorTypeFacade)
+ return argType ;
+ }
+ return TypeExpressionFactory.eInstance.createTypeExpression(_boolean);
+ }
+ return getTypeOfClassificationExpression(exp.getExp().get(0)) ;
+ }
+
+ public TypeExpression getTypeOfClassificationExpression(ClassificationExpression exp) {
+ if (exp.getOp() != null) {
+ TypeExpression typeOfClassifiedPart = getTypeOfRelationalExpression(exp.getExp()) ;
+ if (typeOfClassifiedPart.getTypeFacade() instanceof ErrorTypeFacade)
+ return typeOfClassifiedPart ;
+ TypeFacade typeOfClassificationPart = TypeFacadeFactory.eInstance.createVoidFacade(exp.getTypeName()) ;
+ if (typeOfClassificationPart instanceof ErrorTypeFacade)
+ return TypeExpressionFactory.eInstance.createTypeExpression(typeOfClassificationPart) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(_boolean);
+ }
+ return getTypeOfRelationalExpression(exp.getExp()) ;
+ }
+
+ public TypeExpression getTypeOfRelationalExpression(RelationalExpression exp) {
+ if (exp.getOp() != null) {
+ TypeExpression typeOfLeft = getTypeOfShiftExpression(exp.getLeft()) ;
+ if (typeOfLeft.getTypeFacade() instanceof ErrorTypeFacade)
+ return typeOfLeft ;
+ if (exp.getRight() != null) {
+ TypeExpression typeOfRight = getTypeOfShiftExpression(exp.getRight()) ;
+ if (typeOfRight.getTypeFacade() instanceof ErrorTypeFacade)
+ return typeOfRight ;
+ List<SignatureFacade> availableSignatures = AlfJavaValidator.predefinedBehaviorsAndTypes.getSignatures(exp.getOp()) ;
+ List<TypeExpression> argumentTypes = new ArrayList<TypeExpression>() ;
+ argumentTypes.add(typeOfLeft) ;
+ argumentTypes.add(typeOfRight) ;
+ List<SignatureFacade> applicableSignatures = SignatureFacade.findNearestSignature(argumentTypes, availableSignatures) ;
+ if (applicableSignatures.isEmpty() || applicableSignatures.size()>1) {
+ String message = "Operator " + exp.getOp() + " is undefined for (" + typeOfLeft.getLabel() + ", " + typeOfRight.getLabel() + ")";
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(message, exp, AlfPackage.eINSTANCE.getRelationalExpression_Op()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ else {
+ return applicableSignatures.get(0).getReturnType() ;
+ }
+
+ }
+ else {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade("Right operand missing", exp, AlfPackage.eINSTANCE.getRelationalExpression_Left()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ }
+ return getTypeOfShiftExpression(exp.getLeft()) ;
+ }
+
+ public TypeExpression getTypeOfShiftExpression(ShiftExpression exp) {
+ if (exp.getOp() != null) {
+ if (exp.getExp().size() == 2) {
+ TypeExpression typeOfLeft = getTypeOfAdditiveExpression(exp.getExp().get(0)) ;
+ if (typeOfLeft.getTypeFacade() instanceof ErrorTypeFacade)
+ return typeOfLeft ;
+ TypeExpression typeOfRight = getTypeOfAdditiveExpression(exp.getExp().get(1)) ;
+ if (typeOfRight.getTypeFacade() instanceof ErrorTypeFacade)
+ return typeOfRight ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(_bitString); // TODO: rely on PrimitiveBehaviors as soon as AlfLibrary is complete
+ }
+ else if (exp.getExp().size() == 1) {
+ TypeExpression typeOfLeft = getTypeOfAdditiveExpression(exp.getExp().get(0)) ;
+ if (typeOfLeft.getTypeFacade() instanceof ErrorTypeFacade)
+ return typeOfLeft ;
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade("Right operand missing", exp, AlfPackage.eINSTANCE.getShiftExpression_Exp()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ }
+ return getTypeOfAdditiveExpression(exp.getExp().get(0)) ;
+ }
+
+ public TypeExpression getTypeOfAdditiveExpression(AdditiveExpression exp) {
+ if (exp.getExp().size() > 1) {
+ TypeExpression previous = getTypeOfMultiplicativeExpression(exp.getExp().get(0)) ;
+ if (previous.getTypeFacade() instanceof ErrorTypeFacade)
+ return previous ;
+ TypeExpression current = null ;
+ for (int i = 1 ; i<exp.getExp().size() ; i++) {
+ List<TypeExpression> argumentTypes = new ArrayList<TypeExpression>() ;
+ argumentTypes.add(previous) ;
+ current = getTypeOfMultiplicativeExpression(exp.getExp().get(i)) ;
+ if (current.getTypeFacade() instanceof ErrorTypeFacade)
+ return current ;
+ argumentTypes.add(current) ;
+ List<SignatureFacade> availableSignatures = AlfJavaValidator.predefinedBehaviorsAndTypes.getSignatures(exp.getOp().get(i-1)) ;
+ List<SignatureFacade> applicableSignatures = SignatureFacade.findNearestSignature(argumentTypes, availableSignatures) ;
+ if (applicableSignatures.isEmpty() || applicableSignatures.size()>1 ) {
+ String message = "Operator " + exp.getOp().get(i-1) + " is undefined for (" + previous.getLabel() + ", " + current.getLabel() + ")";
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(message, exp, AlfPackage.eINSTANCE.getAdditiveExpression_Exp()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ else
+ current = applicableSignatures.get(0).getReturnType() ;
+ previous = current ;
+ }
+ return current ;
+ }
+ return getTypeOfMultiplicativeExpression(exp.getExp().get(0)) ;
+ }
+
+ public TypeExpression getTypeOfMultiplicativeExpression(MultiplicativeExpression exp) {
+ if (exp.getExp() == null || exp.getExp().size() == 0)
+ return TypeExpressionFactory.eInstance.createTypeExpression(_undefined) ;
+ if (exp.getExp().size() > 1) {
+ TypeExpression previous = getTypeOfUnaryExpression(exp.getExp().get(0)) ;
+ if (previous.getTypeFacade() instanceof ErrorTypeFacade)
+ return previous ;
+ TypeExpression current = null ;
+ for (int i = 1 ; i<exp.getExp().size() ; i++) {
+ List<TypeExpression> argumentTypes = new ArrayList<TypeExpression>() ;
+ argumentTypes.add(previous) ;
+ current = getTypeOfUnaryExpression(exp.getExp().get(i)) ;
+ if (current.getTypeFacade() instanceof ErrorTypeFacade)
+ return current ;
+ argumentTypes.add(current) ;
+ List<SignatureFacade> availableSignatures = AlfJavaValidator.predefinedBehaviorsAndTypes.getSignatures(exp.getOp().get(i-1)) ;
+ List<SignatureFacade> applicableSignatures = SignatureFacade.findNearestSignature(argumentTypes, availableSignatures) ;
+ if (applicableSignatures.isEmpty() || applicableSignatures.size()>1) {
+ String message = "Operator " + exp.getOp().get(i-1) + " is undefined for (" + previous.getLabel() + ", " + current.getLabel() + ")";
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(message, exp, AlfPackage.eINSTANCE.getMultiplicativeExpression_Exp()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ else
+ current = applicableSignatures.get(0).getReturnType() ;
+ previous = current ;
+ }
+
+ return current ;
+ }
+ return getTypeOfUnaryExpression(exp.getExp().get(0)) ;
+ }
+
+ public TypeExpression getTypeOfUnaryExpression(UnaryExpression exp) {
+ TypeExpression typeOfExp = getTypeOfPrimaryExpression(exp.getExp()) ;
+ if (typeOfExp.getTypeFacade() instanceof ErrorTypeFacade)
+ return typeOfExp ;
+ if (exp.getOp() != null) {
+ // '!'|'-'|'+'|'$'|'~'
+ if (exp.getOp().equals("!")) {
+ TypeExpression booleanExpression = TypeExpressionFactory.eInstance.createTypeExpression(_boolean) ;
+ if (booleanExpression.isCompatibleWithMe(typeOfExp) == 0) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ "Unrary operator ! does not apply to " + typeOfExp.getLabel(),
+ exp,
+ AlfPackage.eINSTANCE.getUnaryExpression_Op()) ;
+ typeOfExp = TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ }
+ else if (exp.getOp().equals("-") || exp.getOp().equals("+")) {
+ TypeExpression integerExpression = TypeExpressionFactory.eInstance.createTypeExpression(_integer) ;
+ TypeExpression naturalExpression = TypeExpressionFactory.eInstance.createTypeExpression(_natural) ;
+ TypeExpression unlimitedExpression = TypeExpressionFactory.eInstance.createTypeExpression(_unlimited) ;
+ if (! (integerExpression.isCompatibleWithMe(typeOfExp)!=0 ||
+ naturalExpression.isCompatibleWithMe(typeOfExp) !=0 ||
+ unlimitedExpression.isCompatibleWithMe(typeOfExp) !=0)) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ "Unary operator " + exp.getOp() + " does not apply to "+ typeOfExp.getLabel(),
+ exp,
+ AlfPackage.eINSTANCE.getUnaryExpression_Op()) ;
+ typeOfExp = TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ }
+ else if (exp.getOp().equals("$")) {
+ // Nothing special to do here
+ }
+ else if (exp.getOp().equals("~")) {
+ TypeExpression integerExpression = TypeExpressionFactory.eInstance.createTypeExpression(_integer) ;
+ TypeExpression bitstringExpression = TypeExpressionFactory.eInstance.createTypeExpression(_bitString) ;
+ if (! (integerExpression.isCompatibleWithMe(typeOfExp)!=0 ||
+ bitstringExpression.isCompatibleWithMe(typeOfExp) !=0)) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ "Unary operator " + exp.getOp() + " does not apply to "+ typeOfExp.getLabel(),
+ exp,
+ AlfPackage.eINSTANCE.getUnaryExpression_Op()) ;
+ typeOfExp = TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ }
+ else {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ "Undefined unary operator",
+ exp,
+ AlfPackage.eINSTANCE.getUnaryExpression_Op()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error);
+ }
+ }
+ return typeOfExp ;
+ }
+
+ public TypeExpression getTypeOfPrimaryExpression(PrimaryExpression exp) {
+ return getTypeOfValueSpecification(exp.getPrefix()) ;
+ }
+
+ public TypeExpression getTypeOfValueSpecification(ValueSpecification exp) {
+ TypeExpression type = null ;
+ if (exp instanceof NameExpression)
+ type = getTypeOfNameExpression((NameExpression)exp) ;
+ else if (exp instanceof LITERAL)
+ type = getTypeOfLITERAL((LITERAL)exp);
+ else if (exp instanceof ThisExpression)
+ type = getTypeOfThisExpression((ThisExpression)exp);
+ else if (exp instanceof SuperInvocationExpression)
+ type = getTypeOfSuperInvocationExpression((SuperInvocationExpression)exp);
+ else if (exp instanceof InstanceCreationExpression)
+ type = getTypeOfInstanceCreationExpression((InstanceCreationExpression)exp) ;
+ else if (exp instanceof ParenthesizedExpression)
+ type = getTypeOfParenthesizedExpression((ParenthesizedExpression)exp) ;
+ else if (exp instanceof NullExpression)
+ type = getTypeOfNullExpression((NullExpression)exp) ;
+ return type ;
+ }
+
+ public TypeExpression getTypeOfNullExpression(NullExpression exp) {
+ return TypeUtils._nullExpression ;
+ }
+
+ public TypeExpression getTypeOfInstanceCreationExpression(InstanceCreationExpression exp) {
+ if (exp.getTuple() != null) {
+ // first try to determine if the expression directly refers to a Class or a DataType
+ try {
+ SignatureFacade s = SignatureFacadeFactory.eInstance.createConstructorFacade(exp) ;
+ if (s.hasReturnType()) {
+ if (exp.getSuffix() != null && exp.getSuffix() != suffixToBeIgnored) {
+ return getTypeOfSuffixExpression(exp.getSuffix(), s.getReturnType()) ;
+ }
+ return s.getReturnType() ;
+ }
+ else {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ "Constructor " + exp.getConstructor().getId() + " is illformed (no return type defined)",
+ exp,
+ AlfPackage.eINSTANCE.getInstanceCreationExpression_Constructor()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ }
+ catch (Exception e) {
+ ErrorTypeFacade error = null ;
+ if (e instanceof TypeInferenceException) {
+ TypeInferenceException tie = (TypeInferenceException)e ;
+ error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ tie.getErrorMessage(),
+ tie.getErrorSource(),
+ tie.getErrorFeature()) ;
+ }
+ else {
+ error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ e.getMessage(),
+ exp,
+ AlfPackage.eINSTANCE.getInstanceCreationExpression_Constructor()) ;
+ }
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ }
+ else {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ "An instance creation or sequence creation is expected",
+ exp,
+ AlfPackage.eINSTANCE.getInstanceCreationExpression_Constructor()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ }
+
+ public TypeExpression getTypeOfSuperInvocationExpression(SuperInvocationExpression exp) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ "SuperInvocationExpression are not supported in this version of the Alf editor",
+ exp,
+ AlfPackage.eINSTANCE.getSuperInvocationExpression_OperationName()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+
+ public TypeExpression getTypeOfNonLiteralValueSpecification(NonLiteralValueSpecification exp) {
+ if (exp instanceof NameExpression)
+ return getTypeOfNameExpression((NameExpression)exp) ;
+ if (exp instanceof ThisExpression)
+ return getTypeOfThisExpression((ThisExpression)exp);
+ if (exp instanceof SuperInvocationExpression)
+ return getTypeOfSuperInvocationExpression((SuperInvocationExpression)exp) ;
+ if (exp instanceof InstanceCreationExpression)
+ return getTypeOfInstanceCreationExpression((InstanceCreationExpression)exp) ;
+ if (exp instanceof ParenthesizedExpression)
+ return getTypeOfParenthesizedExpression((ParenthesizedExpression)exp) ;
+ return null ;
+ }
+
+ public TypeExpression getTypeOfLITERAL(LITERAL exp) {
+ TypeFacade t = _undefined ;
+ if (exp instanceof BOOLEAN_LITERAL)
+ t = _boolean ;
+ else if (exp instanceof STRING_LITERAL)
+ t = _string ;
+ else if (exp instanceof INTEGER_LITERAL)
+ t = _integer ;
+ else if (exp instanceof UNLIMITED_LITERAL)
+ t = _unlimited ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(t) ;
+ }
+
+ public TypeExpression getTypeOfParenthesizedExpression(ParenthesizedExpression exp) {
+ if (exp.getCasted() != null) // && exp.getSuffix() == null)
+ return getTypeOfCastExpression(exp) ;
+ TypeExpression typeOfParenthesizedExpression = getTypeOfExpression((Expression)exp.getExpOrTypeCast()) ;
+ if (typeOfParenthesizedExpression.getTypeFacade() instanceof ErrorTypeFacade) {
+ return typeOfParenthesizedExpression ;
+ }
+ if (exp.getSuffix() != null && exp.getSuffix() != suffixToBeIgnored)
+ return getTypeOfSuffixExpression(exp.getSuffix(), typeOfParenthesizedExpression) ;
+ return typeOfParenthesizedExpression ;
+ }
+
+ protected TypeExpression getTypeOfCastExpression(ParenthesizedExpression exp) {
+ TypeExpression typeOfCastedPart = getTypeOfNonLiteralValueSpecification(exp.getCasted()) ;
+ if (typeOfCastedPart.getTypeFacade() instanceof ErrorTypeFacade)
+ return typeOfCastedPart ;
+ TypeFacade castingTypeFacade = TypeFacadeFactory.eInstance.createVoidFacade(exp.getExpOrTypeCast()) ;
+ TypeExpression result = new TypeExpression() ;
+ result.setType(castingTypeFacade) ;
+ result.setMultiplicity(typeOfCastedPart.getMultiplicity()) ;
+ return result ;
+ }
+
+ protected boolean isACastExpression(NameExpression exp) {
+ EObject container = exp.eContainer() ;
+ EObject cddCastingPart = exp ;
+ while (container != null && ! (container instanceof ParenthesizedExpression)) {
+ cddCastingPart = container ;
+ container = container.eContainer() ;
+ }
+ if (container == null)
+ return false ;
+ else {
+ ParenthesizedExpression cddCastExpression = (ParenthesizedExpression)container ;
+ if (cddCastingPart.eContainingFeature() == AlfPackage.eINSTANCE.getParenthesizedExpression_ExpOrTypeCast())
+ return cddCastExpression.getCasted() != null ;
+ else
+ return false ;
+ }
+ }
+
+ public TypeExpression getTypeOfNameExpression(NameExpression exp) {
+ //
+ //if (exp.eContainer() instanceof ClassificationExpression ||
+ // exp.eContainer() instanceof SuperInvocationExpression ||
+ // exp.eContainer() instanceof InvocationOrAssignementOrDeclarationStatement ||
+ // isACastExpression(exp)) {
+ // return TypeExpressionFactory.eInstance.createTypeExpression(_undefined);
+ //}
+
+
+
+ EObject previousPackage = null ;
+ if (exp.getPath() != null) {
+ List<UnqualifiedName> path = exp.getPath().getNamespace() ;
+ // first resolves the first element of the path
+ List<EObject> visiblePackages = AlfScopeProvider.scopingTool.getVisiblePackages(exp).resolveByName(path.get(0).getName()) ;
+ if (visiblePackages.isEmpty()) {
+ // Try to find a classifier
+ List<EObject> visibleClassifiers = AlfScopeProvider.scopingTool.getVisibleClassifiers(exp).resolveByName(path.get(0).getName()) ;
+ if (visibleClassifiers.isEmpty()) {
+ // No classifier found
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade("Could not resolve package " + path.get(0).getName(), path.get(0), AlfPackage.eINSTANCE.getUnqualifiedName_Name()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error);
+ }
+ else if (visibleClassifiers.size() > 1) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(path.get(0).getName() + " resolves to multiple classifiers", exp.getPath(), AlfPackage.eINSTANCE.getQualifiedNamePath_Namespace()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error);
+ }
+ else {
+ // Then walks through the path, which shall contain only references to (nested) classifiers
+ List<EObject> nestedVisibleClassifiers ;
+ EObject previousClassifier = visibleClassifiers.get(0) ;
+ for (int i = 1 ; i<path.size() ; i++) {
+ nestedVisibleClassifiers = AlfScopeProvider.scopingTool.getVisibleClassifiers(previousClassifier).resolveByName(path.get(i).getName()) ;
+ if (nestedVisibleClassifiers.isEmpty()) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade("Could not resolve classifier " + path.get(i).getName(), path.get(i), AlfPackage.eINSTANCE.getUnqualifiedName_Name()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error);
+ }
+ else if (nestedVisibleClassifiers.size() > 1) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(path.get(i).getName() + " resolves to multiple classifiers", exp.getPath(), AlfPackage.eINSTANCE.getQualifiedNamePath_Namespace()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error);
+ }
+ previousClassifier = nestedVisibleClassifiers.get(0) ;
+ }
+ // TODO : Check if this is reasonable => We make the assumption than the final id can only be a reference to an enumeration
+ if (previousClassifier instanceof Enumeration) {
+ List<EObject> visibleEnumerationLiterals = AlfScopeProvider.scopingTool.getVisibleEnumerationLiterals(previousClassifier).resolveByName(exp.getId()) ;
+ if (visibleEnumerationLiterals.isEmpty()) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade("Could not resolve enumeration literal " + exp.getId(), exp, AlfPackage.eINSTANCE.getNameExpression_Id()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error);
+ }
+ else if (visibleEnumerationLiterals.size() > 1) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(exp.getId() + " resolves to multiple enumeration literals", exp, AlfPackage.eINSTANCE.getNameExpression_Id()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error);
+ }
+ else {
+ return TypeExpressionFactory.eInstance.createTypeExpression(previousClassifier) ;
+ }
+ }
+ else {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(path.get(path.size()-1).getName() + " does not resolve to an enumeration", exp.getPath(), AlfPackage.eINSTANCE.getQualifiedNamePath_Namespace()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error);
+ }
+ }
+ }
+ else if (visiblePackages.size() > 1) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(path.get(0).getName() + " resolves to multiple packages", exp.getPath(), AlfPackage.eINSTANCE.getQualifiedNamePath_Namespace()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error);
+ }
+ else {
+ List<EObject> nestedVisiblePackages ;
+ previousPackage = visiblePackages.get(0) ;
+ for (int i = 1 ; i<path.size() ; i++) {
+ nestedVisiblePackages = AlfScopeProvider.scopingTool.getVisiblePackages(previousPackage).resolveByName(path.get(i).getName()) ;
+ if (nestedVisiblePackages.isEmpty()) {
+ // Try to find a classifier
+ List<EObject> visibleClassifiers = AlfScopeProvider.scopingTool.getVisibleClassifiers(exp).resolveByName(path.get(i).getName()) ;
+ if (visibleClassifiers.isEmpty()) {
+ // No classifier found
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade("Could not resolve package " + path.get(i).getName(), path.get(i), AlfPackage.eINSTANCE.getUnqualifiedName_Name()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error);
+ }
+ else if (visibleClassifiers.size() > 1) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(path.get(0).getName() + " resolves to multiple classifiers", exp.getPath(), AlfPackage.eINSTANCE.getQualifiedNamePath_Namespace()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error);
+ }
+ else {
+ // Then walks through the path, which shall contain only references to (nested) classifiers
+ List<EObject> nestedVisibleClassifiers ;
+ EObject previousClassifier = visibleClassifiers.get(0) ;
+ for (int j = i ; j<path.size() ; j++) {
+ nestedVisibleClassifiers = AlfScopeProvider.scopingTool.getVisibleClassifiers(previousClassifier).resolveByName(path.get(j).getName()) ;
+ if (nestedVisibleClassifiers.isEmpty()) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade("Could not resolve classifier " + path.get(j).getName(), path.get(j), AlfPackage.eINSTANCE.getUnqualifiedName_Name()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error);
+ }
+ else if (nestedVisibleClassifiers.size() > 1) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(path.get(j).getName() + " resolves to multiple classifiers", exp.getPath(), AlfPackage.eINSTANCE.getQualifiedNamePath_Namespace()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error);
+ }
+ previousClassifier = nestedVisibleClassifiers.get(0) ;
+ }
+ // TODO : Check if this is reasonable => We make the assumption than the final id can only be a reference to an enumeration
+ if (previousClassifier instanceof Enumeration) {
+ List<EObject> visibleEnumerationLiterals = AlfScopeProvider.scopingTool.getVisibleEnumerationLiterals(previousClassifier).resolveByName(exp.getId()) ;
+ if (visibleEnumerationLiterals.isEmpty()) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade("Could not resolve enumeration literal " + exp.getId(), exp, AlfPackage.eINSTANCE.getNameExpression_Id()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error);
+ }
+ else if (visibleEnumerationLiterals.size() > 1) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(exp.getId() + " resolves to multiple enumeration literals", exp, AlfPackage.eINSTANCE.getNameExpression_Id()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error);
+ }
+ else {
+ return TypeExpressionFactory.eInstance.createTypeExpression(previousClassifier) ;
+ }
+ }
+ else {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(path.get(path.size()-1).getName() + " does not resolve to an enumeration", exp.getPath(), AlfPackage.eINSTANCE.getQualifiedNamePath_Namespace()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error);
+ }
+ }
+ }
+ else if (nestedVisiblePackages.size() > 1) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(path.get(i).getName() + " resolves to multiple packages", exp.getPath(), AlfPackage.eINSTANCE.getQualifiedNamePath_Namespace()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error);
+ }
+ previousPackage = nestedVisiblePackages.get(0) ;
+ }
+ }
+ }
+
+ // TODO handle the case of a sequence construction expression
+
+ TypeExpression typeOfPrefix = null ;
+
+ if (exp.getPath() == null) {
+ if (exp.getInvocationCompletion()==null) { // && exp.getSequenceConstructionCompletion() == null) {
+ List<EObject> visibleVariableOrParametersOrProperties = AlfScopeProvider.scopingTool.getVisibleVariablesOrParametersOrProperties(exp).resolveByName(exp.getId()) ;
+ if (visibleVariableOrParametersOrProperties.isEmpty()) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ "Could not resolve local variable, property or parameter " + exp.getId(),
+ exp,
+ AlfPackage.eINSTANCE.getNameExpression_Id()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error);
+ }
+ else if (visibleVariableOrParametersOrProperties.size()>1) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ exp.getId() + " resolves to multiple elements",
+ exp,
+ AlfPackage.eINSTANCE.getNameExpression_Id()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error);
+ }
+ else {
+ EObject resolved = visibleVariableOrParametersOrProperties.get(0) ;
+ typeOfPrefix = TypeExpressionFactory.eInstance.createTypeExpression(resolved) ;
+ }
+ }
+ }
+ else {
+ // TODO: Handle associations here ?
+ // TODO: Handle ClassExtent here ?
+ }
+
+ if (exp.getInvocationCompletion()!=null ) { //&& exp.getSequenceConstructionCompletion() == null ) {
+ List<TypeExpression> arguments = new ArrayList<TypeExpression>() ;
+ for (TupleElement e : exp.getInvocationCompletion().getTupleElements()) {
+ TypeExpression type = getTypeOfExpression(e.getArgument()) ;
+ if (type.getTypeFacade() != null && type.getTypeFacade() instanceof ErrorTypeFacade)
+ return type ;
+ arguments.add(type) ;
+ }
+ List<EObject> visibleOperationOrBehaviors = AlfScopeProvider.scopingTool.getVisibleOperationsOrBehaviors(previousPackage != null ? previousPackage : exp).resolveByName(exp.getId()) ;
+ if (visibleOperationOrBehaviors.isEmpty()) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ "Could not resolve operation or behavior " + exp.getId(),
+ exp,
+ AlfPackage.eINSTANCE.getNameExpression_Id()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ else if (visibleOperationOrBehaviors.size()>1) {
+ List<SignatureFacade> availableSignatures = new ArrayList<SignatureFacade>() ;
+ for (EObject operation : visibleOperationOrBehaviors) {
+ availableSignatures.add(SignatureFacadeFactory.eInstance.createSignatureFacade(operation)) ;
+ }
+ List<SignatureFacade> selectedSignatures = SignatureFacade.findNearestSignature(arguments, availableSignatures) ;
+ if (selectedSignatures.size() > 1) { // could not infer the actual operations even with type of arguments
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ exp.getId() + " resolves to multiple elements",
+ exp,
+ AlfPackage.eINSTANCE.getNameExpression_Id()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error);
+ }
+ else if (selectedSignatures.size() == 0) {
+ String errorMessage = exp.getId() + " does not apply to arguments (" ;
+ boolean first = true ;
+ for (TypeExpression argType : arguments) {
+ if (!first)
+ errorMessage += ", " ;
+ else
+ first = false ;
+ errorMessage += argType.getLabel() ;
+ }
+ errorMessage += ")" ;
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ errorMessage,
+ exp,
+ AlfPackage.eINSTANCE.getNameExpression_Id()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ else {
+ typeOfPrefix = selectedSignatures.get(0).getReturnType() ;
+ }
+ }
+ else {
+ SignatureFacade operationOrBehaviorSignature = SignatureFacadeFactory.eInstance.createSignatureFacade(visibleOperationOrBehaviors.get(0)) ;
+ String argumentsAreCompatible = operationOrBehaviorSignature.isCompatibleWithMe(arguments, true) ;
+ if (! (argumentsAreCompatible.length() == 0)) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ argumentsAreCompatible,
+ exp,
+ AlfPackage.eINSTANCE.getNameExpression_InvocationCompletion()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error);
+ }
+ typeOfPrefix = operationOrBehaviorSignature.getReturnType() ;
+ }
+ }
+
+ if (exp.getSequenceConstructionCompletion() != null) {
+ SequenceConstructionOrAccessCompletion sequenceAccessOrConstruction = exp.getSequenceConstructionCompletion() ;
+ if (sequenceAccessOrConstruction.getAccessCompletion() != null) {
+ int prefixUpperBound = typeOfPrefix.getMultiplicity().getUpperBound() ;
+ boolean prefixIsOrdered = typeOfPrefix.getMultiplicity().isOrdered() ;
+ if (! (prefixUpperBound == -1 || prefixUpperBound > 1)) {
+ String errorMessage = "Unexpected index. " + exp.getId() + " is not a collection." ;
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ errorMessage,
+ exp,
+ AlfPackage.eINSTANCE.getNameExpression_SequenceConstructionCompletion()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ else if (!prefixIsOrdered){
+ String errorMessage = "Unexpected index. " + exp.getId() + " is not ordered." ;
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ errorMessage,
+ exp,
+ AlfPackage.eINSTANCE.getNameExpression_SequenceConstructionCompletion()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ TypeExpression typeOfIndex = getTypeOfExpression(sequenceAccessOrConstruction.getAccessCompletion().getAccessIndex()) ;
+ if (typeOfIndex.getTypeFacade() instanceof ErrorTypeFacade) {
+ return typeOfIndex ;
+ }
+ else if (! (_integer.isCompatibleWithMe(typeOfIndex.getTypeFacade())== 3 || _natural.isCompatibleWithMe(typeOfIndex.getTypeFacade())==3)) {
+ String errorMessage = "Expecting an expression of type Integer. Found an expression of type " + typeOfIndex.getLabel() ;
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ errorMessage,
+ sequenceAccessOrConstruction,
+ AlfPackage.eINSTANCE.getAccessCompletion_AccessIndex()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ else {
+ // need to change the multiplicity of typeOfPrefix
+ //typeOfPrefix.setMultiplicity(MultiplicityFacadeFactory.eInstance.createMultiplicityFacade(0, 1, false, false)) ;
+ typeOfPrefix.setMultiplicity(MultiplicityFacadeFactory.eInstance.createMultiplicityFacade(1, 1, false, false)) ; // TODO: 1..1 is temporary
+ }
+ }
+ }
+
+ if (exp.getSuffix() != null && exp.getSuffix() != suffixToBeIgnored) {
+ return getTypeOfSuffixExpression(exp.getSuffix(), typeOfPrefix) ;
+ }
+ return typeOfPrefix ;
+ }
+
+ public TypeExpression getTypeOfThisExpression(ThisExpression exp) {
+ TypeExpression typeOfPrefix = TypeExpressionFactory.eInstance.createTypeExpression(AlfJavaValidator.getContextClassifier()) ;
+ if (typeOfPrefix.getTypeFacade() instanceof ErrorTypeFacade)
+ return typeOfPrefix ;
+ if (exp.getSuffix() != null && exp.getSuffix() != suffixToBeIgnored) {
+ return getTypeOfSuffixExpression(exp.getSuffix(), typeOfPrefix) ;
+ }
+ return typeOfPrefix ;
+ }
+
+ public TypeExpression getTypeOfSuffixExpression(SuffixExpression exp, TypeExpression propagatedTypeOfPrefix) {
+ // TODO: Support all cases
+ EObject source = exp.eContainer() ;
+ EStructuralFeature containtFeature = exp.eContainingFeature() ;
+ ///////////////////////////
+
+ TypeExpression typeOfPrefix = propagatedTypeOfPrefix ;
+
+ if (typeOfPrefix == null) {
+ String errorMessage = "Type of prefix is undefined. Could not validate suffix." ;
+ ErrorTypeFacade error =
+ TypeFacadeFactory.eInstance.createErrorTypeFacade(errorMessage, source, containtFeature) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ else if (typeOfPrefix.getTypeFacade() == TypeUtils._undefined) {
+ String errorMessage = "The invocation prefix has no return parameter." ;
+ ErrorTypeFacade error =
+ TypeFacadeFactory.eInstance.createErrorTypeFacade(errorMessage, source, containtFeature) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+
+ // If the of prefix is of multiplicity 1 and if it has an operation toSequence (i.e., it is a collection class)
+ // Then, depending on the kind of suffix, it may be necessary to propagate a sequence has the prefix type
+ if (typeOfPrefix.getMultiplicity().getUpperBound() == 1 &&
+ (exp instanceof SequenceOperationExpression ||
+ exp instanceof SelectOrRejectOperation
+ // || exp.getSuffix() instanceof ... TODO
+ )) {
+ Classifier actualPrefixType = typeOfPrefix.getTypeFacade().extractActualType() ;
+ if( actualPrefixType != null) {
+ Operation toSequenceOperation = null ;
+ for (int i = 0 ; i<actualPrefixType.getAllOperations().size() && toSequenceOperation == null ; i++) {
+ Operation o = actualPrefixType.getAllOperations().get(i) ;
+ if (o.getName().equals("toSequence"))
+ toSequenceOperation = o ;
+ }
+ if (toSequenceOperation != null) {
+ typeOfPrefix = TypeExpressionFactory.eInstance.createTypeExpression(toSequenceOperation.getReturnResult()) ;
+ }
+ }
+ }
+
+ if (exp instanceof ClassExtentExpression) {
+ // TODO
+ String errorMessage = "Class extent expressions are not supported in this version of the Alf editor" ;
+ ErrorTypeFacade unsupportedCase =
+ TypeFacadeFactory.eInstance.createErrorTypeFacade(errorMessage, source, containtFeature) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(unsupportedCase) ;
+ }
+ else if (exp instanceof LinkOperationExpression) {
+ // TODO
+ String errorMessage = "Link operation expressions are not supported in this version of the Alf editor" ;
+ ErrorTypeFacade unsupportedCase =
+ TypeFacadeFactory.eInstance.createErrorTypeFacade(errorMessage, source, containtFeature) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(unsupportedCase) ;
+ }
+ else if (exp instanceof OperationCallExpression) {
+ return getTypeOfOperationCallExpression((OperationCallExpression)exp, typeOfPrefix) ;
+ }
+ else if (exp instanceof PropertyCallExpression) {
+ return getTypeOfPropertyCallExpression((PropertyCallExpression)exp, typeOfPrefix) ;
+ }
+ else if (exp instanceof SequenceExpansionExpression) {
+ return getTypeOfSequenceExpansionExpression((SequenceExpansionExpression) exp, typeOfPrefix) ;
+ }
+ else if (exp instanceof SequenceOperationExpression) {
+ return getTypeOfSequenceOperationExpression((SequenceOperationExpression)exp, typeOfPrefix) ;
+ }
+ else {// exp instanceof SequenceReductionExpression
+ return getTypeOfSequenceReductionExpression((SequenceReductionExpression) exp, typeOfPrefix) ;
+ }
+ }
+
+ public TypeExpression getTypeOfSequenceOperationExpression(SequenceOperationExpression exp, TypeExpression typeOfPrefix) {
+
+ if (exp.getOperationName() == null) {
+ String errorMessage = "Sequence function is missing" ;
+ ErrorTypeFacade unsupportedCase =
+ TypeFacadeFactory.eInstance.createErrorTypeFacade(errorMessage, exp, AlfPackage.eINSTANCE.getSequenceOperationExpression_OperationName()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(unsupportedCase) ;
+ }
+
+ // first tries to resolve the behavior name
+ SignatureFacade s = null ;
+ TypeFacade cddBehaviorFacade = TypeFacadeFactory.eInstance.createVoidFacade(exp.getOperationName()) ;
+ if (cddBehaviorFacade instanceof ErrorTypeFacade) {
+ // the behavior has not been found using default strategies.
+ // Tries to find it in predefined collection functions
+ s = TypeUtils.predefinedCollectionFunctions.get(exp.getOperationName().getId()) ;
+ if (s == null) {
+ return TypeExpressionFactory.eInstance.createTypeExpression(cddBehaviorFacade) ;
+// EObject source = exp.eContainer() ;
+// EStructuralFeature containingFeature = exp.eContainingFeature() ;
+// String errorMessage = "Could not resolve collection function " + exp.getOperationName().getId() ;
+// ErrorTypeFacade unsupportedCase =
+// TypeFacadeFactory.eInstance.createErrorTypeFacade(errorMessage, source, containingFeature) ;
+// return TypeExpressionFactory.eInstance.createTypeExpression(unsupportedCase) ;
+ }
+ }
+ else {
+ Classifier cddBehavior = cddBehaviorFacade.extractActualType() ;
+ if (! (cddBehavior instanceof Behavior)) {
+ String errorMessage = cddBehavior.getName() + " does not resolve to a Behavior" ;
+ ErrorTypeFacade unsupportedCase =
+ TypeFacadeFactory.eInstance.createErrorTypeFacade(errorMessage, exp, AlfPackage.eINSTANCE.getSequenceOperationExpression_OperationName()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(unsupportedCase) ;
+ }
+ else {
+ s = SignatureFacadeFactory.eInstance.createSignatureFacade(cddBehavior) ;
+ }
+ }
+
+ if (s.isATemplate()) {
+ // A binding needs to be done, with the type of the prefix as an actual.
+ Map<TemplateParameter, ParameterableElement> substitutions = new HashMap<TemplateParameter, ParameterableElement>() ;
+ for (TemplateParameter tp : ((TemplateableElement)s.getActualSignatureObject()).getOwnedTemplateSignature().getOwnedParameters()) {
+ substitutions.put(tp,typeOfPrefix.getTypeFacade().extractActualType()) ;
+ }
+ String sLabelInCaseOfErrorInBinding = "" + s.getLabel() ;
+ s = s.bindTemplate(substitutions) ;
+ if (s == null) { // a problem occurred with binding
+ EObject source = exp.eContainer() ;
+ EStructuralFeature containtFeature = exp.eContainingFeature() ;
+ String errorMessage = "Could not implicitly bind behavior " + sLabelInCaseOfErrorInBinding + " with actual parameter " + typeOfPrefix.getTypeFacade().getLabel() ;
+ ErrorTypeFacade unsupportedCase =
+ TypeFacadeFactory.eInstance.createErrorTypeFacade(errorMessage, source, containtFeature) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(unsupportedCase) ;
+ }
+ }
+
+ // The signature has been resolved.
+ // Needs to determine if this is a valid signature. i.e. must have its first parameter with direction in or inout, and multiplicity *
+ if (s.getParameters().isEmpty()) {
+ EObject source = exp.eContainer() ;
+ EStructuralFeature containtFeature = exp.eContainingFeature() ;
+ String errorMessage = "Invalid sequence function. Should at least one in or inout parameter with multiplicity *" ;
+ ErrorTypeFacade unsupportedCase =
+ TypeFacadeFactory.eInstance.createErrorTypeFacade(errorMessage, source, containtFeature) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(unsupportedCase) ;
+ }
+ Behavior sequenceFunction = (Behavior)s.getActualSignatureObject() ;
+ Parameter firstParameter = sequenceFunction.getOwnedParameters().get(0) ;
+ if (((firstParameter.getDirection()!= ParameterDirectionKind.IN_LITERAL) && (firstParameter.getDirection() != ParameterDirectionKind.INOUT_LITERAL)) ||
+ firstParameter.getUpper() != -1) {
+ EObject source = exp.eContainer() ;
+ EStructuralFeature containtFeature = exp.eContainingFeature() ;
+ String errorMessage = "Invalid sequence function. The first parameter should have direction in or inout, with multiplicity *" ;
+ ErrorTypeFacade unsupportedCase =
+ TypeFacadeFactory.eInstance.createErrorTypeFacade(errorMessage, source, containtFeature) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(unsupportedCase) ;
+ }
+ // Then determines if arguments match parameters of the signature
+ List<TypeExpression> arguments = new ArrayList<TypeExpression>() ;
+ arguments.add(typeOfPrefix) ;
+ for (TupleElement e : exp.getTuple().getTupleElements()) {
+ TypeExpression argType = getTypeOfExpression(e.getArgument()) ;
+ if (argType.getTypeFacade() != null && argType.getTypeFacade() instanceof ErrorTypeFacade)
+ return argType ;
+ arguments.add(argType) ;
+ }
+ String argumentsAreCompatible = s.isCompatibleWithMe(arguments, true) ;
+ if (! (argumentsAreCompatible.length() == 0)) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ argumentsAreCompatible,
+ exp,
+ AlfPackage.eINSTANCE.getSequenceOperationExpression_OperationName()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error);
+ }
+ TypeExpression typeOfSuffix = s.getReturnType() ;
+
+ if (exp.getSuffix() != null) {
+ return this.getTypeOfSuffixExpression(exp.getSuffix(), typeOfSuffix) ;
+ }
+
+ return typeOfSuffix ;
+ }
+
+ public TypeExpression getTypeOfSequenceReductionExpression(SequenceReductionExpression exp, TypeExpression typeOfPrefix) {
+ int upperBoundOfPrefix = typeOfPrefix.getMultiplicityFacade().getUpperBound() ;
+ // first check if the prefix is a collection
+ if (!(upperBoundOfPrefix > 1) && upperBoundOfPrefix != -1) {
+ EObject source = exp.eContainer() ;
+ EStructuralFeature containtFeature = exp.eContainingFeature() ;
+ String errorMessage = "Prefix must be a collection" ;
+ ErrorTypeFacade unsupportedCase =
+ TypeFacadeFactory.eInstance.createErrorTypeFacade(errorMessage, source, containtFeature) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(unsupportedCase) ;
+ }
+
+ if (exp.getBehavior() == null) {
+ String errorMessage = "Reduction behavior is missing" ;
+ ErrorTypeFacade unsupportedCase =
+ TypeFacadeFactory.eInstance.createErrorTypeFacade(errorMessage, exp, AlfPackage.eINSTANCE.getSequenceReductionExpression_Behavior()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(unsupportedCase) ;
+ }
+
+ // first tries to resolve the behavior name
+ TypeFacade cddBehaviorFacade = TypeFacadeFactory.eInstance.createVoidFacade(exp.getBehavior()) ;
+ if (cddBehaviorFacade instanceof ErrorTypeFacade)
+ return TypeExpressionFactory.eInstance.createTypeExpression(cddBehaviorFacade) ;
+
+ Classifier cddBehavior = cddBehaviorFacade.extractActualType() ;
+ if (! (cddBehavior instanceof Behavior)) {
+ String errorMessage = cddBehavior.getName() + " does not resolve to a Behavior" ;
+ ErrorTypeFacade unsupportedCase =
+ TypeFacadeFactory.eInstance.createErrorTypeFacade(errorMessage, exp, AlfPackage.eINSTANCE.getSequenceReductionExpression_Behavior()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(unsupportedCase) ;
+ }
+
+ Behavior behavior = (Behavior)cddBehavior ;
+ // check that the behavior is a valid reduction behavior
+ // i.e., it has exactly two in parameters and one return parameter, all with multiplicity 1
+ int n_inputParameters = 0 ;
+ boolean invalidReductionBehavior = false ;
+ boolean returnParameterFound = false ;
+ Classifier paramsType = null ;
+ for (int i = 0 ; i < behavior.getOwnedParameters().size() && !invalidReductionBehavior ; i++) {
+ Parameter p = behavior.getOwnedParameters().get(i) ;
+ switch (p.getDirection()) {
+ case IN_LITERAL:
+ n_inputParameters++ ;
+ if (n_inputParameters > 2) {
+ invalidReductionBehavior = true ;
+ break ;
+ }
+ if (p.getLower() != 1 || p.getUpper() != 1) {
+ invalidReductionBehavior = true ;
+ break ;
+ }
+ if (paramsType == null) {
+ paramsType = (Classifier)p.getType() ;
+ if (paramsType == null) invalidReductionBehavior = true ;
+ }
+ else {
+ if (paramsType != ((Classifier)p.getType()))
+ invalidReductionBehavior = true ;
+ }
+ break;
+ case INOUT_LITERAL:
+ invalidReductionBehavior = true ;
+ break;
+ case OUT_LITERAL:
+ invalidReductionBehavior = true ;
+ break;
+ case RETURN_LITERAL:
+ returnParameterFound = true ;
+ if (p.getLower() != 1 || p.getUpper() != 1) {
+ invalidReductionBehavior = true ;
+ break ;
+ }
+ if (paramsType == null) {
+ paramsType = (Classifier)p.getType() ;
+ if (paramsType == null) invalidReductionBehavior = true ;
+ }
+ else {
+ if (paramsType != ((Classifier)p.getType()))
+ invalidReductionBehavior = true ;
+ }
+ break;
+ }
+ }
+ SignatureFacade behaviorFacade = SignatureFacadeFactory.eInstance.createSignatureFacade(behavior) ;
+ if (! (!invalidReductionBehavior && returnParameterFound)) {
+ String errorMessage = behaviorFacade.getLabel() + " is not a valid reduction behavior. It should have exactly two in parameters, one return parameter, all with multiplicity [1..1], and all with the same type." ;
+ ErrorTypeFacade unsupportedCase =
+ TypeFacadeFactory.eInstance.createErrorTypeFacade(errorMessage, exp, AlfPackage.eINSTANCE.getSequenceReductionExpression_Behavior()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(unsupportedCase) ;
+ }
+
+ // The signature is valid. Finally needs to determine if the type of the elements in the collection is compatible with the type of the parameters
+ if (TypeFacadeFactory.eInstance.createTypeFacade(paramsType).isCompatibleWithMe(typeOfPrefix.getTypeFacade()) == 0) {
+ String errorMessage = behaviorFacade.getLabel() + " does not apply to arguments of type " + typeOfPrefix.getTypeFacade().getLabel() ;
+ ErrorTypeFacade unsupportedCase =
+ TypeFacadeFactory.eInstance.createErrorTypeFacade(errorMessage, exp, AlfPackage.eINSTANCE.getSequenceReductionExpression_Behavior()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(unsupportedCase) ;
+ }
+
+ TypeExpression typeOfExpression = TypeExpressionFactory.eInstance.createTypeExpression(typeOfPrefix.getTypeFacade()) ;
+
+ if (exp.getSuffix() != null && exp.getSuffix() != suffixToBeIgnored)
+ return getTypeOfSuffixExpression(exp.getSuffix(), typeOfExpression) ;
+ return typeOfExpression ;
+ }
+
+ public TypeExpression getTypeOfSequenceExpansionExpression(SequenceExpansionExpression exp, TypeExpression typeOfPrefix) {
+ if (exp instanceof SelectOrRejectOperation) {
+ return getTypeOfSelectOrRejectOperation((SelectOrRejectOperation)exp, typeOfPrefix) ;
+ }
+ else if (exp instanceof CollectOrIterateOperation) {
+ return getTypeOfCollectOrIterateOperation((CollectOrIterateOperation)exp, typeOfPrefix) ;
+ }
+ else if (exp instanceof ForAllOrExistsOrOneOperation) {
+ return getTypeOfForAllOrExistsOrOneOperation((ForAllOrExistsOrOneOperation)exp, typeOfPrefix) ;
+ }
+ else { // exp instanceof IsUniqueOperation
+ return getTypeOfIsUniqueOperation((IsUniqueOperation)exp, typeOfPrefix) ;
+ }
+ }
+
+ private TypeExpression getTypeOfIsUniqueOperation(IsUniqueOperation exp, TypeExpression typeOfPrefix) {
+ if (exp.getName() == null) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ "Local variable definition is missing",
+ exp,
+ AlfPackage.eINSTANCE.getSequenceExpansionExpression_Name()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+
+ // first check that the local variable name is not already used
+ if (! AlfScopeProvider.scopingTool.getVisibleVariablesOrParametersOrProperties(exp.eContainer()).resolveByName(exp.getName()).isEmpty()) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ "Local name " + exp.getName() + " is not available",
+ exp,
+ AlfPackage.eINSTANCE.getSequenceExpansionExpression_Name()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+
+ TypeExpression typeOfCondition = getTypeOfExpression(exp.getExpr()) ;
+ if (typeOfCondition.getTypeFacade() instanceof ErrorTypeFacade)
+ return typeOfCondition ;
+
+ int upperBound = typeOfCondition.getMultiplicity().getUpperBound() ;
+
+ if (upperBound == 0) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ "Expression must be typed",
+ exp,
+ AlfPackage.eINSTANCE.getSequenceExpansionExpression_Expr()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+
+ TypeExpression typeOfExpression = TypeExpressionFactory.eInstance.createTypeExpression(TypeUtils._boolean) ;
+
+ if (exp.getSuffix() != null && exp.getSuffix() != suffixToBeIgnored)
+ return getTypeOfSuffixExpression(exp.getSuffix(), typeOfExpression) ;
+
+ return typeOfExpression ;
+ }
+
+ private TypeExpression getTypeOfForAllOrExistsOrOneOperation(ForAllOrExistsOrOneOperation exp, TypeExpression typeOfPrefix) {
+ if (exp.getName() == null) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ "Local variable definition is missing",
+ exp,
+ AlfPackage.eINSTANCE.getSequenceExpansionExpression_Name()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+
+ // first check that the local variable name is not already used
+ if (! AlfScopeProvider.scopingTool.getVisibleVariablesOrParametersOrProperties(exp.eContainer()).resolveByName(exp.getName()).isEmpty()) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ "Local name " + exp.getName() + " is not available",
+ exp,
+ AlfPackage.eINSTANCE.getSequenceExpansionExpression_Name()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+
+ TypeExpression typeOfCondition = getTypeOfExpression(exp.getExpr()) ;
+ if (typeOfCondition.getTypeFacade() instanceof ErrorTypeFacade)
+ return typeOfCondition ;
+
+ if (TypeExpressionFactory.eInstance.createTypeExpression(TypeUtils._boolean).isCompatibleWithMe(typeOfCondition) == 0) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ "Expecting an expression of type Boolean. Found an expression of type " + typeOfCondition.getLabel(),
+ exp,
+ AlfPackage.eINSTANCE.getSequenceExpansionExpression_Expr()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+
+ TypeExpression typeOfExpression = TypeExpressionFactory.eInstance.createTypeExpression(TypeUtils._boolean) ;
+
+ if (exp.getSuffix() != null && exp.getSuffix() != suffixToBeIgnored)
+ return getTypeOfSuffixExpression(exp.getSuffix(), typeOfExpression) ;
+
+ return typeOfExpression ;
+ }
+
+ private TypeExpression getTypeOfCollectOrIterateOperation(CollectOrIterateOperation exp, TypeExpression typeOfPrefix) {
+ if (exp.getName() == null) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ "Local variable definition is missing",
+ exp,
+ AlfPackage.eINSTANCE.getSequenceExpansionExpression_Name()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+
+ // first check that the local variable name is not already used
+ if (! AlfScopeProvider.scopingTool.getVisibleVariablesOrParametersOrProperties(exp.eContainer()).resolveByName(exp.getName()).isEmpty()) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ "Local name " + exp.getName() + " is not available",
+ exp,
+ AlfPackage.eINSTANCE.getSequenceExpansionExpression_Name()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+
+ TypeExpression typeOfCondition = getTypeOfExpression(exp.getExpr()) ;
+ if (typeOfCondition.getTypeFacade() instanceof ErrorTypeFacade)
+ return typeOfCondition ;
+
+ int lowerBound = typeOfPrefix.getMultiplicity().getLowerBound() * typeOfCondition.getMultiplicity().getLowerBound() ;
+ int upperBound = typeOfPrefix.getMultiplicity().getUpperBound() * typeOfCondition.getMultiplicity().getUpperBound() ;
+ lowerBound = lowerBound < 0 ? -1 : lowerBound ;
+ upperBound = upperBound < 0 ? -1 : upperBound ;
+
+ if (upperBound == 0) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ "Expression must be typed",
+ exp,
+ AlfPackage.eINSTANCE.getSequenceExpansionExpression_Expr()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+
+ TypeExpression typeOfExpression = TypeExpressionFactory.eInstance.createTypeExpression(typeOfCondition.getTypeFacade()) ;
+ typeOfExpression.setMultiplicity(
+ MultiplicityFacadeFactory.eInstance.createMultiplicityFacade(
+ lowerBound, // Lower bound
+ upperBound, // Upper bound
+ typeOfPrefix.getMultiplicity().isUnique(), // is unique
+ typeOfPrefix.getMultiplicity().isOrdered())) ; // is ordered
+
+ if (exp.getSuffix() != null && exp.getSuffix() != suffixToBeIgnored)
+ return getTypeOfSuffixExpression(exp.getSuffix(), typeOfExpression) ;
+
+ return typeOfExpression ;
+ }
+
+ private TypeExpression getTypeOfSelectOrRejectOperation(SelectOrRejectOperation exp, TypeExpression typeOfPrefix) {
+ if (exp.getName() == null) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ "Local variable definition is missing",
+ exp,
+ AlfPackage.eINSTANCE.getSequenceExpansionExpression_Name()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+
+ // first check that the local variable name is not already used
+ if (! AlfScopeProvider.scopingTool.getVisibleVariablesOrParametersOrProperties(exp.eContainer()).resolveByName(exp.getName()).isEmpty()) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ "Local name " + exp.getName() + " is not available",
+ exp,
+ AlfPackage.eINSTANCE.getSequenceExpansionExpression_Name()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+
+ TypeExpression typeOfCondition = getTypeOfExpression(exp.getExpr()) ;
+ if (typeOfCondition.getTypeFacade() instanceof ErrorTypeFacade)
+ return typeOfCondition ;
+
+ if (TypeExpressionFactory.eInstance.createTypeExpression(TypeUtils._boolean).isCompatibleWithMe(typeOfCondition) == 0) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ "Expecting an expression of type Boolean. Found an expression of type " + typeOfCondition.getLabel(),
+ exp,
+ AlfPackage.eINSTANCE.getSequenceExpansionExpression_Expr()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+
+ TypeExpression typeOfExpression = TypeExpressionFactory.eInstance.createTypeExpression(typeOfPrefix.getTypeFacade()) ;
+ typeOfExpression.setMultiplicity(
+ MultiplicityFacadeFactory.eInstance.createMultiplicityFacade(
+ 0, // Lower bound
+ typeOfPrefix.getMultiplicity().getUpperBound(), // Upper bound
+ typeOfPrefix.getMultiplicity().isUnique(), // is unique
+ typeOfPrefix.getMultiplicity().isOrdered())) ; // is ordered
+
+ if (exp.getSuffix() != null && exp.getSuffix() != suffixToBeIgnored)
+ return getTypeOfSuffixExpression(exp.getSuffix(), typeOfExpression) ;
+
+ return typeOfExpression ;
+ }
+
+ public TypeExpression getTypeOfPropertyCallExpression(PropertyCallExpression exp, TypeExpression typeOfPrefix) {
+ Classifier type = typeOfPrefix.getTypeFacade().extractActualType() ;
+ EObject source = exp.eContainer() ;
+ EStructuralFeature containtFeature = exp.eContainingFeature() ;
+ if (type == null) {
+ String errorMessage = "Type of prefix is \"any\". Could not validate suffix." ;
+ ErrorTypeFacade error =
+ TypeFacadeFactory.eInstance.createErrorTypeFacade(errorMessage, source, containtFeature) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+
+ List<EObject> matchingProperties = AlfScopeProvider.scopingTool.getVisibleVariablesOrParametersOrProperties(type).resolveByName(exp.getPropertyName()) ;
+ if (matchingProperties.size() == 0) {
+ String errorMessage = "Could not resolve property " + exp.getPropertyName() + " for classifier " + type.getName() ;
+ ErrorTypeFacade error =
+ TypeFacadeFactory.eInstance.createErrorTypeFacade(errorMessage, source, containtFeature) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ else if (matchingProperties.size() > 1) {
+ String errorMessage = exp.getPropertyName() + " matches multiple properties. Classifier " + type.getName() + " is illformed. Duplicate properties should be renamed or deleted.";
+ ErrorTypeFacade error =
+ TypeFacadeFactory.eInstance.createErrorTypeFacade(errorMessage, source, containtFeature) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ else { // exactly one property is matched
+ int upperBoundOfPrefix = typeOfPrefix.getMultiplicityFacade().getUpperBound() ;
+ if (upperBoundOfPrefix == -1 || upperBoundOfPrefix > 1) {
+ String errorMessage = "The prefix of this property call is a collection. An index should be used to access property " + exp.getPropertyName() ;
+ ErrorTypeFacade error =
+ TypeFacadeFactory.eInstance.createErrorTypeFacade(errorMessage, source, containtFeature) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ else {
+ TypeExpression typeOfSuffix = TypeExpressionFactory.eInstance.createTypeExpression(matchingProperties.get(0)) ;
+ // Before building the type of this suffix, needs to check if there is a valid index
+ if (exp.getIndex() != null) {
+ if (typeOfSuffix.isACollection()) {
+ // TODO needs to validate the index
+ TypeExpression typeOfIndex = getTypeOfExpression(exp.getIndex()) ;
+ if (typeOfIndex.getTypeFacade() instanceof ErrorTypeFacade) {
+ return typeOfIndex ;
+ }
+ else if (typeOfIndex.isACollection() || typeOfIndex.getTypeFacade() != TypeUtils._integer) {
+ String errorMessage = "Expecting an expression of type Integer. Found an expression of type " + typeOfIndex.getLabel() ;
+ ErrorTypeFacade error =
+ TypeFacadeFactory.eInstance.createErrorTypeFacade(errorMessage, exp, AlfPackage.eINSTANCE.getPropertyCallExpression_Index()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ else if (! typeOfSuffix.isOrdered()) {
+ String errorMessage = "Unexpected index. " + exp.getPropertyName() + " is not ordered." ;
+ ErrorTypeFacade error =
+ TypeFacadeFactory.eInstance.createErrorTypeFacade(errorMessage, source, containtFeature) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ else {
+ typeOfSuffix = TypeExpressionFactory.eInstance.createTypeExpression(typeOfSuffix.getTypeFacade()) ;
+ }
+ }
+ else {
+ String errorMessage = "Unexpected index. " + exp.getPropertyName() + " is not a collection." ;
+ ErrorTypeFacade error =
+ TypeFacadeFactory.eInstance.createErrorTypeFacade(errorMessage, source, containtFeature) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ }
+ if (exp.getSuffix() != null && exp.getSuffix() != suffixToBeIgnored)
+ return getTypeOfSuffixExpression(exp.getSuffix(), typeOfSuffix) ;
+ else
+ return typeOfSuffix ;
+ }
+ }
+ }
+
+ public TypeExpression getTypeOfOperationCallExpression(OperationCallExpression exp, TypeExpression typeOfPrefix) {
+ Classifier type = typeOfPrefix.getTypeFacade().extractActualType() ;
+ EObject source = exp.eContainer() ;
+ EStructuralFeature containingFeature = exp.eContainingFeature() ;
+ if (type == null) {
+ String errorMessage = "Type of prefix is \"any\". Could not validate suffix." ;
+ ErrorTypeFacade error =
+ TypeFacadeFactory.eInstance.createErrorTypeFacade(errorMessage, source, containingFeature) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ List<TypeExpression> arguments = new ArrayList<TypeExpression>() ;
+ for (TupleElement e : exp.getTuple().getTupleElements()) {
+ TypeExpression argType = getTypeOfExpression(e.getArgument()) ;
+ if (argType.getTypeFacade() != null && argType.getTypeFacade() instanceof ErrorTypeFacade)
+ return argType ;
+ arguments.add(argType) ;
+ }
+ List<EObject> matchingOperations = AlfScopeProvider.scopingTool.getVisibleOperationsOrBehaviors(type).resolveByName(exp.getOperationName()) ;
+ TypeExpression typeOfSuffix ;
+ if (matchingOperations.size() == 0) {
+ String errorMessage = "" ;
+ ErrorTypeFacade error = null ;
+ if (exp.getOperationName().equals("destroy")) {// This is the case of the default destructor
+ if (typeOfPrefix.getTypeFacade().extractActualType() instanceof PrimitiveType)
+ errorMessage += "Primitive types do not have destructors." ;
+ else if (arguments.size() > 0)
+ errorMessage += "Default destructor has not parameters" ;
+ if (! (errorMessage.length() == 0)) {
+ error = TypeFacadeFactory.eInstance.createErrorTypeFacade(errorMessage, source, containingFeature) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ return TypeExpressionFactory.eInstance.createTypeExpression(_undefined) ;
+ }
+ errorMessage = "Could not resolve operation " + exp.getOperationName() + " for classifier " + type.getName() ;
+ error = TypeFacadeFactory.eInstance.createErrorTypeFacade(errorMessage, source, containingFeature) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ else if (matchingOperations.size() > 1) {
+ List<SignatureFacade> availableSignatures = new ArrayList<SignatureFacade>() ;
+ for (EObject operation : matchingOperations) {
+ availableSignatures.add(SignatureFacadeFactory.eInstance.createSignatureFacade(operation)) ;
+ }
+ List<SignatureFacade> selectedSignatures = SignatureFacade.findNearestSignature(arguments, availableSignatures) ;
+ if (selectedSignatures.size() > 1) { // could not infer the actual operations even with type of arguments
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ exp.getOperationName() + " resolves to multiple elements",
+ exp,
+ AlfPackage.eINSTANCE.getOperationCallExpression_OperationName()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error);
+ }
+ else if (selectedSignatures.size() == 0) {
+ String errorMessage = exp.getOperationName() + " does not apply to arguments (" ;
+ boolean first = true ;
+ for (TypeExpression argType : arguments) {
+ if (!first)
+ errorMessage += ", " ;
+ else
+ first = false ;
+ errorMessage += argType.getLabel() ;
+ }
+ errorMessage += ")" ;
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ errorMessage,
+ exp,
+ AlfPackage.eINSTANCE.getOperationCallExpression_OperationName()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ else {
+ SignatureFacade operationSignature = selectedSignatures.get(0) ;
+ String argumentsAreCompatible = operationSignature.isCompatibleWithMe(arguments, true) ;
+ if (! (argumentsAreCompatible.length() == 0)) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ argumentsAreCompatible,
+ exp,
+ AlfPackage.eINSTANCE.getOperationCallExpression_OperationName()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error);
+ }
+ typeOfSuffix = selectedSignatures.get(0).getReturnType() ;
+ }
+ }
+ else { // exactly one operation is matched
+ typeOfSuffix = TypeExpressionFactory.eInstance.createTypeExpression(matchingOperations.get(0)) ;
+ SignatureFacade operationSignature = new SignatureFacade(matchingOperations.get(0)) ;
+ String argumentsAreCompatible = operationSignature.isCompatibleWithMe(arguments, true) ;
+ if (! (argumentsAreCompatible.length() == 0)) {
+ ErrorTypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(
+ argumentsAreCompatible,
+ exp,
+ AlfPackage.eINSTANCE.getOperationCallExpression_OperationName()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error);
+ }
+ typeOfSuffix = operationSignature.getReturnType() ;
+ }
+ if (exp.getSuffix() != null && exp.getSuffix() != suffixToBeIgnored)
+ return getTypeOfSuffixExpression(exp.getSuffix(), typeOfSuffix) ;
+ else
+ return typeOfSuffix ;
+ }
+
+ public TypeExpression getTypeOfSequenceElement (SequenceElement s) {
+ if (s instanceof Expression)
+ return getTypeOfExpression((Expression)s) ;
+ else // instanceof SequenceConstructionExpression
+ return getTypeOfSequenceConstructionExpression((SequenceConstructionExpression)s) ;
+ }
+
+ public TypeExpression getTypeOfSequenceConstructionExpression (SequenceConstructionExpression s) {
+ String errorMessage = "";
+ ErrorTypeFacade error = null ;
+ if (s.getSequenceElement() == null || s.getSequenceElement().isEmpty()) {
+ errorMessage = "Invalid sequence construction expression." ;
+ error = TypeFacadeFactory.eInstance
+ .createErrorTypeFacade(errorMessage, s, AlfPackage.eINSTANCE.getSequenceConstructionExpression_SequenceElement()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ TypeExpression baseType = this.getTypeOfSequenceElement(s.getSequenceElement().get(0)) ;
+ if (baseType.getTypeFacade() instanceof ErrorTypeFacade)
+ return baseType ;
+ if (s.getRangeUpper() != null) { // Sequence is specified as a range
+ TypeExpression upperType = this.getTypeOfExpression(s.getRangeUpper()) ;
+ if (upperType.getTypeFacade() instanceof ErrorTypeFacade)
+ return upperType ;
+ if (upperType.isCompatibleWithMe(baseType) != 0)
+ return TypeExpressionFactory.eInstance.createTypeExpression(upperType.getTypeFacade(), 0, -1, false, true) ;
+ else if (baseType.isCompatibleWithMe(upperType) != 0)
+ return TypeExpressionFactory.eInstance.createTypeExpression(baseType.getTypeFacade(), 0, -1, false, true) ;
+ else {
+ errorMessage += "All the elements in the sequence must be type compatible." ;
+ error = TypeFacadeFactory.eInstance
+ .createErrorTypeFacade(errorMessage, s, AlfPackage.eINSTANCE.getSequenceConstructionExpression_SequenceElement()) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ }
+ else {// Values contained in the sequence are enumerated
+ List<TypeExpression> typeOfSequenceElements = new ArrayList<TypeExpression>() ;
+ typeOfSequenceElements.add(baseType) ;
+ for (int i = 1 ; i < s.getSequenceElement().size() ; i ++) {
+ TypeExpression t = this.getTypeOfSequenceElement(s.getSequenceElement().get(i)) ;
+ if (t.getTypeFacade() instanceof ErrorTypeFacade)
+ return t ;
+ else
+ typeOfSequenceElements.add(t) ;
+ }
+ TypeExpression commonSuperType = this.findCommonSuperType(typeOfSequenceElements) ;
+ if (commonSuperType == null) {
+ errorMessage = "All the elements in the sequence must be type compatible." ;
+ error = TypeFacadeFactory.eInstance
+ .createErrorTypeFacade(errorMessage, s, AlfPackage.eINSTANCE.getSequenceConstructionExpression_SequenceElement()) ;
+ commonSuperType = TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+ else {
+ commonSuperType.setMultiplicity(MultiplicityFacadeFactory.eInstance.createMultiplicityFacade(-1)) ;
+ }
+ return commonSuperType ;
+ }
+ }
+
+ private TypeExpression findCommonSuperType(List<TypeExpression> l) {
+ TypeExpression mostGeneral = l.get(0) ;
+ for (int i = 1 ; i < l.size() && mostGeneral != null ; i ++) {
+ TypeExpression current = l.get(i) ;
+ if (mostGeneral == current)
+ ;
+ else if (current.isCompatibleWithMe(mostGeneral) != 0)
+ ;
+ else if (mostGeneral.isCompatibleWithMe(current) != 0)
+ mostGeneral = current ;
+ else
+ mostGeneral = null ;
+ }
+ return mostGeneral ;
+ }
+
+ public TypeExpression getTypeOfCandidateExpression(EObject exp) {
+ // EObject cddExpression = o ;
+ if (exp instanceof Tuple)
+ return getTypeOfCandidateExpression(exp.eContainer()) ;
+ else if (exp instanceof Expression)
+ return getTypeOfExpression((Expression) exp) ;
+ else if (exp instanceof ConditionalTestExpression)
+ return getTypeOfConditionalTestExpression((ConditionalTestExpression)exp) ;
+ else if (exp instanceof ConditionalOrExpression)
+ return getTypeOfConditionalOrExpression((ConditionalOrExpression) exp) ;
+ else if (exp instanceof ConditionalAndExpression)
+ return getTypeOfConditionalAndExpression((ConditionalAndExpression) exp) ;
+ else if (exp instanceof InclusiveOrExpression)
+ return getTypeOfInclusiveOrExpression((InclusiveOrExpression) exp) ;
+ else if (exp instanceof ExclusiveOrExpression)
+ return getTypeOfExclusiveOrExpression((ExclusiveOrExpression) exp) ;
+ else if (exp instanceof AndExpression)
+ return getTypeOfAndExpression((AndExpression) exp) ;
+ else if (exp instanceof EqualityExpression)
+ return getTypeOfEqualityExpression((EqualityExpression) exp) ;
+ else if (exp instanceof ClassificationExpression)
+ return getTypeOfClassificationExpression((ClassificationExpression) exp) ;
+ else if (exp instanceof RelationalExpression)
+ return getTypeOfRelationalExpression((RelationalExpression) exp) ;
+ else if (exp instanceof ShiftExpression)
+ return getTypeOfShiftExpression((ShiftExpression) exp) ;
+ else if (exp instanceof AdditiveExpression)
+ return getTypeOfAdditiveExpression((AdditiveExpression) exp) ;
+ else if (exp instanceof MultiplicativeExpression)
+ return getTypeOfMultiplicativeExpression((MultiplicativeExpression) exp) ;
+ else if (exp instanceof UnaryExpression)
+ return getTypeOfUnaryExpression((UnaryExpression) exp) ;
+ else if (exp instanceof PrimaryExpression)
+ return getTypeOfPrimaryExpression((PrimaryExpression) exp) ;
+ else if (exp instanceof ValueSpecification)
+ return getTypeOfValueSpecification((ValueSpecification)exp) ;
+ else if (exp instanceof NullExpression)
+ return getTypeOfNullExpression((NullExpression) exp) ;
+ else if (exp instanceof InstanceCreationExpression)
+ return getTypeOfInstanceCreationExpression((InstanceCreationExpression) exp) ;
+ else if (exp instanceof SuperInvocationExpression)
+ return getTypeOfSuperInvocationExpression((SuperInvocationExpression) exp) ;
+ else if (exp instanceof NonLiteralValueSpecification)
+ return getTypeOfNonLiteralValueSpecification((NonLiteralValueSpecification) exp) ;
+ else if (exp instanceof LITERAL)
+ return getTypeOfLITERAL((LITERAL) exp) ;
+ else if (exp instanceof ParenthesizedExpression)
+ return getTypeOfParenthesizedExpression((ParenthesizedExpression) exp) ;
+ else if (exp instanceof NameExpression)
+ return getTypeOfNameExpression((NameExpression) exp) ;
+ else if (exp instanceof ThisExpression)
+ return getTypeOfThisExpression((ThisExpression) exp) ;
+ else if (exp instanceof SequenceOperationExpression) {
+ // This is a suffix expression
+ // First determine type of prefix.
+ TypeUtils localTypeUtil = new TypeUtils((SuffixExpression)exp) ;
+ TypeExpression typeOfPrefix = localTypeUtil.getTypeOfCandidateExpression(exp.eContainer()) ;
+ if (typeOfPrefix.getTypeFacade() instanceof ErrorTypeFacade)
+ return typeOfPrefix ;
+ return getTypeOfSequenceOperationExpression((SequenceOperationExpression) exp, typeOfPrefix) ;
+ }
+ else if (exp instanceof SequenceReductionExpression) {
+ // This is a suffix expression
+ // First determine type of prefix.
+ TypeUtils localTypeUtil = new TypeUtils((SuffixExpression)exp) ;
+ TypeExpression typeOfPrefix = localTypeUtil.getTypeOfCandidateExpression(exp.eContainer()) ;
+ if (typeOfPrefix.getTypeFacade() instanceof ErrorTypeFacade)
+ return typeOfPrefix ;
+ return getTypeOfSequenceReductionExpression((SequenceReductionExpression) exp, typeOfPrefix) ;
+ }
+ else if (exp instanceof SequenceExpansionExpression) {
+ // This is a suffix expression
+ // First determine type of prefix.
+ TypeUtils localTypeUtil = new TypeUtils((SuffixExpression)exp) ;
+ TypeExpression typeOfPrefix = localTypeUtil.getTypeOfCandidateExpression(exp.eContainer()) ;
+ if (typeOfPrefix.getTypeFacade() instanceof ErrorTypeFacade)
+ return typeOfPrefix ;
+ return getTypeOfSequenceExpansionExpression((SequenceExpansionExpression) exp, typeOfPrefix) ;
+ }
+ else if (exp instanceof IsUniqueOperation) {
+ // This is a suffix expression
+ // First determine type of prefix.
+ TypeUtils localTypeUtil = new TypeUtils((SuffixExpression)exp) ;
+ TypeExpression typeOfPrefix = localTypeUtil.getTypeOfCandidateExpression(exp.eContainer()) ;
+ if (typeOfPrefix.getTypeFacade() instanceof ErrorTypeFacade)
+ return typeOfPrefix ;
+ return getTypeOfIsUniqueOperation((IsUniqueOperation) exp, typeOfPrefix) ;
+ }
+ else if (exp instanceof ForAllOrExistsOrOneOperation) {
+ // This is a suffix expression
+ // First determine type of prefix.
+ TypeUtils localTypeUtil = new TypeUtils((SuffixExpression)exp) ;
+ TypeExpression typeOfPrefix = localTypeUtil.getTypeOfCandidateExpression(exp.eContainer()) ;
+ if (typeOfPrefix.getTypeFacade() instanceof ErrorTypeFacade)
+ return typeOfPrefix ;
+ return getTypeOfForAllOrExistsOrOneOperation((ForAllOrExistsOrOneOperation) exp, typeOfPrefix) ;
+ }
+ else if (exp instanceof CollectOrIterateOperation) {
+ // This is a suffix expression
+ // First determine type of prefix.
+ TypeUtils localTypeUtil = new TypeUtils((SuffixExpression)exp) ;
+ TypeExpression typeOfPrefix = localTypeUtil.getTypeOfCandidateExpression(exp.eContainer()) ;
+ if (typeOfPrefix.getTypeFacade() instanceof ErrorTypeFacade)
+ return typeOfPrefix ;
+ return getTypeOfCollectOrIterateOperation((CollectOrIterateOperation) exp, typeOfPrefix) ;
+ }
+ else if (exp instanceof SelectOrRejectOperation) {
+ // This is a suffix expression
+ // First determine type of prefix.
+ TypeUtils localTypeUtil = new TypeUtils((SuffixExpression)exp) ;
+ TypeExpression typeOfPrefix = localTypeUtil.getTypeOfCandidateExpression(exp.eContainer()) ;
+ if (typeOfPrefix.getTypeFacade() instanceof ErrorTypeFacade)
+ return typeOfPrefix ;
+ return getTypeOfSelectOrRejectOperation((SelectOrRejectOperation) exp, typeOfPrefix) ;
+ }
+ else if (exp instanceof PropertyCallExpression) {
+ // This is a suffix expression
+ // First determine type of prefix.
+ TypeUtils localTypeUtil = new TypeUtils((SuffixExpression)exp) ;
+ TypeExpression typeOfPrefix = localTypeUtil.getTypeOfCandidateExpression(exp.eContainer()) ;
+ if (typeOfPrefix.getTypeFacade() instanceof ErrorTypeFacade)
+ return typeOfPrefix ;
+ return getTypeOfPropertyCallExpression((PropertyCallExpression) exp, typeOfPrefix) ;
+ }
+ else if (exp instanceof OperationCallExpression) {
+ // This is a suffix expression
+ // First determine type of prefix.
+ TypeUtils localTypeUtil = new TypeUtils((SuffixExpression)exp) ;
+ TypeExpression typeOfPrefix = localTypeUtil.getTypeOfCandidateExpression(exp.eContainer()) ;
+ if (typeOfPrefix.getTypeFacade() instanceof ErrorTypeFacade)
+ return typeOfPrefix ;
+ return getTypeOfOperationCallExpression((OperationCallExpression) exp, typeOfPrefix) ;
+ }
+ else if (exp instanceof SequenceElement)
+ return getTypeOfSequenceElement ((SequenceElement) exp) ;
+ else if (exp instanceof SequenceConstructionExpression)
+ return getTypeOfSequenceConstructionExpression ((SequenceConstructionExpression) exp) ;
+
+ String errorMessage = "Not an expression." ;
+ TypeFacade error = TypeFacadeFactory.eInstance.createErrorTypeFacade(errorMessage, exp, null) ;
+ return TypeExpressionFactory.eInstance.createTypeExpression(error) ;
+ }
+}
+
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/VoidFacade.java b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/VoidFacade.java
new file mode 100644
index 00000000000..c3e5613a44a
--- /dev/null
+++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/validation/typing/VoidFacade.java
@@ -0,0 +1,34 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.alf.validation.typing;
+
+
+public class VoidFacade extends TypeFacade {
+
+ private TypeFacade typeFacade ;
+
+ public VoidFacade(TypeFacade typeFacade) {
+ this.typeFacade = typeFacade ;
+ this.typeObject = typeFacade.typeObject ;
+ }
+
+ public TypeFacade getTypeFacade() {
+ return typeFacade ;
+ }
+
+ @Override
+ public String getLabel() {
+ return typeFacade != null ? typeFacade.getLabel() : "" ;
+ }
+}

Back to the top